diff --git a/CHANGELOG.md b/CHANGELOG.md index bc5247586..5f0fca103 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A) - (Maintenance) Go 1.22.4 & Kubernetes 1.29.6 libraries +- (Feature) Fix CRD Schema types ## [1.2.41](https://github.com/arangodb/kube-arangodb/tree/1.2.41) (2024-05-24) - (Maintenance) Bump Prometheus API Version diff --git a/README.md b/README.md index 1889b7b8e..3838dba95 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,8 @@ Flags: --backup-concurrent-uploads int Number of concurrent uploads per deployment (default 4) --chaos.allowed Set to allow chaos in deployments. Only activated when allowed and enabled in deployment --crd.install Install missing CRD if access is possible (default true) - --crd.validation-schema stringArray Overrides default set of CRDs which should have validation schema enabled =. + --crd.preserve-unknown-fields stringArray Controls which CRD should have enabled preserve unknown fields in validation schema =. To apply for all, use crd-name 'all'. + --crd.validation-schema stringArray Overrides default set of CRDs which should have validation schema enabled =. To apply for all, use crd-name 'all'. --deployment.feature.agency-poll Enable Agency Poll for Enterprise deployments - Required ArangoDB 3.8.0 or higher (default true) --deployment.feature.all Enable ALL Features --deployment.feature.async-backup-creation Create backups asynchronously to avoid blocking the operator and reaching the timeout - Required ArangoDB 3.8.0 or higher (default true) diff --git a/cmd/cmd.go b/cmd/cmd.go index 363f848b6..eec8b02d4 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -136,8 +136,9 @@ var ( timeout time.Duration } crdOptions struct { - install bool - validationSchema []string + install bool + preserveUnknownFields []string + validationSchema []string } operatorKubernetesOptions struct { maxBatchSize int64 @@ -242,7 +243,8 @@ func init() { f.Float32Var(&operatorKubernetesOptions.qps, "kubernetes.qps", kclient.DefaultQPS, "Number of queries per second for k8s API") f.IntVar(&operatorKubernetesOptions.burst, "kubernetes.burst", kclient.DefaultBurst, "Burst for the k8s API") f.BoolVar(&crdOptions.install, "crd.install", true, "Install missing CRD if access is possible") - f.StringArrayVar(&crdOptions.validationSchema, "crd.validation-schema", defaultValidationSchemaEnabled, "Overrides default set of CRDs which should have validation schema enabled =.") + f.StringArrayVar(&crdOptions.preserveUnknownFields, "crd.preserve-unknown-fields", nil, "Controls which CRD should have enabled preserve unknown fields in validation schema =. To apply for all, use crd-name 'all'.") + f.StringArrayVar(&crdOptions.validationSchema, "crd.validation-schema", defaultValidationSchemaEnabled, "Overrides default set of CRDs which should have validation schema enabled =. To apply for all, use crd-name 'all'.") f.IntVar(&operatorBackup.concurrentUploads, "backup-concurrent-uploads", globals.DefaultBackupConcurrentUploads, "Number of concurrent uploads per deployment") f.Uint64Var(&memoryLimit.hardLimit, "memory-limit", 0, "Define memory limit for hard shutdown and the dump of goroutines. Used for testing") f.StringArrayVar(&metricsOptions.excludedMetricPrefixes, "metrics.excluded-prefixes", nil, "List of the excluded metrics prefixes") @@ -389,7 +391,7 @@ func executeMain(cmd *cobra.Command, args []string) { ctx, cancel := context.WithTimeout(shutdown.Context(), time.Minute) defer cancel() - crdOpts, err := prepareCRDOptions(crdOptions.validationSchema) + crdOpts, err := prepareCRDOptions(crdOptions.validationSchema, crdOptions.preserveUnknownFields) if err != nil { logger.Fatal("Invalid --crd.validation-schema args: %s", err) } diff --git a/cmd/crd.go b/cmd/crd.go index 3f580d389..0188edfe2 100644 --- a/cmd/crd.go +++ b/cmd/crd.go @@ -37,6 +37,10 @@ import ( "github.com/arangodb/kube-arangodb/pkg/util/shutdown" ) +const ( + AllSchemasValue = "all" +) + var ( cmdCRD = &cobra.Command{ Use: "crd", @@ -48,12 +52,18 @@ var ( Run: cmdCRDInstallRun, Short: "Install and update all required CRDs", } + cmdCRDGenerate = &cobra.Command{ + Use: "generate", + Run: cmdCRDGenerateRun, + Short: "Generates YAML of all required CRDs", + } ) var ( crdInstallOptions struct { - validationSchema []string - force bool + validationSchema []string + preserveUnknownFields []string + force bool } ) @@ -65,39 +75,107 @@ func init() { cmdMain.AddCommand(cmdCRD) cmdOps.AddCommand(cmdCRD) - f := cmdCRDInstall.Flags() + f := cmdCRD.PersistentFlags() f.StringArrayVar(&crdInstallOptions.validationSchema, "crd.validation-schema", defaultValidationSchemaEnabled, "Controls which CRD should have validation schema =.") + f.StringArrayVar(&crdInstallOptions.preserveUnknownFields, "crd.preserve-unknown-fields", nil, "Controls which CRD should have enabled preserve unknown fields in validation schema =.") f.BoolVar(&crdInstallOptions.force, "crd.force-update", false, "Enforce CRD Schema update") + cmdCRD.AddCommand(cmdCRDInstall) + cmdCRD.AddCommand(cmdCRDGenerate) } -func prepareCRDOptions(schemaEnabledArgs []string) (map[string]crds.CRDOptions, error) { +func prepareCRDOptions(schemaEnabledArgs []string, preserveUnknownFieldsArgs []string) (map[string]crds.CRDOptions, error) { defaultOptions := crd.GetDefaultCRDOptions() - result := make(map[string]crds.CRDOptions) var err error - for _, arg := range schemaEnabledArgs { - parts := strings.Split(arg, "=") - crdName := parts[0] - opts, ok := defaultOptions[crdName] - if !ok { - return nil, fmt.Errorf("unknown CRD %s", crdName) - } + schemaEnabled := map[string]bool{} + preserveUnknownFields := map[string]bool{} + + for _, arg := range schemaEnabledArgs { + parts := strings.SplitN(arg, "=", 2) + + var enabled bool if len(parts) == 2 { - opts.WithSchema, err = strconv.ParseBool(parts[1]) + enabled, err = strconv.ParseBool(parts[1]) if err != nil { return nil, errors.Wrapf(err, "not a bool value: %s", parts[1]) } + } - result[crdName] = opts + schemaEnabled[parts[0]] = enabled } - return result, nil + + for _, arg := range preserveUnknownFieldsArgs { + parts := strings.SplitN(arg, "=", 2) + + var enabled bool + + if len(parts) == 2 { + enabled, err = strconv.ParseBool(parts[1]) + if err != nil { + return nil, errors.Wrapf(err, "not a bool value: %s", parts[1]) + } + + } + + preserveUnknownFields[parts[0]] = enabled + } + + for k := range schemaEnabled { + if k == AllSchemasValue { + continue + } + if _, ok := defaultOptions[k]; !ok { + return nil, fmt.Errorf("unknown CRD %s", k) + } + } + + for k := range preserveUnknownFields { + if k == AllSchemasValue { + continue + } + if _, ok := defaultOptions[k]; !ok { + return nil, fmt.Errorf("unknown CRD %s", k) + } + } + + // Override the defaults + if v, ok := schemaEnabled[AllSchemasValue]; ok { + delete(preserveUnknownFields, AllSchemasValue) + for k := range defaultOptions { + z := defaultOptions[k] + z.WithSchema = v + defaultOptions[k] = z + } + } + if v, ok := preserveUnknownFields[AllSchemasValue]; ok { + delete(preserveUnknownFields, AllSchemasValue) + for k := range defaultOptions { + z := defaultOptions[k] + z.WithPreserve = v + defaultOptions[k] = z + } + } + + // Set explicit words + for k, v := range schemaEnabled { + z := defaultOptions[k] + z.WithSchema = v + defaultOptions[k] = z + } + for k, v := range preserveUnknownFields { + z := defaultOptions[k] + z.WithPreserve = v + defaultOptions[k] = z + } + + return defaultOptions, nil } func cmdCRDInstallRun(cmd *cobra.Command, args []string) { - crdOpts, err := prepareCRDOptions(crdInstallOptions.validationSchema) + crdOpts, err := prepareCRDOptions(crdInstallOptions.validationSchema, crdInstallOptions.preserveUnknownFields) if err != nil { logger.Fatal("Invalid --crd.validation-schema args: %s", err) return @@ -117,3 +195,16 @@ func cmdCRDInstallRun(cmd *cobra.Command, args []string) { os.Exit(1) } } + +func cmdCRDGenerateRun(cmd *cobra.Command, args []string) { + crdOpts, err := prepareCRDOptions(crdInstallOptions.validationSchema, crdInstallOptions.preserveUnknownFields) + if err != nil { + logger.Fatal("Invalid --crd.validation-schema args: %s", err) + return + } + + err = crd.GenerateCRDYAMLWithOptions(crd.EnsureCRDOptions{IgnoreErrors: false, CRDOptions: crdOpts, ForceUpdate: crdInstallOptions.force}, cmd.OutOrStdout()) + if err != nil { + os.Exit(1) + } +} diff --git a/docs/api/ArangoMember.V1.md b/docs/api/ArangoMember.V1.md index 26bb76560..9b1d74677 100644 --- a/docs/api/ArangoMember.V1.md +++ b/docs/api/ArangoMember.V1.md @@ -10,7 +10,7 @@ title: ArangoMember V1 ### .spec.deletion_priority -Type: `integer` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L47) +Type: `integer` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L48) DeletionPriority define Deletion Priority. Higher value means higher priority. Default is 0. @@ -20,7 +20,7 @@ Example: set 1 for Coordinator which should be deleted first and scale down coor ### .spec.deploymentUID -Type: `string` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L36) +Type: `string` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L37) DeploymentUID define Deployment UID. @@ -28,7 +28,7 @@ DeploymentUID define Deployment UID. ### .spec.group -Type: `integer` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L31) +Type: `string` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L32) Group define Member Groups. @@ -36,7 +36,7 @@ Group define Member Groups. ### .spec.id -Type: `string` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L33) +Type: `string` [\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.41/pkg/apis/deployment/v1/arango_member_spec.go#L34) *** diff --git a/internal/cr_validation_test.go b/internal/cr_validation_test.go index 719088a5d..6cdfe38fb 100644 --- a/internal/cr_validation_test.go +++ b/internal/cr_validation_test.go @@ -45,7 +45,6 @@ import ( schedulerApiv1alpha1 "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1alpha1" schedulerApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1" storagev1alpha "github.com/arangodb/kube-arangodb/pkg/apis/storage/v1alpha" - "github.com/arangodb/kube-arangodb/pkg/util" ) func (def DocDefinition) ApplyToSchema(s *apiextensions.JSONSchemaProps) { @@ -65,7 +64,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { require.NotEmpty(t, root) type genSpec struct { - obj interface{} + objects map[string]interface{} } fset := token.NewFileSet() @@ -77,195 +76,280 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { "apps-job": { fmt.Sprintf("%s/pkg/apis/apps/v1", root): { "v1": { - appsv1.ArangoJob{}.Spec, + objects: map[string]interface{}{ + "spec": appsv1.ArangoJob{}.Spec, + }, }, }, }, "backups-backup": { fmt.Sprintf("%s/pkg/apis/backup/v1", root): { "v1": { - backupv1.ArangoBackup{}.Spec, + objects: map[string]interface{}{ + "spec": backupv1.ArangoBackup{}.Spec, + }, }, "v1alpha": { - backupv1.ArangoBackup{}.Spec, + objects: map[string]interface{}{ + "spec": backupv1.ArangoBackup{}.Spec, + }, }, }, }, "backups-backuppolicy": { fmt.Sprintf("%s/pkg/apis/backup/v1", root): { "v1": { - backupv1.ArangoBackupPolicy{}.Spec, + objects: map[string]interface{}{ + "spec": backupv1.ArangoBackupPolicy{}.Spec, + }, }, "v1alpha": { - backupv1.ArangoBackupPolicy{}.Spec, + objects: map[string]interface{}{ + "spec": backupv1.ArangoBackupPolicy{}.Spec, + }, }, }, }, "database-deployment": { fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { "v1": { - deploymentv1.ArangoDeployment{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv1.ArangoDeployment{}.Spec, + }, }, "v1alpha": { - deploymentv1.ArangoDeployment{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv1.ArangoDeployment{}.Spec, + }, }, }, fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { - deploymentv2alpha1.ArangoDeployment{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv2alpha1.ArangoDeployment{}.Spec, + }, }, }, }, "database-member": { fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { "v1": { - deploymentv1.ArangoMember{}.Spec, - }, - "v1alpha": { - deploymentv1.ArangoMember{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv1.ArangoMember{}.Spec, + }, }, }, fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { - deploymentv2alpha1.ArangoMember{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv2alpha1.ArangoMember{}.Spec, + }, }, }, }, "database-clustersynchronization": { fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { "v1": { - deploymentv1.ArangoClusterSynchronization{}.Spec, - }, - "v1alpha": { - deploymentv1.ArangoClusterSynchronization{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv1.ArangoClusterSynchronization{}.Spec, + }, }, }, fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { - deploymentv2alpha1.ArangoClusterSynchronization{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv2alpha1.ArangoClusterSynchronization{}.Spec, + }, }, }, }, "database-task": { fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { "v1": { - deploymentv1.ArangoTask{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv1.ArangoTask{}.Spec, + }, }, "v1alpha": { - deploymentv1.ArangoTask{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv1.ArangoTask{}.Spec, + }, }, }, fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { - deploymentv2alpha1.ArangoTask{}.Spec, + objects: map[string]interface{}{ + "spec": deploymentv2alpha1.ArangoTask{}.Spec, + }, }, }, }, "replication-deploymentreplication": { fmt.Sprintf("%s/pkg/apis/replication/v1", root): { "v1": { - replicationv1.ArangoDeploymentReplication{}.Spec, + objects: map[string]interface{}{ + "spec": replicationv1.ArangoDeploymentReplication{}.Spec, + }, }, "v1alpha": { - replicationv1.ArangoDeploymentReplication{}.Spec, + objects: map[string]interface{}{ + "spec": replicationv1.ArangoDeploymentReplication{}.Spec, + }, }, }, fmt.Sprintf("%s/pkg/apis/replication/v2alpha1", root): { "v2alpha1": { - replicationv2alpha1.ArangoDeploymentReplication{}.Spec, + objects: map[string]interface{}{ + "spec": replicationv2alpha1.ArangoDeploymentReplication{}.Spec, + }, }, }, }, "storage-localstorage": { fmt.Sprintf("%s/pkg/apis/storage/v1alpha", root): { "v1alpha": { - storagev1alpha.ArangoLocalStorage{}.Spec, + objects: map[string]interface{}{ + "spec": storagev1alpha.ArangoLocalStorage{}.Spec, + }, }, }, }, "scheduler-profile": { fmt.Sprintf("%s/pkg/apis/scheduler/v1alpha1", root): { "v1alpha1": { - schedulerApiv1alpha1.ArangoProfile{}.Spec, + objects: map[string]interface{}{ + "spec": schedulerApiv1alpha1.ArangoProfile{}.Spec, + }, }, "v1beta1": { - schedulerApi.ArangoProfile{}.Spec, + objects: map[string]interface{}{ + "spec": schedulerApi.ArangoProfile{}.Spec, + }, }, }, }, "ml-extension": { fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { "v1alpha1": { - mlApiv1alpha1.ArangoMLExtension{}.Spec, + objects: map[string]interface{}{ + "spec": mlApiv1alpha1.ArangoMLExtension{}.Spec, + }, }, "v1beta1": { - mlApi.ArangoMLExtension{}.Spec, + objects: map[string]interface{}{ + "spec": mlApi.ArangoMLExtension{}.Spec, + }, }, }, }, "ml-storage": { fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { "v1alpha1": { - mlApiv1alpha1.ArangoMLStorage{}.Spec, + objects: map[string]interface{}{ + "spec": mlApiv1alpha1.ArangoMLStorage{}.Spec, + }, }, "v1beta1": { - mlApi.ArangoMLStorage{}.Spec, + objects: map[string]interface{}{ + "spec": mlApi.ArangoMLStorage{}.Spec, + }, }, }, }, "ml-job-cron": { fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { "v1alpha1": { - mlApiv1alpha1.ArangoMLCronJob{}.Spec, + objects: map[string]interface{}{ + "spec": mlApiv1alpha1.ArangoMLCronJob{}.Spec, + }, }, }, }, "ml-job-batch": { fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { "v1alpha1": { - mlApiv1alpha1.ArangoMLBatchJob{}.Spec, + objects: map[string]interface{}{ + "spec": mlApiv1alpha1.ArangoMLBatchJob{}.Spec, + }, }, }, }, "analytics-graphanalyticsengine": { fmt.Sprintf("%s/pkg/apis/analytics/v1alpha1", root): { "v1alpha1": { - analyticsApi.GraphAnalyticsEngine{}.Spec, + objects: map[string]interface{}{ + "spec": analyticsApi.GraphAnalyticsEngine{}.Spec, + }, }, }, }, } for filePrefix, packagesToVersion := range input { - validationPerVersion := make(map[string]apiextensions.CustomResourceValidation, len(packagesToVersion)) - for apiDir, versionMap := range packagesToVersion { - fields := parseSourceFiles(t, root, fset, apiDir) + t.Run(filePrefix, func(t *testing.T) { + // Preload Definition + data, err := os.ReadFile(fmt.Sprintf("%s/pkg/crd/crds/%s.yaml", root, filePrefix)) + require.NoError(t, err) - for n, f := range sharedFields { - require.NotContains(t, fields, n) - fields[n] = f - } + var crd apiextensions.CustomResourceDefinition - for version, generationSpec := range versionMap { - sb := newSchemaBuilder(root, fields, fset) - s := sb.TypeToSchema(t, reflect.TypeOf(generationSpec.obj), ".spec") - require.NotNil(t, s, version) + require.NoError(t, yaml.Unmarshal(data, &crd)) - validationPerVersion[version] = apiextensions.CustomResourceValidation{ - OpenAPIV3Schema: &apiextensions.JSONSchemaProps{ - Type: "object", - Properties: map[string]apiextensions.JSONSchemaProps{"spec": *s}, - XPreserveUnknownFields: util.NewType(true), - }, + validationPerVersion := make(map[string]apiextensions.CustomResourceValidation, len(packagesToVersion)) + for apiDir, versionMap := range packagesToVersion { + fields := parseSourceFiles(t, root, fset, apiDir) + + for n, f := range sharedFields { + require.NotContains(t, fields, n) + fields[n] = f + } + + for version, generationSpec := range versionMap { + crdVersion := findCRDVersion(t, crd, version) + + t.Log(crdVersion.Schema) + + if _, ok := generationSpec.objects["status"]; !ok { + generationSpec.objects["status"] = allowAnyType{} + } + + sb := newSchemaBuilder(root, fields, fset) + + objects := map[string]apiextensions.JSONSchemaProps{} + + for k, obj := range generationSpec.objects { + s := sb.TypeToSchema(t, reflect.TypeOf(obj), fmt.Sprintf(".%s", k)) + require.NotNil(t, s, version) + + objects[k] = *s + } + + validationPerVersion[version] = apiextensions.CustomResourceValidation{ + OpenAPIV3Schema: &apiextensions.JSONSchemaProps{ + Type: "object", + Properties: objects, + }, + } } } - } - yamlRaw, err := yaml.Marshal(validationPerVersion) - require.NoError(t, err) + yamlRaw, err := yaml.Marshal(validationPerVersion) + require.NoError(t, err) - outPath := path.Join(root, "pkg/crd/crds", fmt.Sprintf("%s.schema.generated.yaml", filePrefix)) - err = os.WriteFile(outPath, yamlRaw, 0644) - require.NoError(t, err) + outPath := path.Join(root, "pkg/crd/crds", fmt.Sprintf("%s.schema.generated.yaml", filePrefix)) + err = os.WriteFile(outPath, yamlRaw, 0644) + require.NoError(t, err) + }) } } + +func findCRDVersion(t *testing.T, crd apiextensions.CustomResourceDefinition, version string) apiextensions.CustomResourceDefinitionVersion { + for _, v := range crd.Spec.Versions { + if v.Name == version { + return v + } + } + + require.FailNowf(t, "Unable to find version", "Trying to find %s/%s", crd.GetName(), version) + return apiextensions.CustomResourceDefinitionVersion{} +} diff --git a/internal/schema_builder_test.go b/internal/schema_builder_test.go index 1b35540fc..4b0a2edbb 100644 --- a/internal/schema_builder_test.go +++ b/internal/schema_builder_test.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2023 ArangoDB GmbH, Cologne, Germany +// Copyright 2023-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -30,6 +30,8 @@ import ( "github.com/stretchr/testify/require" apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" openapi "k8s.io/kube-openapi/pkg/common" + + "github.com/arangodb/kube-arangodb/pkg/util" ) type schemaBuilder struct { @@ -38,6 +40,8 @@ type schemaBuilder struct { fs *token.FileSet } +type allowAnyType struct{} + func newSchemaBuilder(root string, fields map[string]*ast.Field, fs *token.FileSet) *schemaBuilder { return &schemaBuilder{ root: root, @@ -54,6 +58,14 @@ func (b *schemaBuilder) tryGetKubeOpenAPIDefinitions(t *testing.T, obj reflect.T return b.openAPIDefToSchemaPros(t, o.OpenAPIDefinition()) } + if obj := b.tryGetKubeOpenAPIV2Definitions(t, reflect.New(obj).Interface()); obj != nil { + return obj + } + + return nil +} + +func (b *schemaBuilder) tryGetKubeOpenAPIV2Definitions(t *testing.T, obj interface{}) *apiextensions.JSONSchemaProps { type openAPISchemaTypeGetter interface { OpenAPISchemaType() []string } @@ -61,15 +73,23 @@ func (b *schemaBuilder) tryGetKubeOpenAPIDefinitions(t *testing.T, obj reflect.T OpenAPISchemaFormat() string } var typ, frmt string - if o, ok := reflect.New(obj).Interface().(openAPISchemaTypeGetter); ok { + if o, ok := obj.(openAPISchemaTypeGetter); ok { strs := o.OpenAPISchemaType() require.Len(t, strs, 1) typ = strs[0] } - if o, ok := reflect.New(obj).Interface().(openAPISchemaFormatGetter); ok { + if o, ok := obj.(openAPISchemaFormatGetter); ok { frmt = o.OpenAPISchemaFormat() } if typ != "" || frmt != "" { + if frmt == "int-or-string" && typ == "string" { + + return &apiextensions.JSONSchemaProps{ + Type: typ, + XIntOrString: true, + } + } + return &apiextensions.JSONSchemaProps{ Type: typ, Format: frmt, @@ -83,37 +103,42 @@ func (b *schemaBuilder) openAPIDefToSchemaPros(t *testing.T, _ *openapi.OpenAPID return nil } -func (b *schemaBuilder) TypeToSchema(t *testing.T, obj reflect.Type, path string) *apiextensions.JSONSchemaProps { - var schema *apiextensions.JSONSchemaProps - t.Run(obj.Name(), func(t *testing.T) { - // first check if type already implements a method to get OpenAPI schema: - schema = b.tryGetKubeOpenAPIDefinitions(t, obj) - if schema != nil { +func (b *schemaBuilder) TypeToSchema(t *testing.T, obj reflect.Type, path string) (schema *apiextensions.JSONSchemaProps) { + // first check if type already implements a method to get OpenAPI schema: + schema = b.tryGetKubeOpenAPIDefinitions(t, obj) + if schema != nil { + return + } + + // fallback to our impl: + switch obj.Kind() { + case reflect.Pointer: + schema = b.TypeToSchema(t, obj.Elem(), path) + case reflect.Struct: + if obj == reflect.TypeOf(allowAnyType{}) || obj == reflect.TypeOf(&allowAnyType{}) { + schema = &apiextensions.JSONSchemaProps{ + Type: "object", + Description: "Object with preserved fields for backward compatibility", + XPreserveUnknownFields: util.NewType(true), + } return } - - // fallback to our impl: - switch obj.Kind() { - case reflect.Pointer: - schema = b.TypeToSchema(t, obj.Elem(), path) - case reflect.Struct: - schema = b.StructToSchema(t, obj, path) - case reflect.Array, reflect.Slice: - schema = b.ArrayToSchema(t, obj.Elem(), path) - case reflect.Map: - schema = b.MapToSchema(t, obj, path) - default: - if typ, frmt, simple := isSimpleType(obj); simple { - schema = &apiextensions.JSONSchemaProps{ - Type: typ, - Format: frmt, - } - } else { - t.Fatalf("Unsupported obj kind: %s", obj.Kind()) - return + schema = b.StructToSchema(t, obj, path) + case reflect.Array, reflect.Slice: + schema = b.ArrayToSchema(t, obj.Elem(), path) + case reflect.Map: + schema = b.MapToSchema(t, obj, path) + default: + if typ, frmt, simple := isSimpleType(obj); simple { + schema = &apiextensions.JSONSchemaProps{ + Type: typ, + Format: frmt, } + } else { + t.Fatalf("Unsupported obj kind: %s", obj.Kind()) + return } - }) + } return schema } diff --git a/pkg/apis/deployment/v1/arango_member_spec.go b/pkg/apis/deployment/v1/arango_member_spec.go index 5c4baaae8..f6d83becd 100644 --- a/pkg/apis/deployment/v1/arango_member_spec.go +++ b/pkg/apis/deployment/v1/arango_member_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ import ( type ArangoMemberSpec struct { // Group define Member Groups. + // +doc/type: string Group ServerGroup `json:"group,omitempty"` ID string `json:"id,omitempty"` diff --git a/pkg/apis/deployment/v1/server_group.go b/pkg/apis/deployment/v1/server_group.go index 4ff7b6470..87f0ab8aa 100644 --- a/pkg/apis/deployment/v1/server_group.go +++ b/pkg/apis/deployment/v1/server_group.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,6 +39,12 @@ func (s ServerGroups) Contains(group ServerGroup) bool { type ServerGroup int +func (g *ServerGroup) OpenAPISchemaType() []string { + return []string{ + "string", + } +} + func (g *ServerGroup) UnmarshalJSON(bytes []byte) error { if bytes == nil { *g = ServerGroupUnknown diff --git a/pkg/apis/deployment/v2alpha1/arango_member_spec.go b/pkg/apis/deployment/v2alpha1/arango_member_spec.go index f084586af..d1237a1ef 100644 --- a/pkg/apis/deployment/v2alpha1/arango_member_spec.go +++ b/pkg/apis/deployment/v2alpha1/arango_member_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -28,6 +28,7 @@ import ( type ArangoMemberSpec struct { // Group define Member Groups. + // +doc/type: string Group ServerGroup `json:"group,omitempty"` ID string `json:"id,omitempty"` diff --git a/pkg/apis/deployment/v2alpha1/server_group.go b/pkg/apis/deployment/v2alpha1/server_group.go index 974ce61ce..e0de530a5 100644 --- a/pkg/apis/deployment/v2alpha1/server_group.go +++ b/pkg/apis/deployment/v2alpha1/server_group.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,6 +39,12 @@ func (s ServerGroups) Contains(group ServerGroup) bool { type ServerGroup int +func (g *ServerGroup) OpenAPISchemaType() []string { + return []string{ + "string", + } +} + func (g *ServerGroup) UnmarshalJSON(bytes []byte) error { if bytes == nil { *g = ServerGroupUnknown diff --git a/pkg/crd/apply.go b/pkg/crd/apply.go index 027f6462d..e1c0c06c6 100644 --- a/pkg/crd/apply.go +++ b/pkg/crd/apply.go @@ -22,14 +22,19 @@ package crd import ( "context" + "io" + "sort" + "strconv" authorization "k8s.io/api/authorization/v1" apiextensions "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "k8s.io/apimachinery/pkg/api/errors" meta "k8s.io/apimachinery/pkg/apis/meta/v1" + "sigs.k8s.io/yaml" "github.com/arangodb/kube-arangodb/pkg/crd/crds" "github.com/arangodb/kube-arangodb/pkg/logging" + "github.com/arangodb/kube-arangodb/pkg/util" kresources "github.com/arangodb/kube-arangodb/pkg/util/k8sutil/resources" "github.com/arangodb/kube-arangodb/pkg/util/kclient" ) @@ -57,6 +62,7 @@ func EnsureCRDWithOptions(ctx context.Context, client kclient.Client, opts Ensur defer crdsLock.Unlock() for crdName, crdReg := range registeredCRDs { + getAccess := verifyCRDAccess(ctx, client, crdName, "get") if !getAccess.Allowed { logger.Str("crd", crdName).Info("Get Operations is not allowed. Continue") @@ -77,6 +83,90 @@ func EnsureCRDWithOptions(ctx context.Context, client kclient.Client, opts Ensur return nil } +func GenerateCRDYAMLWithOptions(opts EnsureCRDOptions, out io.Writer) error { + crds := GenerateCRDWithOptions(opts) + + for id, crd := range crds { + obj := map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": crd.Labels, + "name": crd.Name, + }, + "spec": crd.Spec, + } + + data, err := yaml.Marshal(obj) + if err != nil { + return err + } + + if id > 0 { + _, err = util.WriteAll(out, []byte("\n\n---\n\n")) + if err != nil { + return err + } + } + + _, err = util.WriteAll(out, data) + if err != nil { + return err + } + } + + return nil +} + +func GenerateCRDWithOptions(opts EnsureCRDOptions) []apiextensions.CustomResourceDefinition { + crdsLock.Lock() + defer crdsLock.Unlock() + + ret := make([]apiextensions.CustomResourceDefinition, 0, len(registeredCRDs)) + + for crdName, crdReg := range registeredCRDs { + var opt = &crdReg.defaultOpts + if o, ok := opts.CRDOptions[crdName]; ok { + opt = &o + } + def := crdReg.getter(opt) + + ret = append(ret, *renderCRD(def, opt)) + } + + sort.Slice(ret, func(i, j int) bool { + return ret[i].GetName() < ret[j].GetName() + }) + + return ret +} + +func renderCRD(def crds.Definition, opts *crds.CRDOptions) *apiextensions.CustomResourceDefinition { + crdName := def.CRD.Name + + definitionVersion, definitionSchemaVersion := def.DefinitionData.Checksum() + + schema := opts.GetWithSchema() + preserve := !schema || opts.GetWithPreserve() + + c := &apiextensions.CustomResourceDefinition{ + ObjectMeta: meta.ObjectMeta{ + Name: crdName, + Labels: map[string]string{ + Version: definitionVersion, + PreserveUnknownFields: strconv.FormatBool(preserve), + }, + }, + Spec: def.CRD.Spec, + } + + if schema { + c.Labels[Schema] = definitionSchemaVersion + } + + return c +} + func tryApplyCRD(ctx context.Context, client kclient.Client, def crds.Definition, opts *crds.CRDOptions, forceUpdate bool) error { crdDefinitions := client.KubernetesExtensions().ApiextensionsV1().CustomResourceDefinitions() @@ -86,10 +176,15 @@ func tryApplyCRD(ctx context.Context, client kclient.Client, def crds.Definition logger := logger.Str("version", definitionVersion) - if opts.GetWithSchema() { + schema := opts.GetWithSchema() + preserve := !schema || opts.GetWithPreserve() + + if schema { logger = logger.Str("schema", definitionSchemaVersion) } + logger = logger.Bool("preserve", preserve) + c, err := crdDefinitions.Get(ctx, crdName, meta.GetOptions{}) if err != nil { if !errors.IsNotFound(err) { @@ -104,19 +199,7 @@ func tryApplyCRD(ctx context.Context, client kclient.Client, def crds.Definition return nil } - c = &apiextensions.CustomResourceDefinition{ - ObjectMeta: meta.ObjectMeta{ - Name: crdName, - Labels: map[string]string{ - Version: definitionVersion, - }, - }, - Spec: def.CRD.Spec, - } - - if opts.GetWithSchema() { - c.Labels[Schema] = definitionSchemaVersion - } + c = renderCRD(def, opts) if _, err := crdDefinitions.Create(ctx, c, meta.CreateOptions{}); err != nil { logger.Err(err).Str("crd", crdName).Warn("Create Operations is not allowed due to error") @@ -133,24 +216,27 @@ func tryApplyCRD(ctx context.Context, client kclient.Client, def crds.Definition return nil } - if c.ObjectMeta.Labels == nil { - c.ObjectMeta.Labels = map[string]string{} + if c.Labels == nil { + c.Labels = map[string]string{} } if !forceUpdate { - if v, ok := c.ObjectMeta.Labels[Version]; ok && v == definitionVersion { - if v, ok := c.ObjectMeta.Labels[Schema]; (opts.GetWithSchema() && (ok && v == definitionSchemaVersion)) || (!opts.GetWithSchema() && !ok) { - logger.Str("crd", crdName).Info("CRD Update not required") - return nil + if v, ok := c.Labels[Version]; ok && v == definitionVersion { + if v, ok := c.Labels[Schema]; (schema && (ok && v == definitionSchemaVersion)) || (!schema && !ok) { + if v, ok := c.Labels[PreserveUnknownFields]; (preserve && ok && v == "true") || (!preserve && (!ok || v != "true")) { + logger.Str("crd", crdName).Info("CRD Update not required") + return nil + } } } } - c.ObjectMeta.Labels[Version] = definitionVersion - delete(c.ObjectMeta.Labels, Schema) - if opts.GetWithSchema() { - c.ObjectMeta.Labels[Schema] = definitionSchemaVersion + c.Labels[Version] = definitionVersion + delete(c.Labels, Schema) + if schema { + c.Labels[Schema] = definitionSchemaVersion } + c.Labels[PreserveUnknownFields] = strconv.FormatBool(preserve) c.Spec = def.CRD.Spec if _, err := crdDefinitions.Update(ctx, c, meta.UpdateOptions{}); err != nil { diff --git a/pkg/crd/apply_test.go b/pkg/crd/apply_test.go index 61b66fb0c..7fc395e11 100644 --- a/pkg/crd/apply_test.go +++ b/pkg/crd/apply_test.go @@ -40,13 +40,19 @@ func dropLogMessages(t *testing.T, s tests.LogScanner) map[string]string { lines := map[string]string{} for i := 0; i < len(crds.AllDefinitions()); i++ { - var data map[string]string + var data map[string]interface{} require.True(t, s.GetData(t, 500*time.Millisecond, &data)) - p, ok := data["crd"] + pr, ok := data["crd"] require.True(t, ok) - m, ok := data["message"] + p, ok := pr.(string) + require.True(t, ok) + + mr, ok := data["message"] + require.True(t, ok) + + m, ok := mr.(string) require.True(t, ok) lines[p] = m diff --git a/pkg/crd/arangoml.go b/pkg/crd/arangoml.go index 1df15ff04..e14bdda79 100644 --- a/pkg/crd/arangoml.go +++ b/pkg/crd/arangoml.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -36,7 +36,8 @@ func init() { registerCRDWithPanic(func(opts *crds.CRDOptions) crds.Definition { return defFn(opts.AsFunc()) }, &crds.CRDOptions{ - WithSchema: true, + WithSchema: true, + WithPreserve: false, }) } } diff --git a/pkg/crd/arangoprofile.go b/pkg/crd/arangoprofile.go index 4c2f7df15..e421e9940 100644 --- a/pkg/crd/arangoprofile.go +++ b/pkg/crd/arangoprofile.go @@ -27,5 +27,8 @@ import ( func init() { registerCRDWithPanic(func(opts *crds.CRDOptions) crds.Definition { return crds.SchedulerProfileDefinitionWithOptions(opts.AsFunc()) - }, nil) + }, &crds.CRDOptions{ + WithSchema: true, + WithPreserve: false, + }) } diff --git a/pkg/crd/arangotasks.go b/pkg/crd/arangotasks.go index b2cbd934f..cedda61bb 100644 --- a/pkg/crd/arangotasks.go +++ b/pkg/crd/arangotasks.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,5 +27,8 @@ import ( func init() { registerCRDWithPanic(func(opts *crds.CRDOptions) crds.Definition { return crds.DatabaseTaskDefinitionWithOptions(opts.AsFunc()) - }, nil) + }, &crds.CRDOptions{ + WithSchema: true, + WithPreserve: false, + }) } diff --git a/pkg/crd/crds/analytics-graphanalyticsengine.schema.generated.yaml b/pkg/crd/crds/analytics-graphanalyticsengine.schema.generated.yaml index 1be7306c4..dd1a76015 100644 --- a/pkg/crd/crds/analytics-graphanalyticsengine.schema.generated.yaml +++ b/pkg/crd/crds/analytics-graphanalyticsengine.schema.generated.yaml @@ -463,8 +463,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -479,8 +479,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -508,8 +508,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -524,8 +524,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -565,8 +565,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -584,8 +584,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -731,8 +731,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -750,8 +750,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -892,8 +892,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -911,8 +911,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1764,8 +1764,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1780,8 +1780,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1809,8 +1809,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1825,8 +1825,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1869,8 +1869,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1888,8 +1888,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1951,8 +1951,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1970,8 +1970,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2093,8 +2093,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2112,8 +2112,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2143,5 +2143,8 @@ v1alpha1: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/apps-job.schema.generated.yaml b/pkg/crd/crds/apps-job.schema.generated.yaml index 3f83a99b0..c89c53c1f 100644 --- a/pkg/crd/crds/apps-job.schema.generated.yaml +++ b/pkg/crd/crds/apps-job.schema.generated.yaml @@ -611,8 +611,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -627,8 +627,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -656,8 +656,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -672,8 +672,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -713,8 +713,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -732,8 +732,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -797,8 +797,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -816,8 +816,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -950,8 +950,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -969,8 +969,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1152,8 +1152,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1168,8 +1168,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1197,8 +1197,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1213,8 +1213,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1254,8 +1254,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1273,8 +1273,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1338,8 +1338,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1357,8 +1357,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1491,8 +1491,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1510,8 +1510,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1699,8 +1699,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1715,8 +1715,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1744,8 +1744,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1760,8 +1760,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1801,8 +1801,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1820,8 +1820,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1885,8 +1885,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1904,8 +1904,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2038,8 +2038,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2057,8 +2057,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2981,5 +2981,8 @@ v1: type: integer type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/backups-backup.schema.generated.yaml b/pkg/crd/crds/backups-backup.schema.generated.yaml index a8be92da9..20d2ed022 100644 --- a/pkg/crd/crds/backups-backup.schema.generated.yaml +++ b/pkg/crd/crds/backups-backup.schema.generated.yaml @@ -86,8 +86,11 @@ v1: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1alpha: openAPIV3Schema: properties: @@ -176,5 +179,8 @@ v1alpha: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml b/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml index d226e338a..ee14fb976 100644 --- a/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml +++ b/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml @@ -92,8 +92,11 @@ v1: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1alpha: openAPIV3Schema: properties: @@ -188,5 +191,8 @@ v1alpha: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/crds.go b/pkg/crd/crds/crds.go index 573186e20..6afef097c 100644 --- a/pkg/crd/crds/crds.go +++ b/pkg/crd/crds/crds.go @@ -95,8 +95,16 @@ func AllDefinitions() []Definition { type crdSchemas map[string]apiextensions.CustomResourceValidation +func DefaultCRDOptions() *CRDOptions { + return &CRDOptions{ + WithSchema: false, + WithPreserve: true, + } +} + type CRDOptions struct { - WithSchema bool + WithSchema bool + WithPreserve bool } func (o *CRDOptions) GetWithSchema() bool { @@ -107,12 +115,26 @@ func (o *CRDOptions) GetWithSchema() bool { return o.WithSchema } +func (o *CRDOptions) GetWithPreserve() bool { + if o == nil { + return false + } + + return o.WithPreserve +} + func (o *CRDOptions) AsFunc() func(*CRDOptions) { return func(opts *CRDOptions) { - if o == nil || opts == nil { - opts = &CRDOptions{} - } else { - opts.WithSchema = o.WithSchema + if opts == nil { + return + } + + if o != nil { + opts.WithSchema = o.GetWithSchema() + } + + if o != nil { + opts.WithPreserve = o.GetWithPreserve() } } } @@ -123,8 +145,26 @@ func WithSchema() func(*CRDOptions) { } } +func WithoutSchema() func(*CRDOptions) { + return func(o *CRDOptions) { + o.WithSchema = false + } +} + +func WithPreserve() func(*CRDOptions) { + return func(o *CRDOptions) { + o.WithPreserve = true + } +} + +func WithoutPreserve() func(*CRDOptions) { + return func(o *CRDOptions) { + o.WithPreserve = false + } +} + func getCRD(data DefinitionData, opts ...func(*CRDOptions)) *apiextensions.CustomResourceDefinition { - o := &CRDOptions{} + o := DefaultCRDOptions() for _, fn := range opts { fn(o) } @@ -142,6 +182,11 @@ func getCRD(data DefinitionData, opts ...func(*CRDOptions)) *apiextensions.Custo panic(fmt.Sprintf("Validation schema is not defined for version %s of %s", v.Name, crd.Name)) } crdWithSchema.Spec.Versions[i].Schema = schema.DeepCopy() + if s := crdWithSchema.Spec.Versions[i].Schema.OpenAPIV3Schema; s != nil { + if o.GetWithPreserve() { + s.XPreserveUnknownFields = util.NewType(true) + } + } } return crdWithSchema diff --git a/pkg/crd/crds/crds_test.go b/pkg/crd/crds/crds_test.go index c1ed38baa..6f558f4eb 100644 --- a/pkg/crd/crds/crds_test.go +++ b/pkg/crd/crds/crds_test.go @@ -36,7 +36,7 @@ import ( "github.com/arangodb/kube-arangodb/pkg/apis/storage" ) -func ensureCRDCompliance(t *testing.T, name string, crdDef *apiextensions.CustomResourceDefinition, schemaExpected bool) { +func ensureCRDCompliance(t *testing.T, name string, crdDef *apiextensions.CustomResourceDefinition, schemaExpected, preserveExpected bool) { t.Helper() require.NotNil(t, crdDef) @@ -45,8 +45,25 @@ func ensureCRDCompliance(t *testing.T, name string, crdDef *apiextensions.Custom t.Run(name+" "+version.Name, func(t *testing.T) { require.NotNil(t, version.Schema) require.Equal(t, "object", version.Schema.OpenAPIV3Schema.Type) - require.NotNil(t, version.Schema.OpenAPIV3Schema.XPreserveUnknownFields) - require.True(t, *version.Schema.OpenAPIV3Schema.XPreserveUnknownFields) + + if preserveExpected { + require.NotNil(t, version.Schema.OpenAPIV3Schema.XPreserveUnknownFields) + require.True(t, *version.Schema.OpenAPIV3Schema.XPreserveUnknownFields) + } else { + require.Nil(t, version.Schema.OpenAPIV3Schema.XPreserveUnknownFields) + + if version.Subresources != nil { + if version.Subresources.Status != nil { + t.Run("Status", func(t *testing.T) { + require.Contains(t, version.Schema.OpenAPIV3Schema.Properties, "status") + status := version.Schema.OpenAPIV3Schema.Properties["status"] + require.NotNil(t, status.XPreserveUnknownFields) + require.True(t, *status.XPreserveUnknownFields) + }) + } + } + } + if schemaExpected { require.NotEmpty(t, version.Schema.OpenAPIV3Schema.Properties) } else { @@ -79,10 +96,13 @@ func Test_CRD(t *testing.T) { for _, tc := range testCases { t.Run(fmt.Sprintf("%s-no-schema", tc.name), func(t *testing.T) { - ensureCRDCompliance(t, tc.name, tc.getter().CRD, false) + ensureCRDCompliance(t, tc.name, tc.getter().CRD, false, true) }) t.Run(fmt.Sprintf("%s-with-schema", tc.name), func(t *testing.T) { - ensureCRDCompliance(t, tc.name, tc.getter(WithSchema()).CRD, true) + ensureCRDCompliance(t, tc.name, tc.getter(WithSchema()).CRD, true, true) + }) + t.Run(fmt.Sprintf("%s-with-schema-np", tc.name), func(t *testing.T) { + ensureCRDCompliance(t, tc.name, tc.getter(WithSchema(), WithoutPreserve()).CRD, true, false) }) } } @@ -131,13 +151,13 @@ func Test_CRDGetters(t *testing.T) { t.Run("no-schema", func(t *testing.T) { crd := g() require.NotNil(t, crd) - ensureCRDCompliance(t, crd.Spec.Names.Plural+"."+crd.Spec.Group, crd, false) + ensureCRDCompliance(t, crd.Spec.Names.Plural+"."+crd.Spec.Group, crd, false, true) }) t.Run("with-schema", func(t *testing.T) { crdWithSchema := g(WithSchema()) require.NotNil(t, crdWithSchema) - ensureCRDCompliance(t, crdWithSchema.Spec.Names.Plural+"."+crdWithSchema.Spec.Group+"", crdWithSchema, true) + ensureCRDCompliance(t, crdWithSchema.Spec.Names.Plural+"."+crdWithSchema.Spec.Group+"", crdWithSchema, true, true) }) } } diff --git a/pkg/crd/crds/database-clustersynchronization.schema.generated.yaml b/pkg/crd/crds/database-clustersynchronization.schema.generated.yaml index af5cd86b5..4959a0692 100644 --- a/pkg/crd/crds/database-clustersynchronization.schema.generated.yaml +++ b/pkg/crd/crds/database-clustersynchronization.schema.generated.yaml @@ -15,27 +15,11 @@ v1: type: string type: object type: object - type: object - x-kubernetes-preserve-unknown-fields: true -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - deploymentName: - type: string - kubeconfig: - properties: - namespace: - type: string - secretKey: - type: string - secretName: - type: string - type: object + status: + description: Object with preserved fields for backward compatibility type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v2alpha1: openAPIV3Schema: properties: @@ -53,5 +37,8 @@ v2alpha1: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/database-deployment.schema.generated.yaml b/pkg/crd/crds/database-deployment.schema.generated.yaml index d316359aa..c5fa1403a 100644 --- a/pkg/crd/crds/database-deployment.schema.generated.yaml +++ b/pkg/crd/crds/database-deployment.schema.generated.yaml @@ -464,8 +464,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -480,8 +480,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -509,8 +509,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -525,8 +525,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -566,8 +566,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -585,8 +585,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -650,8 +650,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -669,8 +669,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -803,8 +803,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -822,8 +822,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1251,8 +1251,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -1394,8 +1394,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1410,8 +1410,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1439,8 +1439,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1455,8 +1455,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1496,8 +1496,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1515,8 +1515,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1580,8 +1580,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1599,8 +1599,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1733,8 +1733,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1752,8 +1752,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2683,8 +2683,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2699,8 +2699,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -2728,8 +2728,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2744,8 +2744,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -2785,8 +2785,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2804,8 +2804,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2869,8 +2869,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2888,8 +2888,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3022,8 +3022,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3041,8 +3041,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3470,8 +3470,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -3613,8 +3613,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3629,8 +3629,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -3658,8 +3658,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3674,8 +3674,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -3715,8 +3715,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3734,8 +3734,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3799,8 +3799,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3818,8 +3818,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3952,8 +3952,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3971,8 +3971,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -4820,8 +4820,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -4836,8 +4836,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -4865,8 +4865,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -4881,8 +4881,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -4922,8 +4922,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -4941,8 +4941,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5006,8 +5006,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5025,8 +5025,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5159,8 +5159,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5178,8 +5178,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5607,8 +5607,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -5750,8 +5750,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5766,8 +5766,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -5795,8 +5795,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5811,8 +5811,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -5852,8 +5852,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5871,8 +5871,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5936,8 +5936,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5955,8 +5955,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -6089,8 +6089,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -6108,8 +6108,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7000,8 +7000,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -7707,8 +7707,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7723,8 +7723,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -7752,8 +7752,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7768,8 +7768,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -7809,8 +7809,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7828,8 +7828,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7893,8 +7893,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7912,8 +7912,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8046,8 +8046,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8065,8 +8065,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8494,8 +8494,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -8637,8 +8637,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8653,8 +8653,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -8682,8 +8682,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8698,8 +8698,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -8739,8 +8739,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8758,8 +8758,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8823,8 +8823,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8842,8 +8842,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8976,8 +8976,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8995,8 +8995,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -9987,8 +9987,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10003,8 +10003,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -10032,8 +10032,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10048,8 +10048,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -10089,8 +10089,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10108,8 +10108,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -10173,8 +10173,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10192,8 +10192,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -10326,8 +10326,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10345,8 +10345,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -10774,8 +10774,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -10917,8 +10917,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10933,8 +10933,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -10962,8 +10962,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10978,8 +10978,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -11019,8 +11019,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -11038,8 +11038,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -11103,8 +11103,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -11122,8 +11122,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -11256,8 +11256,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -11275,8 +11275,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -12117,8 +12117,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12133,8 +12133,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -12162,8 +12162,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12178,8 +12178,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -12219,8 +12219,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12238,8 +12238,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -12303,8 +12303,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12322,8 +12322,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -12456,8 +12456,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12475,8 +12475,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -12904,8 +12904,8 @@ v1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -13047,8 +13047,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13063,8 +13063,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -13092,8 +13092,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13108,8 +13108,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -13149,8 +13149,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13168,8 +13168,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -13233,8 +13233,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13252,8 +13252,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -13386,8 +13386,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13405,8 +13405,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -13876,8 +13876,11 @@ v1: type: boolean type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1alpha: openAPIV3Schema: properties: @@ -14344,8 +14347,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -14360,8 +14363,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -14389,8 +14392,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -14405,8 +14408,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -14446,8 +14449,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -14465,8 +14468,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -14530,8 +14533,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -14549,8 +14552,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -14683,8 +14686,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -14702,8 +14705,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -15131,8 +15134,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -15274,8 +15277,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15290,8 +15293,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -15319,8 +15322,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15335,8 +15338,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -15376,8 +15379,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15395,8 +15398,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -15460,8 +15463,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15479,8 +15482,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -15613,8 +15616,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15632,8 +15635,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -16563,8 +16566,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16579,8 +16582,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -16608,8 +16611,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16624,8 +16627,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -16665,8 +16668,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16684,8 +16687,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -16749,8 +16752,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16768,8 +16771,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -16902,8 +16905,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16921,8 +16924,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -17350,8 +17353,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -17493,8 +17496,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17509,8 +17512,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -17538,8 +17541,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17554,8 +17557,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -17595,8 +17598,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17614,8 +17617,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -17679,8 +17682,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17698,8 +17701,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -17832,8 +17835,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17851,8 +17854,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -18700,8 +18703,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18716,8 +18719,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -18745,8 +18748,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18761,8 +18764,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -18802,8 +18805,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18821,8 +18824,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -18886,8 +18889,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18905,8 +18908,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -19039,8 +19042,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19058,8 +19061,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -19487,8 +19490,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -19630,8 +19633,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19646,8 +19649,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -19675,8 +19678,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19691,8 +19694,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -19732,8 +19735,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19751,8 +19754,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -19816,8 +19819,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19835,8 +19838,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -19969,8 +19972,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19988,8 +19991,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -20880,8 +20883,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -21587,8 +21590,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -21603,8 +21606,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -21632,8 +21635,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -21648,8 +21651,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -21689,8 +21692,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -21708,8 +21711,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -21773,8 +21776,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -21792,8 +21795,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -21926,8 +21929,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -21945,8 +21948,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -22374,8 +22377,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -22517,8 +22520,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22533,8 +22536,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -22562,8 +22565,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22578,8 +22581,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -22619,8 +22622,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22638,8 +22641,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -22703,8 +22706,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22722,8 +22725,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -22856,8 +22859,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22875,8 +22878,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -23867,8 +23870,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23883,8 +23886,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -23912,8 +23915,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23928,8 +23931,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -23969,8 +23972,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23988,8 +23991,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -24053,8 +24056,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -24072,8 +24075,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -24206,8 +24209,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -24225,8 +24228,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -24654,8 +24657,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -24797,8 +24800,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -24813,8 +24816,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -24842,8 +24845,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -24858,8 +24861,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -24899,8 +24902,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -24918,8 +24921,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -24983,8 +24986,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25002,8 +25005,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -25136,8 +25139,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25155,8 +25158,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -25997,8 +26000,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26013,8 +26016,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -26042,8 +26045,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26058,8 +26061,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -26099,8 +26102,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26118,8 +26121,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -26183,8 +26186,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26202,8 +26205,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -26336,8 +26339,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26355,8 +26358,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -26784,8 +26787,8 @@ v1alpha: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -26927,8 +26930,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26943,8 +26946,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -26972,8 +26975,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -26988,8 +26991,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -27029,8 +27032,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -27048,8 +27051,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -27113,8 +27116,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -27132,8 +27135,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -27266,8 +27269,8 @@ v1alpha: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -27285,8 +27288,8 @@ v1alpha: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -27756,8 +27759,11 @@ v1alpha: type: boolean type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v2alpha1: openAPIV3Schema: properties: @@ -28224,8 +28230,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -28240,8 +28246,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -28269,8 +28275,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -28285,8 +28291,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -28326,8 +28332,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -28345,8 +28351,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -28410,8 +28416,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -28429,8 +28435,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -28563,8 +28569,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -28582,8 +28588,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -29011,8 +29017,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -29154,8 +29160,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -29170,8 +29176,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -29199,8 +29205,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -29215,8 +29221,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -29256,8 +29262,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -29275,8 +29281,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -29340,8 +29346,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -29359,8 +29365,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -29493,8 +29499,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -29512,8 +29518,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -30443,8 +30449,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -30459,8 +30465,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -30488,8 +30494,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -30504,8 +30510,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -30545,8 +30551,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -30564,8 +30570,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -30629,8 +30635,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -30648,8 +30654,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -30782,8 +30788,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -30801,8 +30807,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -31230,8 +31236,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -31373,8 +31379,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -31389,8 +31395,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -31418,8 +31424,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -31434,8 +31440,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -31475,8 +31481,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -31494,8 +31500,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -31559,8 +31565,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -31578,8 +31584,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -31712,8 +31718,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -31731,8 +31737,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -32580,8 +32586,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -32596,8 +32602,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -32625,8 +32631,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -32641,8 +32647,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -32682,8 +32688,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -32701,8 +32707,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -32766,8 +32772,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -32785,8 +32791,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -32919,8 +32925,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -32938,8 +32944,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -33367,8 +33373,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -33510,8 +33516,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -33526,8 +33532,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -33555,8 +33561,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -33571,8 +33577,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -33612,8 +33618,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -33631,8 +33637,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -33696,8 +33702,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -33715,8 +33721,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -33849,8 +33855,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -33868,8 +33874,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -34760,8 +34766,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -35467,8 +35473,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -35483,8 +35489,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -35512,8 +35518,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -35528,8 +35534,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -35569,8 +35575,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -35588,8 +35594,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -35653,8 +35659,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -35672,8 +35678,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -35806,8 +35812,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -35825,8 +35831,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -36254,8 +36260,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -36397,8 +36403,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -36413,8 +36419,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -36442,8 +36448,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -36458,8 +36464,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -36499,8 +36505,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -36518,8 +36524,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -36583,8 +36589,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -36602,8 +36608,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -36736,8 +36742,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -36755,8 +36761,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -37747,8 +37753,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -37763,8 +37769,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -37792,8 +37798,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -37808,8 +37814,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -37849,8 +37855,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -37868,8 +37874,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -37933,8 +37939,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -37952,8 +37958,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -38086,8 +38092,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -38105,8 +38111,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -38534,8 +38540,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -38677,8 +38683,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -38693,8 +38699,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -38722,8 +38728,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -38738,8 +38744,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -38779,8 +38785,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -38798,8 +38804,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -38863,8 +38869,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -38882,8 +38888,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -39016,8 +39022,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -39035,8 +39041,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -39877,8 +39883,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -39893,8 +39899,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -39922,8 +39928,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -39938,8 +39944,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -39979,8 +39985,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -39998,8 +40004,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -40063,8 +40069,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -40082,8 +40088,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -40216,8 +40222,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -40235,8 +40241,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -40664,8 +40670,8 @@ v2alpha1: type: array sysctls: additionalProperties: - format: int-or-string type: string + x-kubernetes-int-or-string: true description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. @@ -40807,8 +40813,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -40823,8 +40829,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -40852,8 +40858,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -40868,8 +40874,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -40909,8 +40915,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -40928,8 +40934,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -40993,8 +40999,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -41012,8 +41018,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -41146,8 +41152,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -41165,8 +41171,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -41636,5 +41642,8 @@ v2alpha1: type: boolean type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/database-member.schema.generated.yaml b/pkg/crd/crds/database-member.schema.generated.yaml index a0aeb41ae..0582ff8ca 100644 --- a/pkg/crd/crds/database-member.schema.generated.yaml +++ b/pkg/crd/crds/database-member.schema.generated.yaml @@ -15,8 +15,7 @@ v1: type: string group: description: Group define Member Groups. - format: int32 - type: integer + type: string id: type: string overrides: @@ -775,8 +774,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -791,8 +790,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -820,8 +819,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -836,8 +835,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -877,8 +876,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -896,8 +895,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -961,8 +960,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -980,8 +979,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1114,8 +1113,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1133,8 +1132,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1316,8 +1315,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1332,8 +1331,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1361,8 +1360,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1377,8 +1376,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1418,8 +1417,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1437,8 +1436,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1502,8 +1501,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1521,8 +1520,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1655,8 +1654,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1674,8 +1673,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1863,8 +1862,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1879,8 +1878,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1908,8 +1907,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1924,8 +1923,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1965,8 +1964,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1984,8 +1983,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2049,8 +2048,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2068,8 +2067,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2202,8 +2201,8 @@ v1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2221,8 +2220,8 @@ v1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3145,3157 +3144,11 @@ v1: type: string type: object type: object - type: object - x-kubernetes-preserve-unknown-fields: true -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - deletion_priority: - description: |- - DeletionPriority define Deletion Priority. - Higher value means higher priority. Default is 0. - Example: set 1 for Coordinator which should be deleted first and scale down coordinators by one. - format: int32 - type: integer - deploymentUID: - description: DeploymentUID define Deployment UID. - type: string - group: - description: Group define Member Groups. - format: int32 - type: integer - id: - type: string - overrides: - description: Overrides define Member Overrides (Override values from ServerGroup). - properties: - resources: - description: Resources holds resource requests & limits. Overrides template provided on the group level. - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - volumeClaimTemplate: - description: VolumeClaimTemplate specifies a template for volume claims. Overrides template provided on the group level. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - type: object - template: - description: Template keeps template which is gonna be applied on the Pod. - properties: - checksum: - description: Checksum keep the Pod Spec Checksum (with ignored fields). - type: string - endpoint: - type: string - podSpec: - description: PodSpec specifies the Pod Spec used for this Member. - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - activeDeadlineSeconds: - format: int64 - type: integer - affinity: - properties: - nodeAffinity: - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - 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 - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - 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 - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - type: object - automountServiceAccountToken: - type: boolean - containers: - 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 - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - type: string - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - 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 - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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 - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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: - type: string - type: object - type: array - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - 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 - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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 - 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 - type: object - type: array - workingDir: - type: string - type: object - type: array - 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 - enableServiceLinks: - type: boolean - ephemeralContainers: - 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 - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - type: string - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - 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 - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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 - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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: - type: string - type: object - type: array - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - 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 - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - targetContainerName: - type: string - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - 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 - type: object - type: array - workingDir: - type: string - type: object - type: array - hostAliases: - items: - properties: - hostnames: - items: - type: string - type: array - ip: - type: string - type: object - type: array - hostIPC: - type: boolean - hostNetwork: - type: boolean - hostPID: - type: boolean - hostUsers: - type: boolean - hostname: - type: string - 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 - type: object - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - resourceFieldRef: - properties: - containerName: - type: string - divisor: - type: string - resource: - type: string - type: object - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - type: object - type: object - 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 - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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 - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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: - type: string - type: object - type: array - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - 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 - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - startupProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - path: - type: string - port: - format: int-or-string - type: string - scheme: - type: string - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - format: int-or-string - type: string - 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 - 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 - type: object - type: array - workingDir: - type: string - type: object - type: array - nodeName: - type: string - nodeSelector: - additionalProperties: - type: string - type: object - os: - properties: - name: - type: string - type: object - overhead: - additionalProperties: - type: string - type: object - preemptionPolicy: - type: string - priority: - format: int32 - type: integer - priorityClassName: - type: string - readinessGates: - items: - properties: - conditionType: - type: string - type: object - type: array - resourceClaims: - items: - properties: - name: - type: string - source: - properties: - resourceClaimName: - type: string - resourceClaimTemplateName: - type: string - type: object - type: object - type: array - restartPolicy: - type: string - runtimeClassName: - type: string - schedulerName: - type: string - schedulingGates: - items: - properties: - name: - type: string - type: object - type: array - 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 - type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - sysctls: - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - serviceAccount: - type: string - serviceAccountName: - type: string - setHostnameAsFQDN: - type: boolean - shareProcessNamespace: - type: boolean - subdomain: - type: string - terminationGracePeriodSeconds: - format: int64 - type: integer - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - maxSkew: - format: int32 - type: integer - minDomains: - format: int32 - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - type: object - type: array - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - type: string - kind: - type: string - readOnly: - type: boolean - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - type: string - type: object - user: - type: string - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeID: - type: string - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - type: string - type: object - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - type: string - resource: - type: string - type: object - type: object - type: array - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - type: string - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - wwids: - items: - type: string - type: array - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - type: object - hostPath: - properties: - path: - type: string - type: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - targetPortal: - type: string - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - type: object - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - type: string - resource: - type: string - type: object - type: object - type: array - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - type: object - type: object - type: array - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - type: string - monitors: - items: - type: string - type: array - pool: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - user: - type: string - type: object - scaleIO: - properties: - fsType: - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - sslEnabled: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - type: object - type: object - type: array - type: object - type: object - podSpecChecksum: - description: PodSpecChecksum keep the Pod Spec Checksum (without ignored fields). - type: string - type: object + status: + description: Object with preserved fields for backward compatibility type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v2alpha1: openAPIV3Schema: properties: @@ -6313,8 +3166,7 @@ v2alpha1: type: string group: description: Group define Member Groups. - format: int32 - type: integer + type: string id: type: string overrides: @@ -7073,8 +3925,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7089,8 +3941,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -7118,8 +3970,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7134,8 +3986,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -7175,8 +4027,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7194,8 +4046,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7259,8 +4111,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7278,8 +4130,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7412,8 +4264,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7431,8 +4283,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7614,8 +4466,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7630,8 +4482,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -7659,8 +4511,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7675,8 +4527,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -7716,8 +4568,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7735,8 +4587,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7800,8 +4652,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7819,8 +4671,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7953,8 +4805,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7972,8 +4824,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8161,8 +5013,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8177,8 +5029,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -8206,8 +5058,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8222,8 +5074,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -8263,8 +5115,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8282,8 +5134,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8347,8 +5199,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8366,8 +5218,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8500,8 +5352,8 @@ v2alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8519,8 +5371,8 @@ v2alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -9443,5 +6295,8 @@ v2alpha1: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/database-task.schema.generated.yaml b/pkg/crd/crds/database-task.schema.generated.yaml index 6b8ac02c9..c528ce124 100644 --- a/pkg/crd/crds/database-task.schema.generated.yaml +++ b/pkg/crd/crds/database-task.schema.generated.yaml @@ -9,8 +9,11 @@ v1: type: type: string type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1alpha: openAPIV3Schema: properties: @@ -22,8 +25,11 @@ v1alpha: type: type: string type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v2alpha1: openAPIV3Schema: properties: @@ -35,5 +41,8 @@ v2alpha1: type: type: string type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/ml-extension.schema.generated.yaml b/pkg/crd/crds/ml-extension.schema.generated.yaml index 6f28d97c1..8e5288fcf 100644 --- a/pkg/crd/crds/ml-extension.schema.generated.yaml +++ b/pkg/crd/crds/ml-extension.schema.generated.yaml @@ -466,8 +466,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -482,8 +482,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -511,8 +511,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -527,8 +527,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -568,8 +568,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -587,8 +587,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -734,8 +734,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -753,8 +753,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -899,8 +899,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -918,8 +918,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2116,8 +2116,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2132,8 +2132,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -2161,8 +2161,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2177,8 +2177,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -2218,8 +2218,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2237,8 +2237,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2380,8 +2380,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2399,8 +2399,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2528,8 +2528,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2547,8 +2547,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3739,8 +3739,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3755,8 +3755,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -3784,8 +3784,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3800,8 +3800,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -3841,8 +3841,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -3860,8 +3860,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -4003,8 +4003,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -4022,8 +4022,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -4151,8 +4151,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -4170,8 +4170,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5356,8 +5356,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5372,8 +5372,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -5401,8 +5401,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5417,8 +5417,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -5458,8 +5458,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5477,8 +5477,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5620,8 +5620,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5639,8 +5639,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -5768,8 +5768,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -5787,8 +5787,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -6977,8 +6977,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -6993,8 +6993,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -7022,8 +7022,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7038,8 +7038,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -7079,8 +7079,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7098,8 +7098,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7241,8 +7241,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7260,8 +7260,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -7389,8 +7389,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -7408,8 +7408,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8594,8 +8594,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8610,8 +8610,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -8639,8 +8639,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8655,8 +8655,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -8696,8 +8696,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8715,8 +8715,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -8858,8 +8858,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -8877,8 +8877,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -9006,8 +9006,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -9025,8 +9025,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -10215,8 +10215,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10231,8 +10231,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -10260,8 +10260,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10276,8 +10276,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -10317,8 +10317,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10336,8 +10336,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -10479,8 +10479,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10498,8 +10498,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -10627,8 +10627,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -10646,8 +10646,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -11832,8 +11832,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -11848,8 +11848,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -11877,8 +11877,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -11893,8 +11893,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -11934,8 +11934,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -11953,8 +11953,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -12096,8 +12096,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12115,8 +12115,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -12244,8 +12244,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -12263,8 +12263,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -13022,8 +13022,11 @@ v1alpha1: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1beta1: openAPIV3Schema: properties: @@ -13490,8 +13493,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13506,8 +13509,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -13535,8 +13538,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13551,8 +13554,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -13592,8 +13595,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13611,8 +13614,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -13757,8 +13760,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13776,8 +13779,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -13913,8 +13916,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -13932,8 +13935,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -15128,8 +15131,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15144,8 +15147,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -15173,8 +15176,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15189,8 +15192,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -15230,8 +15233,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15249,8 +15252,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -15392,8 +15395,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15411,8 +15414,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -15540,8 +15543,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -15559,8 +15562,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -16396,8 +16399,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16412,8 +16415,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -16441,8 +16444,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16457,8 +16460,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -16501,8 +16504,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16520,8 +16523,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -16583,8 +16586,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16602,8 +16605,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -16725,8 +16728,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -16744,8 +16747,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -17237,8 +17240,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17253,8 +17256,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -17282,8 +17285,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17298,8 +17301,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -17339,8 +17342,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17358,8 +17361,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -17501,8 +17504,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17520,8 +17523,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -17649,8 +17652,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -17668,8 +17671,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -18853,8 +18856,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18869,8 +18872,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -18898,8 +18901,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18914,8 +18917,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -18955,8 +18958,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -18974,8 +18977,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -19117,8 +19120,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19136,8 +19139,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -19265,8 +19268,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -19284,8 +19287,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -20472,8 +20475,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -20488,8 +20491,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -20517,8 +20520,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -20533,8 +20536,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -20574,8 +20577,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -20593,8 +20596,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -20736,8 +20739,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -20755,8 +20758,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -20884,8 +20887,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -20903,8 +20906,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -22088,8 +22091,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22104,8 +22107,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -22133,8 +22136,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22149,8 +22152,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -22190,8 +22193,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22209,8 +22212,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -22352,8 +22355,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22371,8 +22374,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -22500,8 +22503,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -22519,8 +22522,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -23707,8 +23710,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23723,8 +23726,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -23752,8 +23755,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23768,8 +23771,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -23809,8 +23812,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23828,8 +23831,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -23971,8 +23974,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -23990,8 +23993,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -24119,8 +24122,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -24138,8 +24141,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -25323,8 +25326,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25339,8 +25342,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -25368,8 +25371,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25384,8 +25387,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -25425,8 +25428,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25444,8 +25447,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -25587,8 +25590,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25606,8 +25609,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -25735,8 +25738,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -25754,8 +25757,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -26508,5 +26511,8 @@ v1beta1: type: string type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/ml-job-batch.schema.generated.yaml b/pkg/crd/crds/ml-job-batch.schema.generated.yaml index 1cf4f360d..c3710170e 100644 --- a/pkg/crd/crds/ml-job-batch.schema.generated.yaml +++ b/pkg/crd/crds/ml-job-batch.schema.generated.yaml @@ -605,8 +605,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -621,8 +621,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -650,8 +650,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -666,8 +666,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -707,8 +707,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -726,8 +726,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -791,8 +791,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -810,8 +810,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -944,8 +944,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -963,8 +963,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1146,8 +1146,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1162,8 +1162,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1191,8 +1191,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1207,8 +1207,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1248,8 +1248,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1267,8 +1267,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1332,8 +1332,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1351,8 +1351,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1485,8 +1485,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1504,8 +1504,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1693,8 +1693,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1709,8 +1709,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1738,8 +1738,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1754,8 +1754,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1795,8 +1795,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1814,8 +1814,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1879,8 +1879,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1898,8 +1898,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2032,8 +2032,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2051,8 +2051,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2974,5 +2974,8 @@ v1alpha1: format: int32 type: integer type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/ml-job-cron.schema.generated.yaml b/pkg/crd/crds/ml-job-cron.schema.generated.yaml index 79a8932ef..daf4b5fe8 100644 --- a/pkg/crd/crds/ml-job-cron.schema.generated.yaml +++ b/pkg/crd/crds/ml-job-cron.schema.generated.yaml @@ -690,8 +690,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -706,8 +706,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -735,8 +735,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -751,8 +751,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -792,8 +792,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -811,8 +811,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -876,8 +876,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -895,8 +895,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1029,8 +1029,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1048,8 +1048,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1231,8 +1231,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1247,8 +1247,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1276,8 +1276,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1292,8 +1292,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1333,8 +1333,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1352,8 +1352,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1417,8 +1417,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1436,8 +1436,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1570,8 +1570,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1589,8 +1589,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1778,8 +1778,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1794,8 +1794,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -1823,8 +1823,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1839,8 +1839,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -1880,8 +1880,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1899,8 +1899,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1964,8 +1964,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1983,8 +1983,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2117,8 +2117,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2136,8 +2136,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3073,5 +3073,8 @@ v1alpha1: timeZone: type: string type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/ml-storage.schema.generated.yaml b/pkg/crd/crds/ml-storage.schema.generated.yaml index 0b5d8c349..1a235f2a7 100644 --- a/pkg/crd/crds/ml-storage.schema.generated.yaml +++ b/pkg/crd/crds/ml-storage.schema.generated.yaml @@ -184,8 +184,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -200,8 +200,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -229,8 +229,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -245,8 +245,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -290,8 +290,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -309,8 +309,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -372,8 +372,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -391,8 +391,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -514,8 +514,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -533,8 +533,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -565,8 +565,11 @@ v1alpha1: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1beta1: openAPIV3Schema: properties: @@ -624,5 +627,8 @@ v1beta1: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml b/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml index 4564c8845..e8be88f98 100644 --- a/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml +++ b/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml @@ -108,8 +108,11 @@ v1: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1alpha: openAPIV3Schema: properties: @@ -220,8 +223,11 @@ v1alpha: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v2alpha1: openAPIV3Schema: properties: @@ -314,5 +320,8 @@ v2alpha1: type: object type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/scheduler-profile.schema.generated.yaml b/pkg/crd/crds/scheduler-profile.schema.generated.yaml index bfde5bec1..567504299 100644 --- a/pkg/crd/crds/scheduler-profile.schema.generated.yaml +++ b/pkg/crd/crds/scheduler-profile.schema.generated.yaml @@ -229,8 +229,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -245,8 +245,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -274,8 +274,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -290,8 +290,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -331,8 +331,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -350,8 +350,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -413,8 +413,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -432,8 +432,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -555,8 +555,8 @@ v1alpha1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -574,8 +574,8 @@ v1alpha1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -1747,8 +1747,11 @@ v1alpha1: type: integer type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true v1beta1: openAPIV3Schema: properties: @@ -1977,8 +1980,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -1993,8 +1996,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object preStop: @@ -2022,8 +2025,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2038,8 +2041,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object type: object type: object @@ -2079,8 +2082,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2098,8 +2101,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2161,8 +2164,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2180,8 +2183,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -2303,8 +2306,8 @@ v1beta1: path: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true scheme: type: string type: object @@ -2322,8 +2325,8 @@ v1beta1: host: type: string port: - format: int-or-string type: string + x-kubernetes-int-or-string: true type: object terminationGracePeriodSeconds: format: int64 @@ -3495,5 +3498,8 @@ v1beta1: type: integer type: object type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/crds/storage-localstorage.schema.generated.yaml b/pkg/crd/crds/storage-localstorage.schema.generated.yaml index b905bbfb2..9ce878bfc 100644 --- a/pkg/crd/crds/storage-localstorage.schema.generated.yaml +++ b/pkg/crd/crds/storage-localstorage.schema.generated.yaml @@ -59,5 +59,8 @@ v1alpha: type: object type: array type: object + status: + description: Object with preserved fields for backward compatibility + type: object + x-kubernetes-preserve-unknown-fields: true type: object - x-kubernetes-preserve-unknown-fields: true diff --git a/pkg/crd/definitions.go b/pkg/crd/definitions.go index 325e37597..3aded215f 100644 --- a/pkg/crd/definitions.go +++ b/pkg/crd/definitions.go @@ -28,8 +28,9 @@ import ( ) const ( - Version = "arangodb.com/version" - Schema = "arangodb.com/schema" + Version = "arangodb.com/version" + Schema = "arangodb.com/schema" + PreserveUnknownFields = "arangodb.com/x-preserve-unknown-fields" ) type crdDefinitionGetter func(opts *crds.CRDOptions) crds.Definition