diff --git a/go.mod b/go.mod index 5ad7b69f..751c9026 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,7 @@ require ( k8s.io/klog/v2 v2.120.1 kmodules.xyz/client-go v0.29.14 kmodules.xyz/custom-resources v0.29.1 - kubedb.dev/apimachinery v0.45.2-0.20240529075634-bc0c0bab0034 + kubedb.dev/apimachinery v0.45.2-0.20240530120824-5e6b27ed36e9 sigs.k8s.io/controller-runtime v0.17.4 xorm.io/xorm v1.3.6 ) diff --git a/go.sum b/go.sum index 860ee775..8715c1ef 100644 --- a/go.sum +++ b/go.sum @@ -609,8 +609,8 @@ kmodules.xyz/monitoring-agent-api v0.29.0 h1:gpFl6OZrlMLb/ySMHdREI9EwGtnJ91oZBn9 kmodules.xyz/monitoring-agent-api v0.29.0/go.mod h1:iNbvaMTgVFOI5q2LJtGK91j4Dmjv4ZRiRdasGmWLKQI= kmodules.xyz/offshoot-api v0.29.2 h1:akXmvkNqFz1n9p1STVs9iP7ODYET0S7BhcYCMXEjK4A= kmodules.xyz/offshoot-api v0.29.2/go.mod h1:Wv7Xo8wbvznI+8bhaylRFHFjkt30xRDOUOnqV8kOAxM= -kubedb.dev/apimachinery v0.45.2-0.20240529075634-bc0c0bab0034 h1:L3oGMZP6MscogD2z7LX9NIjuwd4vfAd8BOZ4OguaXg0= -kubedb.dev/apimachinery v0.45.2-0.20240529075634-bc0c0bab0034/go.mod h1:LBoGqbBHFeIRLv1KtkkmVxjK/g9CmQETVpwszFp9Ly0= +kubedb.dev/apimachinery v0.45.2-0.20240530120824-5e6b27ed36e9 h1:uidPG7sU5MT1sgKSgcyhK6H6Slyj+Y1gIqJRavST1UY= +kubedb.dev/apimachinery v0.45.2-0.20240530120824-5e6b27ed36e9/go.mod h1:LBoGqbBHFeIRLv1KtkkmVxjK/g9CmQETVpwszFp9Ly0= kubeops.dev/petset v0.0.5 h1:VVXi39JhjondlbHyZ98z0MLp6VCmiCMinL59K48Y2zA= kubeops.dev/petset v0.0.5/go.mod h1:ijtKT1HlAht2vBEZj5LW7C00XEs3B0d1VdCQgd5V4cA= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go index d6ccede0..71f8f534 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/constants.go @@ -31,7 +31,8 @@ const ( KubeDBOrganization = "kubedb" - LabelRole = kubedb.GroupName + "/role" + LabelRole = kubedb.GroupName + "/role" + LabelPetSet = kubedb.GroupName + "/petset" ReplicationModeDetectorContainerName = "replication-mode-detector" DatabasePodPrimary = "primary" @@ -124,10 +125,13 @@ const ( ElasticsearchMinHeapSize = 128 * 1024 * 1024 // =========================== Memcached Constants ============================ + MemcachedConfigKey = "memcached.conf" // MemcachedConfigKey is going to create for the customize redis configuration MemcachedDatabasePortName = "db" MemcachedPrimaryServicePortName = "primary" MemcachedDatabasePort = 11211 MemcachedShardKey = MemcachedKey + "/shard" + MemcachedContainerName = ResourceSingularMemcached + MemcachedConfigVolumePath = "/etc/memcached/" // =========================== MongoDB Constants ============================ MongoDBDatabasePortName = "db" @@ -339,6 +343,7 @@ const ( DatabasePodLeaf = "Leaf" PetSetTypeAggregator = "aggregator" PetSetTypeLeaf = "leaf" + PetSetTypeStandalone = "standalone" SinglestoreDatabaseHealth = "singlestore_health" SinglestoreTableHealth = "singlestore_health_table" @@ -350,7 +355,7 @@ const ( SinglestoreVolumeNameUserInitScript = "initial-script" SinglestoreVolumeMountPathUserInitScript = "/docker-entrypoint-initdb.d" SinglestoreVolumeNameCustomConfig = "custom-config" - SinglestoreVolumeMountPathCustomConfig = "/config" + SinglestoreVolumeMountPathCustomConfig = "/etc/memsql/conf.d" SinglestoreVolmeNameInitScript = "init-scripts" SinglestoreVolumeMountPathInitScript = "/scripts" SinglestoreVolumeNameData = "data" diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_helpers.go index 0d56d499..73e66f4d 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_helpers.go @@ -30,7 +30,9 @@ import ( "github.com/Masterminds/semver/v3" promapi "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" "gomodules.xyz/pointer" + core "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/resource" meta "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/types" @@ -176,12 +178,44 @@ func (d *Druid) PetSetName(nodeRole DruidNodeRoleType) string { return meta_util.NameWithSuffix(d.OffShootName(), d.DruidNodeRoleString(nodeRole)) } -func (d *Druid) PodLabels(extraLebels ...map[string]string) map[string]string { - return d.offShootLabels(meta_util.OverwriteKeys(d.OffShootSelectors(), extraLebels...), d.Spec.PodTemplate.Labels) +func (d *Druid) PodLabels(nodeType DruidNodeRoleType, extraLabels ...map[string]string) map[string]string { + nodeSpec, dataNodeSpec := d.GetNodeSpec(nodeType) + var labels map[string]string + if nodeSpec != nil { + labels = nodeSpec.PodTemplate.Labels + } else { + labels = dataNodeSpec.PodTemplate.Labels + } + return d.offShootLabels(meta_util.OverwriteKeys(d.OffShootSelectors(), extraLabels...), labels) } -func (d *Druid) PodControllerLabels(extraLabels ...map[string]string) map[string]string { - return d.offShootLabels(meta_util.OverwriteKeys(d.OffShootSelectors(), extraLabels...), d.Spec.PodTemplate.Controller.Labels) +func (d *Druid) PodControllerLabels(nodeType DruidNodeRoleType, extraLabels ...map[string]string) map[string]string { + nodeSpec, dataNodeSpec := d.GetNodeSpec(nodeType) + var labels map[string]string + if nodeSpec != nil { + labels = nodeSpec.PodTemplate.Controller.Labels + } else { + labels = dataNodeSpec.PodTemplate.Controller.Labels + } + return d.offShootLabels(meta_util.OverwriteKeys(d.OffShootSelectors(), extraLabels...), labels) +} + +func (d *Druid) GetNodeSpec(nodeType DruidNodeRoleType) (*DruidNode, *DruidDataNode) { + if nodeType == DruidNodeRoleCoordinators { + return d.Spec.Topology.Coordinators, nil + } else if nodeType == DruidNodeRoleOverlords { + return d.Spec.Topology.Overlords, nil + } else if nodeType == DruidNodeRoleMiddleManagers { + return nil, d.Spec.Topology.MiddleManagers + } else if nodeType == DruidNodeRoleHistoricals { + return nil, d.Spec.Topology.Historicals + } else if nodeType == DruidNodeRoleBrokers { + return d.Spec.Topology.Brokers, nil + } else if nodeType == DruidNodeRoleRouters { + return d.Spec.Topology.Routers, nil + } + + panic("Node role name does not match any known types") } func (d *Druid) ServiceAccountName() string { @@ -339,10 +373,6 @@ func (d *Druid) SetDefaults() { d.Spec.TerminationPolicy = TerminationPolicyDelete } - if d.Spec.StorageType == "" { - d.Spec.StorageType = StorageTypeDurable - } - if d.Spec.DisableSecurity == nil { d.Spec.DisableSecurity = pointer.BoolP(false) } @@ -371,6 +401,9 @@ func (d *Druid) SetDefaults() { } if d.Spec.Topology != nil { + if d.Spec.Topology.Coordinators == nil { + d.Spec.Topology.Coordinators = &DruidNode{} + } if d.Spec.Topology.Coordinators != nil { if d.Spec.Topology.Coordinators.Replicas == nil { d.Spec.Topology.Coordinators.Replicas = pointer.Int32P(1) @@ -383,6 +416,7 @@ func (d *Druid) SetDefaults() { d.setDefaultContainerResourceLimits(&d.Spec.Topology.Coordinators.PodTemplate, DruidNodeRoleCoordinators) } } + if d.Spec.Topology.Overlords != nil { if d.Spec.Topology.Overlords.Replicas == nil { d.Spec.Topology.Overlords.Replicas = pointer.Int32P(1) @@ -395,10 +429,20 @@ func (d *Druid) SetDefaults() { d.setDefaultContainerResourceLimits(&d.Spec.Topology.Overlords.PodTemplate, DruidNodeRoleOverlords) } } + + if d.Spec.Topology.MiddleManagers == nil { + d.Spec.Topology.MiddleManagers = &DruidDataNode{} + } if d.Spec.Topology.MiddleManagers != nil { if d.Spec.Topology.MiddleManagers.Replicas == nil { d.Spec.Topology.MiddleManagers.Replicas = pointer.Int32P(1) } + if d.Spec.Topology.MiddleManagers.StorageType == "" { + d.Spec.Topology.MiddleManagers.StorageType = StorageTypeDurable + } + if d.Spec.Topology.MiddleManagers.Storage == nil && d.Spec.Topology.MiddleManagers.StorageType == StorageTypeDurable { + d.Spec.Topology.MiddleManagers.Storage = d.getDefaultPVC() + } if version.Major() > 25 { if d.Spec.Topology.MiddleManagers.PodTemplate.Spec.SecurityContext == nil { d.Spec.Topology.MiddleManagers.PodTemplate.Spec.SecurityContext = &v1.PodSecurityContext{FSGroup: druidVersion.Spec.SecurityContext.RunAsUser} @@ -407,10 +451,20 @@ func (d *Druid) SetDefaults() { d.setDefaultContainerResourceLimits(&d.Spec.Topology.MiddleManagers.PodTemplate, DruidNodeRoleMiddleManagers) } } + + if d.Spec.Topology.Historicals == nil { + d.Spec.Topology.Historicals = &DruidDataNode{} + } if d.Spec.Topology.Historicals != nil { if d.Spec.Topology.Historicals.Replicas == nil { d.Spec.Topology.Historicals.Replicas = pointer.Int32P(1) } + if d.Spec.Topology.Historicals.StorageType == "" { + d.Spec.Topology.Historicals.StorageType = StorageTypeDurable + } + if d.Spec.Topology.Historicals.Storage == nil && d.Spec.Topology.Historicals.StorageType == StorageTypeDurable { + d.Spec.Topology.Historicals.Storage = d.getDefaultPVC() + } if version.Major() > 25 { if d.Spec.Topology.Historicals.PodTemplate.Spec.SecurityContext == nil { d.Spec.Topology.Historicals.PodTemplate.Spec.SecurityContext = &v1.PodSecurityContext{FSGroup: druidVersion.Spec.SecurityContext.RunAsUser} @@ -419,6 +473,10 @@ func (d *Druid) SetDefaults() { d.setDefaultContainerResourceLimits(&d.Spec.Topology.Historicals.PodTemplate, DruidNodeRoleHistoricals) } } + + if d.Spec.Topology.Brokers == nil { + d.Spec.Topology.Brokers = &DruidNode{} + } if d.Spec.Topology.Brokers != nil { if d.Spec.Topology.Brokers.Replicas == nil { d.Spec.Topology.Brokers.Replicas = pointer.Int32P(1) @@ -432,6 +490,7 @@ func (d *Druid) SetDefaults() { } } + if d.Spec.Topology.Routers != nil { if d.Spec.Topology.Routers.Replicas == nil { d.Spec.Topology.Routers.Replicas = pointer.Int32P(1) @@ -461,6 +520,16 @@ func (d *Druid) SetDefaults() { } } +func (d *Druid) getDefaultPVC() *core.PersistentVolumeClaimSpec { + return &core.PersistentVolumeClaimSpec{ + Resources: core.VolumeResourceRequirements{ + Requests: core.ResourceList{ + core.ResourceStorage: resource.MustParse("1Gi"), + }, + }, + } +} + func (d *Druid) setDefaultContainerSecurityContext(druidVersion *catalog.DruidVersion, podTemplate *ofst.PodTemplateSpec) { container := coreutil.GetContainerByName(podTemplate.Spec.Containers, DruidContainerName) if container == nil { diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_types.go index 51a6335f..1ec93318 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_types.go @@ -64,9 +64,6 @@ type DruidSpec struct { // +optional Topology *DruidClusterTopology `json:"topology,omitempty"` - // StorageType can be durable (default) or ephemeral. - StorageType StorageType `json:"storageType,omitempty"` - // disable security. It disables authentication security of user. // If unset, default is false // +optional @@ -95,10 +92,6 @@ type DruidSpec struct { // +optional ZookeeperRef *ZookeeperRef `json:"zookeeperRef,omitempty"` - // PodTemplate is an optional configuration - // +optional - PodTemplate ofst.PodTemplateSpec `json:"podTemplate,omitempty"` - // ServiceTemplates is an optional configuration for services used to expose database // +optional ServiceTemplates []NamedServiceTemplateSpec `json:"serviceTemplates,omitempty"` @@ -122,21 +115,22 @@ type DruidSpec struct { } type DruidClusterTopology struct { - Coordinators *DruidNode `json:"coordinators"` + Coordinators *DruidNode `json:"coordinators,omitempty"` // +optional Overlords *DruidNode `json:"overlords,omitempty"` - MiddleManagers *DruidNode `json:"middleManagers"` + MiddleManagers *DruidDataNode `json:"middleManagers,omitempty"` - Historicals *DruidNode `json:"historicals"` + Historicals *DruidDataNode `json:"historicals,omitempty"` - Brokers *DruidNode `json:"brokers"` + Brokers *DruidNode `json:"brokers,omitempty"` // +optional Routers *DruidNode `json:"routers,omitempty"` } type DruidNode struct { - // Replicas represents number of replica for the specific type of node + // Replicas represents number of replicas for the specific type of node + // +kubebuilder:default=1 // +optional Replicas *int32 `json:"replicas,omitempty"` @@ -144,10 +138,6 @@ type DruidNode struct { // +optional Suffix string `json:"suffix,omitempty"` - // Storage to specify how storage shall be used. - // +optional - Storage *core.PersistentVolumeClaimSpec `json:"storage,omitempty"` - // PodTemplate is an optional configuration for pods used to expose database // +optional PodTemplate ofst.PodTemplateSpec `json:"podTemplate,omitempty"` @@ -168,6 +158,21 @@ type DruidNode struct { PodPlacementPolicy *core.LocalObjectReference `json:"podPlacementPolicy,omitempty"` } +type DruidDataNode struct { + // DruidDataNode has all the characteristics of DruidNode + DruidNode `json:",inline"` + + // StorageType specifies if the storage + // of this node is durable (default) or ephemeral. + StorageType StorageType `json:"storageType,omitempty"` + + // Storage to specify how storage shall be used. + Storage *core.PersistentVolumeClaimSpec `json:"storage,omitempty"` + + // EphemeralStorage spec to specify the configuration of ephemeral storage type. + EphemeralStorage *core.EmptyDirVolumeSource `json:"ephemeralStorage,omitempty"` +} + type MetadataStorage struct { // Name of the appbinding of zookeeper // +optional diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_webhook.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_webhook.go index 5066e638..5c6858e7 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_webhook.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/druid_webhook.go @@ -19,6 +19,7 @@ package v1alpha2 import ( "context" "errors" + "fmt" catalog "kubedb.dev/apimachinery/apis/catalog/v1alpha1" @@ -112,18 +113,6 @@ func (d *Druid) validateCreateOrUpdate() field.ErrorList { } } - if d.Spec.StorageType == "" { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("storageType"), - d.Name, - "StorageType can not be empty")) - } else { - if d.Spec.StorageType != StorageTypeDurable && d.Spec.StorageType != StorageTypeEphemeral { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("storageType"), - d.Name, - "StorageType should be either durable or ephemeral")) - } - } - if d.Spec.DeepStorage == nil { allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("deepStorage"), d.Name, @@ -153,152 +142,109 @@ func (d *Druid) validateCreateOrUpdate() field.ErrorList { d.Name, "spec.topology can not be empty")) } else { + // Required Nodes if d.Spec.Topology.Coordinators == nil { allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("coordinators"), d.Name, "spec.topology.coordinators can not be empty")) } else { + d.validateDruidNode(DruidNodeRoleCoordinators, &allErr) + } - if *d.Spec.Topology.Coordinators.Replicas <= 0 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("coordinators").Child("replicas"), - d.Name, - "number of replicas can not be 0 or less")) - } + if d.Spec.Topology.Brokers == nil { + allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("brokers"), + d.Name, + "spec.topology.brokers can not be empty")) + } else { + d.validateDruidNode(DruidNodeRoleBrokers, &allErr) + } - err := druidValidateVolumes(&d.Spec.Topology.Coordinators.PodTemplate, DruidNodeRoleCoordinators) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("coordinators").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - err = druidValidateVolumesMountPaths(&d.Spec.Topology.Coordinators.PodTemplate, DruidNodeRoleCoordinators) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("coordinators").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } + // Optional Nodes + if d.Spec.Topology.Overlords != nil { + d.validateDruidNode(DruidNodeRoleOverlords, &allErr) + } + if d.Spec.Topology.Routers != nil { + d.validateDruidNode(DruidNodeRoleRouters, &allErr) } + // Data Nodes if d.Spec.Topology.MiddleManagers == nil { allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("middleManagers"), d.Name, "spec.topology.middleManagers can not be empty")) } else { - if *d.Spec.Topology.MiddleManagers.Replicas <= 0 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("middleManagers").Child("replicas"), - d.Name, - "number of replicas can not be 0 or less")) - } - - err := druidValidateVolumes(&d.Spec.Topology.MiddleManagers.PodTemplate, DruidNodeRoleMiddleManagers) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("middleManagers").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - err = druidValidateVolumesMountPaths(&d.Spec.Topology.MiddleManagers.PodTemplate, DruidNodeRoleMiddleManagers) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("middleManagers").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } + d.validateDruidDataNode(DruidNodeRoleMiddleManagers, &allErr) } - if d.Spec.Topology.Historicals == nil { allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("historicals"), d.Name, "spec.topology.historicals can not be empty")) } else { - if *d.Spec.Topology.Historicals.Replicas <= 0 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("historicals").Child("replicas"), - d.Name, - "number of replicas can not be 0 or less")) - } - - err := druidValidateVolumes(&d.Spec.Topology.Historicals.PodTemplate, DruidNodeRoleHistoricals) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("historicals").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - err = druidValidateVolumesMountPaths(&d.Spec.Topology.Historicals.PodTemplate, DruidNodeRoleHistoricals) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("historicals").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } + d.validateDruidDataNode(DruidNodeRoleHistoricals, &allErr) } + } + if len(allErr) == 0 { + return nil + } + return allErr +} - if d.Spec.Topology.Brokers == nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("brokers").Child("replicas"), - d.Name, - "spec.topology.brokers.replicas can not be empty")) - } else { - if *d.Spec.Topology.Brokers.Replicas <= 0 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("brokers").Child("replicas"), - d.Name, - "number of replicas can not be 0 or less")) - } +func (d *Druid) validateDruidNode(nodeType DruidNodeRoleType, allErr *field.ErrorList) { + node, dataNode := d.GetNodeSpec(nodeType) + if dataNode != nil { + node = &dataNode.DruidNode + } - err := druidValidateVolumes(&d.Spec.Topology.Brokers.PodTemplate, DruidNodeRoleBrokers) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("brokers").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - err = druidValidateVolumesMountPaths(&d.Spec.Topology.Brokers.PodTemplate, DruidNodeRoleBrokers) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("brokers").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - } + if *node.Replicas <= 0 { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("replicas"), + d.Name, + "number of replicas can not be 0 or less")) + } - if d.Spec.Topology.Overlords != nil { - if *d.Spec.Topology.Overlords.Replicas <= 0 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("overlords").Child("replicas"), - d.Name, - "number of replicas can not be 0 or less")) - } + err := druidValidateVolumes(&node.PodTemplate, nodeType) + if err != nil { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("podTemplate").Child("spec").Child("volumes"), + d.Name, + err.Error())) + } + err = druidValidateVolumesMountPaths(&node.PodTemplate, nodeType) + if err != nil { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("podTemplate").Child("spec").Child("volumes"), + d.Name, + err.Error())) + } +} - err := druidValidateVolumes(&d.Spec.Topology.Overlords.PodTemplate, DruidNodeRoleOverlords) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("overlords").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - err = druidValidateVolumesMountPaths(&d.Spec.Topology.Overlords.PodTemplate, DruidNodeRoleOverlords) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("overlords").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - } - if d.Spec.Topology.Routers != nil { - if *d.Spec.Topology.Routers.Replicas <= 0 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("routers").Child("replicas"), - d.Name, - "number of replicas can not be 0 or less")) - } +func (d *Druid) validateDruidDataNode(nodeType DruidNodeRoleType, allErr *field.ErrorList) { + d.validateDruidNode(nodeType, allErr) - err := druidValidateVolumes(&d.Spec.Topology.Routers.PodTemplate, DruidNodeRoleRouters) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("routers").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } - err = druidValidateVolumesMountPaths(&d.Spec.Topology.Routers.PodTemplate, DruidNodeRoleRouters) - if err != nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("topology").Child("routers").Child("podTemplate").Child("spec").Child("volumes"), - d.Name, - err.Error())) - } + _, dataNode := d.GetNodeSpec(nodeType) + if dataNode.StorageType == "" { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("storageType"), + d.Name, + fmt.Sprintf("spec.topology.%s.storageType can not be empty", string(nodeType)))) + } else { + if dataNode.StorageType != StorageTypeDurable && dataNode.StorageType != StorageTypeEphemeral { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("storageType"), + d.Name, + fmt.Sprintf("spec.topology.%s.storageType should either be durable or ephemeral", string(nodeType)))) } } - if len(allErr) == 0 { - return nil + if dataNode.StorageType == StorageTypeEphemeral && dataNode.Storage != nil { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("storage"), + d.Name, + fmt.Sprintf("spec.topology.%s.storage can not be set when d.spec.topology.%s.storageType is Ephemeral", string(nodeType), string(nodeType)))) + } + if dataNode.StorageType == StorageTypeDurable && dataNode.EphemeralStorage != nil { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("ephemeralStorage"), + d.Name, + fmt.Sprintf("spec.topology.%s.ephemeralStorage can not be set when d.spec.topology.%s.storageType is Durable", string(nodeType), string(nodeType)))) + } + if dataNode.StorageType == StorageTypeDurable && dataNode.Storage == nil { + *allErr = append(*allErr, field.Invalid(field.NewPath("spec").Child("topology").Child(string(nodeType)).Child("storage"), + d.Name, + fmt.Sprintf("spec.topology.%s.storage needs to be set when spec.topology.%s.storageType is Durable", string(nodeType), string(nodeType)))) } - return allErr } func druidValidateVersion(d *Druid) error { diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/memcached_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/memcached_helpers.go index 584b57db..832b688c 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/memcached_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/memcached_helpers.go @@ -111,6 +111,14 @@ func (m Memcached) GoverningServiceName() string { return meta_util.NameWithSuffix(m.ServiceName(), "pods") } +func (m Memcached) ConfigSecretName() string { + return meta_util.NameWithSuffix(m.OffshootName(), "config") +} + +func (m Memcached) CustomConfigSecretName() string { + return meta_util.NameWithSuffix(m.OffshootName(), "custom-config") +} + type memcachedApp struct { *Memcached } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_types.go index 36808399..6829f217 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_types.go @@ -38,7 +38,7 @@ const ( MSSQLServerModeRemoteReplica MSSQLServerMode = "RemoteReplica" ) -// +kubebuilder:validation:Enum=server;client;metrics-exporter +// +kubebuilder:validation:Enum=server;client;endpoint type MSSQLServerCertificateAlias string const ( diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_webhook.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_webhook.go index 4ed2b614..cf225afa 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_webhook.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/mssqlserver_webhook.go @@ -146,15 +146,14 @@ func (m *MSSQLServer) ValidateCreateOrUpdate() field.ErrorList { m.Name, "spec.internalAuth.endpointCert.certificates' can have only one certificate")) } } + } - if m.Spec.TLS == nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("tls"), - m.Name, "spec.tls, spec.tls.issuerRef is missing")) - } else if m.Spec.TLS.IssuerRef == nil { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("tls").Child("issuerRef"), - m.Name, "spec.tls.issuerRef' is missing")) - } - + if m.Spec.TLS == nil { + allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("tls"), + m.Name, "spec.tls is missing")) + } else if m.Spec.TLS.IssuerRef == nil { + allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("tls").Child("issuerRef"), + m.Name, "spec.tls.issuerRef' is missing")) } err = mssqlValidateVolumes(m.Spec.PodTemplate) @@ -198,6 +197,7 @@ var mssqlReservedVolumes = []string{ MSSQLVolumeNameCerts, MSSQLVolumeNameTLS, MSSQLVolumeNameSecurityCACertificates, + MSSQLVolumeNameCACerts, } var mssqlReservedVolumesMountPaths = []string{ @@ -207,6 +207,7 @@ var mssqlReservedVolumesMountPaths = []string{ MSSQLVolumeMountPathCerts, MSSQLVolumeMountPathTLS, MSSQLVolumeMountPathSecurityCACertificates, + MSSQLVolumeMountPathCACerts, } func mssqlValidateVersion(m *MSSQLServer) error { diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go index 8a4dfb9e..45a22bff 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/openapi_generated.go @@ -470,6 +470,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.Druid": schema_apimachinery_apis_kubedb_v1alpha2_Druid(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidApp": schema_apimachinery_apis_kubedb_v1alpha2_DruidApp(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidClusterTopology": schema_apimachinery_apis_kubedb_v1alpha2_DruidClusterTopology(ref), + "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidDataNode": schema_apimachinery_apis_kubedb_v1alpha2_DruidDataNode(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidList": schema_apimachinery_apis_kubedb_v1alpha2_DruidList(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidNode": schema_apimachinery_apis_kubedb_v1alpha2_DruidNode(ref), "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidSpec": schema_apimachinery_apis_kubedb_v1alpha2_DruidSpec(ref), @@ -23358,12 +23359,12 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidClusterTopology(ref common.Re }, "middleManagers": { SchemaProps: spec.SchemaProps{ - Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidNode"), + Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidDataNode"), }, }, "historicals": { SchemaProps: spec.SchemaProps{ - Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidNode"), + Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidDataNode"), }, }, "brokers": { @@ -23377,11 +23378,105 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidClusterTopology(ref common.Re }, }, }, - Required: []string{"coordinators", "middleManagers", "historicals", "brokers"}, }, }, Dependencies: []string{ - "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidNode"}, + "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidDataNode", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidNode"}, + } +} + +func schema_apimachinery_apis_kubedb_v1alpha2_DruidDataNode(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "replicas": { + SchemaProps: spec.SchemaProps{ + Description: "Replicas represents number of replicas for the specific type of node", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "suffix": { + SchemaProps: spec.SchemaProps{ + Description: "Suffix to append with node name", + Type: []string{"string"}, + Format: "", + }, + }, + "podTemplate": { + SchemaProps: spec.SchemaProps{ + Description: "PodTemplate is an optional configuration for pods used to expose database", + Default: map[string]interface{}{}, + Ref: ref("kmodules.xyz/offshoot-api/api/v2.PodTemplateSpec"), + }, + }, + "nodeSelector": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-map-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, the pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "podPlacementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "PodPlacementPolicy is the reference of the podPlacementPolicy", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, + "storageType": { + SchemaProps: spec.SchemaProps{ + Description: "StorageType specifies if the storage of this node is durable (default) or ephemeral.", + Type: []string{"string"}, + Format: "", + }, + }, + "storage": { + SchemaProps: spec.SchemaProps{ + Description: "Storage to specify how storage shall be used.", + Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"), + }, + }, + "ephemeralStorage": { + SchemaProps: spec.SchemaProps{ + Description: "EphemeralStorage spec to specify the configuration of ephemeral storage type.", + Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.Toleration", "kmodules.xyz/offshoot-api/api/v2.PodTemplateSpec"}, } } @@ -23442,7 +23537,7 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidNode(ref common.ReferenceCall Properties: map[string]spec.Schema{ "replicas": { SchemaProps: spec.SchemaProps{ - Description: "Replicas represents number of replica for the specific type of node", + Description: "Replicas represents number of replicas for the specific type of node", Type: []string{"integer"}, Format: "int32", }, @@ -23454,12 +23549,6 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidNode(ref common.ReferenceCall Format: "", }, }, - "storage": { - SchemaProps: spec.SchemaProps{ - Description: "Storage to specify how storage shall be used.", - Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"), - }, - }, "podTemplate": { SchemaProps: spec.SchemaProps{ Description: "PodTemplate is an optional configuration for pods used to expose database", @@ -23512,7 +23601,7 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidNode(ref common.ReferenceCall }, }, Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.Toleration", "kmodules.xyz/offshoot-api/api/v2.PodTemplateSpec"}, + "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.Toleration", "kmodules.xyz/offshoot-api/api/v2.PodTemplateSpec"}, } } @@ -23537,13 +23626,6 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidSpec(ref common.ReferenceCall Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidClusterTopology"), }, }, - "storageType": { - SchemaProps: spec.SchemaProps{ - Description: "StorageType can be durable (default) or ephemeral.", - Type: []string{"string"}, - Format: "", - }, - }, "disableSecurity": { SchemaProps: spec.SchemaProps{ Description: "disable security. It disables authentication security of user. If unset, default is false", @@ -23581,13 +23663,6 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidSpec(ref common.ReferenceCall Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.ZookeeperRef"), }, }, - "podTemplate": { - SchemaProps: spec.SchemaProps{ - Description: "PodTemplate is an optional configuration", - Default: map[string]interface{}{}, - Ref: ref("kmodules.xyz/offshoot-api/api/v2.PodTemplateSpec"), - }, - }, "serviceTemplates": { SchemaProps: spec.SchemaProps{ Description: "ServiceTemplates is an optional configuration for services used to expose database", @@ -23634,7 +23709,7 @@ func schema_apimachinery_apis_kubedb_v1alpha2_DruidSpec(ref common.ReferenceCall }, }, Dependencies: []string{ - "k8s.io/api/core/v1.LocalObjectReference", "kmodules.xyz/client-go/api/v1.HealthCheckSpec", "kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec", "kmodules.xyz/offshoot-api/api/v2.PodTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DeepStorageSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidClusterTopology", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MetadataStorage", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.NamedServiceTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.ZookeeperRef"}, + "k8s.io/api/core/v1.LocalObjectReference", "kmodules.xyz/client-go/api/v1.HealthCheckSpec", "kmodules.xyz/monitoring-agent-api/api/v1.AgentSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DeepStorageSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.DruidClusterTopology", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.MetadataStorage", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.NamedServiceTemplateSpec", "kubedb.dev/apimachinery/apis/kubedb/v1alpha2.ZookeeperRef"}, } } @@ -28584,13 +28659,6 @@ func schema_apimachinery_apis_kubedb_v1alpha2_PgBouncerStatus(ref common.Referen Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.Gateway"), }, }, - "resourceVersionOfBackendSecret": { - SchemaProps: spec.SchemaProps{ - Description: "It is to decide if the Auth_file needs to get updated by comparing with the Resource Version of the Backend Secret", - Type: []string{"string"}, - Format: "", - }, - }, }, }, }, @@ -31156,6 +31224,12 @@ func schema_apimachinery_apis_kubedb_v1alpha2_SinglestoreNode(ref common.Referen Format: "", }, }, + "configSecret": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigSecret is an optional field to provide custom configuration file for database (i.e config.properties). If specified, this file will be used as configuration file otherwise default configuration file will be used.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, "storage": { SchemaProps: spec.SchemaProps{ Description: "Storage to specify how storage shall be used.", @@ -31196,12 +31270,6 @@ func schema_apimachinery_apis_kubedb_v1alpha2_SinglestoreSpec(ref common.Referen Format: "", }, }, - "replicas": { - SchemaProps: spec.SchemaProps{ - Type: []string{"integer"}, - Format: "int32", - }, - }, "topology": { SchemaProps: spec.SchemaProps{ Description: "Singlestore topology for node specification", @@ -31221,6 +31289,12 @@ func schema_apimachinery_apis_kubedb_v1alpha2_SinglestoreSpec(ref common.Referen Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"), }, }, + "configSecret": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigSecret is an optional field to provide custom configuration file for database (i.e config.properties). If specified, this file will be used as configuration file otherwise default configuration file will be used.", + Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), + }, + }, "init": { SchemaProps: spec.SchemaProps{ Description: "Init is used to initialize database", @@ -31239,12 +31313,6 @@ func schema_apimachinery_apis_kubedb_v1alpha2_SinglestoreSpec(ref common.Referen Ref: ref("kubedb.dev/apimachinery/apis/kubedb/v1alpha2.SecretReference"), }, }, - "configSecret": { - SchemaProps: spec.SchemaProps{ - Description: "ConfigSecret is an optional field to provide custom configuration file for database (i.e config.properties). If specified, this file will be used as configuration file otherwise default configuration file will be used.", - Ref: ref("k8s.io/api/core/v1.LocalObjectReference"), - }, - }, "podTemplate": { SchemaProps: spec.SchemaProps{ Description: "PodTemplate is an optional configuration for pods used to expose database", diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go index a9e4830f..4723986f 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/pgbouncer_types.go @@ -210,9 +210,6 @@ type PgBouncerStatus struct { Conditions []kmapi.Condition `json:"conditions,omitempty"` // +optional Gateway *Gateway `json:"gateway,omitempty"` - // It is to decide if the Auth_file needs to get updated by comparing with the Resource Version of the Backend Secret - // +optional - ResourceVersionOfBackendSecret string `json:"resourceVersionOfBackendSecret,omitempty" protobuf:"bytes,6,opt,name=resourceVersionOfBackendSecret"` } // +kubebuilder:validation:Enum=disable;allow;prefer;require;verify-ca;verify-full diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_helpers.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_helpers.go index 1ab309d8..9ada50af 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_helpers.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_helpers.go @@ -234,13 +234,16 @@ func (s *Singlestore) LeafPetSet() string { return metautil.NameWithSuffix(ps, PetSetTypeLeaf) } -func (s *Singlestore) PodLabels(extraLabels ...map[string]string) map[string]string { - return s.offshootLabels(metautil.OverwriteKeys(s.OffshootSelectors(), extraLabels...), s.Spec.PodTemplate.Labels) +func (s *Singlestore) PodLabels(podTemplate *ofst.PodTemplateSpec, extraLabels ...map[string]string) map[string]string { + if podTemplate != nil && podTemplate.Labels != nil { + return s.offshootLabels(metautil.OverwriteKeys(s.OffshootSelectors(), extraLabels...), podTemplate.Labels) + } + return s.offshootLabels(metautil.OverwriteKeys(s.OffshootSelectors(), extraLabels...), nil) } func (s *Singlestore) PodLabel(podTemplate *ofst.PodTemplateSpec) map[string]string { if podTemplate != nil && podTemplate.Labels != nil { - return s.offshootLabels(s.OffshootSelectors(), s.Spec.PodTemplate.Labels) + return s.offshootLabels(s.OffshootSelectors(), podTemplate.Labels) } return s.offshootLabels(s.OffshootSelectors(), nil) } @@ -257,8 +260,11 @@ func (s *Singlestore) ServiceAccountName() string { return s.OffshootName() } -func (s *Singlestore) PodControllerLabels(extraLabels ...map[string]string) map[string]string { - return s.offshootLabels(metautil.OverwriteKeys(s.OffshootSelectors(), extraLabels...), s.Spec.PodTemplate.Controller.Labels) +func (s *Singlestore) PodControllerLabels(podTemplate *ofst.PodTemplateSpec, extraLabels ...map[string]string) map[string]string { + if podTemplate != nil && podTemplate.Controller.Labels != nil { + return s.offshootLabels(metautil.OverwriteKeys(s.OffshootSelectors(), extraLabels...), podTemplate.Controller.Labels) + } + return s.offshootLabels(metautil.OverwriteKeys(s.OffshootSelectors(), extraLabels...), nil) } func (s *Singlestore) PodControllerLabel(podTemplate *ofst.PodTemplateSpec) map[string]string { @@ -324,9 +330,6 @@ func (s *Singlestore) SetDefaults() { } if s.Spec.Topology == nil { - if s.Spec.Replicas == nil { - s.Spec.Replicas = pointer.Int32P(1) - } if s.Spec.PodTemplate == nil { s.Spec.PodTemplate = &ofst.PodTemplateSpec{} } diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_types.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_types.go index 651cb210..e5954482 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_types.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_types.go @@ -58,9 +58,6 @@ type SinglestoreSpec struct { // +optional Version string `json:"version"` - // +optional - Replicas *int32 `json:"replicas,omitempty"` - // Singlestore topology for node specification // +optional Topology *SinglestoreTopology `json:"topology,omitempty"` @@ -71,6 +68,11 @@ type SinglestoreSpec struct { // Storage to specify how storage shall be used. Storage *core.PersistentVolumeClaimSpec `json:"storage,omitempty"` + // ConfigSecret is an optional field to provide custom configuration file for database (i.e config.properties). + // If specified, this file will be used as configuration file otherwise default configuration file will be used. + // +optional + ConfigSecret *core.LocalObjectReference `json:"configSecret,omitempty"` + // Init is used to initialize database // +optional Init *InitSpec `json:"init,omitempty"` @@ -82,11 +84,6 @@ type SinglestoreSpec struct { // +optional AuthSecret *SecretReference `json:"authSecret,omitempty"` - // ConfigSecret is an optional field to provide custom configuration file for database (i.e config.properties). - // If specified, this file will be used as configuration file otherwise default configuration file will be used. - // +optional - ConfigSecret *core.LocalObjectReference `json:"configSecret,omitempty"` - // PodTemplate is an optional configuration for pods used to expose database // +optional PodTemplate *ofst.PodTemplateSpec `json:"podTemplate,omitempty"` @@ -137,6 +134,11 @@ type SinglestoreNode struct { // +optional Suffix string `json:"suffix,omitempty"` + // ConfigSecret is an optional field to provide custom configuration file for database (i.e config.properties). + // If specified, this file will be used as configuration file otherwise default configuration file will be used. + // +optional + ConfigSecret *core.LocalObjectReference `json:"configSecret,omitempty"` + // Storage to specify how storage shall be used. // +optional Storage *core.PersistentVolumeClaimSpec `json:"storage,omitempty"` diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_webhook.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_webhook.go index f2171cb0..ef1e77b8 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_webhook.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/singlestore_webhook.go @@ -64,15 +64,7 @@ func (s *Singlestore) ValidateCreate() (admission.Warnings, error) { func (s *Singlestore) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { singlestorelog.Info("validate update", "name", s.Name) - oldConnect := old.(*Singlestore) allErr := s.ValidateCreateOrUpdate() - - if s.Spec.Topology == nil && *oldConnect.Spec.Replicas == 1 && *s.Spec.Replicas > 1 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("replicas"), - s.Name, - "Cannot scale up from 1 to more than 1 in standalone mode")) - } - if len(allErr) == 0 { return nil, nil } @@ -111,11 +103,6 @@ func (s *Singlestore) ValidateCreateOrUpdate() field.ErrorList { } if s.Spec.Topology == nil { - if *s.Spec.Replicas != 1 { - allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("replicas"), - s.Name, - "number of replicas for standalone must be one ")) - } err := sdbValidateVolumes(s.Spec.PodTemplate) if err != nil { allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("podTemplate").Child("spec").Child("volumes"), diff --git a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go index c0e52d8c..0f42fc2a 100644 --- a/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go +++ b/vendor/kubedb.dev/apimachinery/apis/kubedb/v1alpha2/zz_generated.deepcopy.go @@ -382,12 +382,12 @@ func (in *DruidClusterTopology) DeepCopyInto(out *DruidClusterTopology) { } if in.MiddleManagers != nil { in, out := &in.MiddleManagers, &out.MiddleManagers - *out = new(DruidNode) + *out = new(DruidDataNode) (*in).DeepCopyInto(*out) } if in.Historicals != nil { in, out := &in.Historicals, &out.Historicals - *out = new(DruidNode) + *out = new(DruidDataNode) (*in).DeepCopyInto(*out) } if in.Brokers != nil { @@ -413,6 +413,33 @@ func (in *DruidClusterTopology) DeepCopy() *DruidClusterTopology { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DruidDataNode) DeepCopyInto(out *DruidDataNode) { + *out = *in + in.DruidNode.DeepCopyInto(&out.DruidNode) + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = new(corev1.PersistentVolumeClaimSpec) + (*in).DeepCopyInto(*out) + } + if in.EphemeralStorage != nil { + in, out := &in.EphemeralStorage, &out.EphemeralStorage + *out = new(corev1.EmptyDirVolumeSource) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DruidDataNode. +func (in *DruidDataNode) DeepCopy() *DruidDataNode { + if in == nil { + return nil + } + out := new(DruidDataNode) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DruidList) DeepCopyInto(out *DruidList) { *out = *in @@ -454,11 +481,6 @@ func (in *DruidNode) DeepCopyInto(out *DruidNode) { *out = new(int32) **out = **in } - if in.Storage != nil { - in, out := &in.Storage, &out.Storage - *out = new(corev1.PersistentVolumeClaimSpec) - (*in).DeepCopyInto(*out) - } in.PodTemplate.DeepCopyInto(&out.PodTemplate) if in.NodeSelector != nil { in, out := &in.NodeSelector, &out.NodeSelector @@ -530,7 +552,6 @@ func (in *DruidSpec) DeepCopyInto(out *DruidSpec) { *out = new(ZookeeperRef) (*in).DeepCopyInto(*out) } - in.PodTemplate.DeepCopyInto(&out.PodTemplate) if in.ServiceTemplates != nil { in, out := &in.ServiceTemplates, &out.ServiceTemplates *out = make([]NamedServiceTemplateSpec, len(*in)) @@ -4904,6 +4925,11 @@ func (in *SinglestoreNode) DeepCopyInto(out *SinglestoreNode) { *out = new(int32) **out = **in } + if in.ConfigSecret != nil { + in, out := &in.ConfigSecret, &out.ConfigSecret + *out = new(corev1.LocalObjectReference) + **out = **in + } if in.Storage != nil { in, out := &in.Storage, &out.Storage *out = new(corev1.PersistentVolumeClaimSpec) @@ -4935,11 +4961,6 @@ func (in *SinglestoreNode) DeepCopy() *SinglestoreNode { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *SinglestoreSpec) DeepCopyInto(out *SinglestoreSpec) { *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = new(int32) - **out = **in - } if in.Topology != nil { in, out := &in.Topology, &out.Topology *out = new(SinglestoreTopology) @@ -4950,6 +4971,11 @@ func (in *SinglestoreSpec) DeepCopyInto(out *SinglestoreSpec) { *out = new(corev1.PersistentVolumeClaimSpec) (*in).DeepCopyInto(*out) } + if in.ConfigSecret != nil { + in, out := &in.ConfigSecret, &out.ConfigSecret + *out = new(corev1.LocalObjectReference) + **out = **in + } if in.Init != nil { in, out := &in.Init, &out.Init *out = new(InitSpec) @@ -4965,11 +4991,6 @@ func (in *SinglestoreSpec) DeepCopyInto(out *SinglestoreSpec) { *out = new(SecretReference) **out = **in } - if in.ConfigSecret != nil { - in, out := &in.ConfigSecret, &out.ConfigSecret - *out = new(corev1.LocalObjectReference) - **out = **in - } if in.PodTemplate != nil { in, out := &in.PodTemplate, &out.PodTemplate *out = new(v2.PodTemplateSpec) diff --git a/vendor/kubedb.dev/apimachinery/crds/autoscaling.kubedb.com_singlestoreautoscalers.yaml b/vendor/kubedb.dev/apimachinery/crds/autoscaling.kubedb.com_singlestoreautoscalers.yaml new file mode 100644 index 00000000..8c5907ca --- /dev/null +++ b/vendor/kubedb.dev/apimachinery/crds/autoscaling.kubedb.com_singlestoreautoscalers.yaml @@ -0,0 +1,504 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/name: kubedb + name: singlestoreautoscalers.autoscaling.kubedb.com +spec: + group: autoscaling.kubedb.com + names: + categories: + - datastore + - kubedb + - appscode + kind: SinglestoreAutoscaler + listKind: SinglestoreAutoscalerList + plural: singlestoreautoscalers + shortNames: + - sdbscaler + singular: singlestoreautoscaler + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + compute: + properties: + aggregator: + properties: + containerControlledValues: + enum: + - RequestsAndLimits + - RequestsOnly + type: string + controlledResources: + items: + type: string + type: array + inMemoryStorage: + properties: + scalingFactorPercentage: + format: int32 + type: integer + usageThresholdPercentage: + format: int32 + type: integer + type: object + maxAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + minAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + podLifeTimeThreshold: + type: string + resourceDiffPercentage: + format: int32 + type: integer + trigger: + type: string + type: object + leaf: + properties: + containerControlledValues: + enum: + - RequestsAndLimits + - RequestsOnly + type: string + controlledResources: + items: + type: string + type: array + inMemoryStorage: + properties: + scalingFactorPercentage: + format: int32 + type: integer + usageThresholdPercentage: + format: int32 + type: integer + type: object + maxAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + minAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + podLifeTimeThreshold: + type: string + resourceDiffPercentage: + format: int32 + type: integer + trigger: + type: string + type: object + node: + properties: + containerControlledValues: + enum: + - RequestsAndLimits + - RequestsOnly + type: string + controlledResources: + items: + type: string + type: array + inMemoryStorage: + properties: + scalingFactorPercentage: + format: int32 + type: integer + usageThresholdPercentage: + format: int32 + type: integer + type: object + maxAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + minAllowed: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + podLifeTimeThreshold: + type: string + resourceDiffPercentage: + format: int32 + type: integer + trigger: + type: string + type: object + nodeTopology: + properties: + name: + type: string + scaleDownDiffPercentage: + default: 25 + format: int32 + type: integer + scaleUpDiffPercentage: + default: 15 + format: int32 + type: integer + type: object + type: object + databaseRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + opsRequestOptions: + properties: + apply: + default: IfReady + enum: + - IfReady + - Always + type: string + timeout: + type: string + type: object + storage: + properties: + aggregator: + properties: + expansionMode: + enum: + - Offline + - Online + type: string + scalingRules: + items: + properties: + appliesUpto: + type: string + threshold: + type: string + required: + - appliesUpto + - threshold + type: object + type: array + scalingThreshold: + format: int32 + type: integer + trigger: + type: string + upperBound: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + usageThreshold: + format: int32 + type: integer + required: + - expansionMode + type: object + leaf: + properties: + expansionMode: + enum: + - Offline + - Online + type: string + scalingRules: + items: + properties: + appliesUpto: + type: string + threshold: + type: string + required: + - appliesUpto + - threshold + type: object + type: array + scalingThreshold: + format: int32 + type: integer + trigger: + type: string + upperBound: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + usageThreshold: + format: int32 + type: integer + required: + - expansionMode + type: object + node: + properties: + expansionMode: + enum: + - Offline + - Online + type: string + scalingRules: + items: + properties: + appliesUpto: + type: string + threshold: + type: string + required: + - appliesUpto + - threshold + type: object + type: array + scalingThreshold: + format: int32 + type: integer + trigger: + type: string + upperBound: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + usageThreshold: + format: int32 + type: integer + required: + - expansionMode + type: object + type: object + required: + - databaseRef + type: object + status: + properties: + checkpoints: + items: + properties: + cpuHistogram: + properties: + bucketWeights: + items: + properties: + index: + type: integer + weight: + format: int32 + type: integer + required: + - index + - weight + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + referenceTimestamp: + format: date-time + nullable: true + type: string + totalWeight: + format: double + type: number + type: object + firstSampleStart: + format: date-time + nullable: true + type: string + lastSampleStart: + format: date-time + nullable: true + type: string + lastUpdateTime: + format: date-time + nullable: true + type: string + memoryHistogram: + properties: + bucketWeights: + items: + properties: + index: + type: integer + weight: + format: int32 + type: integer + required: + - index + - weight + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + referenceTimestamp: + format: date-time + nullable: true + type: string + totalWeight: + format: double + type: number + type: object + ref: + properties: + containerName: + type: string + vpaObjectName: + type: string + type: object + totalSamplesCount: + type: integer + version: + type: string + type: object + type: array + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + observedGeneration: + format: int64 + type: integer + reason: + type: string + severity: + type: string + status: + type: string + type: + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + observedGeneration: + format: int64 + type: integer + phase: + enum: + - InProgress + - Current + - Terminating + - Failed + type: string + vpas: + items: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + reason: + type: string + status: + type: string + type: + type: string + required: + - status + - type + type: object + type: array + recommendation: + properties: + containerRecommendations: + items: + properties: + containerName: + type: string + lowerBound: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + target: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + uncappedTarget: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + upperBound: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + required: + - target + type: object + type: array + type: object + vpaName: + type: string + type: object + type: array + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_druids.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_druids.yaml index 33e5ec93..f01de905 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_druids.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_druids.yaml @@ -300,2898 +300,6 @@ spec: type: object type: object type: object - podTemplate: - properties: - controller: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - spec: - properties: - activeDeadlineSeconds: - format: int64 - type: integer - 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 - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - items: - properties: - configMapRef: - properties: - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - 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 - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - type: string - required: - - name - type: object - type: array - 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 - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - items: - properties: - configMapRef: - properties: - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - 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 - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - targetContainerName: - type: string - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - type: string - required: - - name - type: object - type: array - 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 - imagePullSecrets: - items: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - type: array - initContainers: - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - items: - properties: - configMapRef: - properties: - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - capabilities: - properties: - add: - items: - type: string - type: array - drop: - items: - type: string - type: array - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - 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 - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - type: string - required: - - name - type: object - type: array - nodeName: - type: string - nodeSelector: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: atomic - os: - properties: - name: - type: string - required: - - name - type: object - overhead: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - preemptionPolicy: - type: string - priority: - format: int32 - type: integer - priorityClassName: - type: string - readinessGates: - items: - properties: - conditionType: - type: string - required: - - conditionType - type: object - type: array - restartPolicy: - type: string - runtimeClassName: - type: string - schedulerName: - type: string - securityContext: - properties: - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - serviceAccountName: - type: string - setHostnameAsFQDN: - type: boolean - shareProcessNamespace: - type: boolean - terminationGracePeriodSeconds: - format: int64 - type: integer - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - type: string - kind: - type: string - readOnly: - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: - properties: - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - generateName: - type: string - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - required: - - apiVersion - - kind - - name - - uid - type: object - x-kubernetes-map-type: atomic - type: array - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - 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 - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - type: string - monitors: - items: - type: string - type: array - pool: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - user: - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - type: object - type: object serviceTemplates: items: properties: @@ -3262,11 +370,6 @@ spec: - alias type: object type: array - storageType: - enum: - - Durable - - Ephemeral - type: string terminationPolicy: enum: - Halt @@ -6184,93 +3287,9 @@ spec: type: object type: object replicas: + default: 1 format: int32 type: integer - storage: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object suffix: type: string tolerations: @@ -9133,158 +6152,74 @@ spec: type: string required: - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - type: object - type: object - replicas: - format: int32 - type: integer - storage: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array + - secretRef + - system + type: object + secret: + properties: + defaultMode: + format: int32 + type: integer + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object required: - - key - - operator + - name type: object type: array - matchLabels: - additionalProperties: - type: string - type: object type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string type: object + replicas: + default: 1 + format: int32 + type: integer suffix: type: string tolerations: @@ -9306,6 +6241,17 @@ spec: type: object historicals: properties: + ephemeralStorage: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object nodeSelector: additionalProperties: type: string @@ -12212,6 +9158,7 @@ spec: type: object type: object replicas: + default: 1 format: int32 type: integer storage: @@ -12299,6 +9246,11 @@ spec: volumeName: type: string type: object + storageType: + enum: + - Durable + - Ephemeral + type: string suffix: type: string tolerations: @@ -12320,6 +9272,17 @@ spec: type: object middleManagers: properties: + ephemeralStorage: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object nodeSelector: additionalProperties: type: string @@ -15226,6 +12189,7 @@ spec: type: object type: object replicas: + default: 1 format: int32 type: integer storage: @@ -15313,6 +12277,11 @@ spec: volumeName: type: string type: object + storageType: + enum: + - Durable + - Ephemeral + type: string suffix: type: string tolerations: @@ -18240,93 +15209,9 @@ spec: type: object type: object replicas: + default: 1 format: int32 type: integer - storage: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object suffix: type: string tolerations: @@ -21254,93 +18139,9 @@ spec: type: object type: object replicas: + default: 1 format: int32 type: integer - storage: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object suffix: type: string tolerations: @@ -21360,11 +18161,6 @@ spec: type: object type: array type: object - required: - - brokers - - coordinators - - historicals - - middleManagers type: object version: type: string diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml index ff58db10..7d6fd7c8 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_pgbouncers.yaml @@ -3150,8 +3150,6 @@ spec: - Halted - Unknown type: string - resourceVersionOfBackendSecret: - type: string type: object type: object served: true diff --git a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_singlestores.yaml b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_singlestores.yaml index d0f15d11..e48e3b92 100644 --- a/vendor/kubedb.dev/apimachinery/crds/kubedb.com_singlestores.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/kubedb.com_singlestores.yaml @@ -4138,9 +4138,6 @@ spec: type: array type: object type: object - replicas: - format: int32 - type: integer serviceTemplates: items: properties: @@ -4413,6 +4410,12 @@ spec: properties: aggregator: properties: + configSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic podPlacementPolicy: default: name: default @@ -7406,6 +7409,12 @@ spec: type: object leaf: properties: + configSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic podPlacementPolicy: default: name: default diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_memcachedopsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_memcachedopsrequests.yaml index 084ce386..a202ae5b 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_memcachedopsrequests.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_memcachedopsrequests.yaml @@ -49,6 +49,19 @@ spec: - Always type: string configuration: + properties: + applyConfig: + additionalProperties: + type: string + type: object + configSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + removeCustomConfig: + type: boolean type: object databaseRef: properties: @@ -60,6 +73,8 @@ spec: type: object restart: type: object + timeout: + type: string tls: properties: certificates: @@ -185,6 +200,55 @@ spec: type: object verticalScaling: properties: + memcached: + properties: + nodeSelectionPolicy: + enum: + - LabelSelector + - Taint + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + topology: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: object readinessCriteria: type: object type: object diff --git a/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_singlestoreopsrequests.yaml b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_singlestoreopsrequests.yaml new file mode 100644 index 00000000..fa3f9a2c --- /dev/null +++ b/vendor/kubedb.dev/apimachinery/crds/ops.kubedb.com_singlestoreopsrequests.yaml @@ -0,0 +1,393 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + creationTimestamp: null + labels: + app.kubernetes.io/name: kubedb + name: singlestoreopsrequests.ops.kubedb.com +spec: + group: ops.kubedb.com + names: + categories: + - datastore + - kubedb + - appscode + kind: SinglestoreOpsRequest + listKind: SinglestoreOpsRequestList + plural: singlestoreopsrequests + shortNames: + - sdbops + singular: singlestoreopsrequest + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .spec.type + name: Type + type: string + - jsonPath: .status.phase + name: Status + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + properties: + apiVersion: + type: string + kind: + type: string + metadata: + type: object + spec: + properties: + apply: + default: IfReady + enum: + - IfReady + - Always + type: string + configuration: + properties: + aggregator: + properties: + applyConfig: + additionalProperties: + type: string + type: object + configSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + removeCustomConfig: + type: boolean + type: object + leaf: + properties: + applyConfig: + additionalProperties: + type: string + type: object + configSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + removeCustomConfig: + type: boolean + type: object + node: + properties: + applyConfig: + additionalProperties: + type: string + type: object + configSecret: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + removeCustomConfig: + type: boolean + type: object + type: object + databaseRef: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + restart: + type: object + timeout: + type: string + type: + enum: + - VerticalScaling + - VolumeExpansion + - Restart + - Configuration + type: string + verticalScaling: + properties: + aggregator: + properties: + nodeSelectionPolicy: + enum: + - LabelSelector + - Taint + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + topology: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: object + coordinator: + properties: + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + type: object + leaf: + properties: + nodeSelectionPolicy: + enum: + - LabelSelector + - Taint + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + topology: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: object + node: + properties: + nodeSelectionPolicy: + enum: + - LabelSelector + - Taint + type: string + resources: + properties: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + topology: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: object + type: object + volumeExpansion: + properties: + aggregator: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + leaf: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + mode: + enum: + - Offline + - Online + type: string + node: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + required: + - mode + type: object + required: + - databaseRef + - type + type: object + status: + properties: + conditions: + items: + properties: + lastTransitionTime: + format: date-time + type: string + message: + type: string + observedGeneration: + format: int64 + type: integer + reason: + type: string + severity: + type: string + status: + type: string + type: + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + observedGeneration: + format: int64 + type: integer + pausedBackups: + items: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - name + type: object + type: array + phase: + enum: + - Pending + - Progressing + - Successful + - WaitingForApproval + - Failed + - Approved + - Denied + - Skipped + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/vendor/kubedb.dev/apimachinery/crds/ui.kubedb.com_pgbouncerinsights.yaml b/vendor/kubedb.dev/apimachinery/crds/ui.kubedb.com_pgbouncerinsights.yaml index 98ed27fe..1ebf7ec1 100644 --- a/vendor/kubedb.dev/apimachinery/crds/ui.kubedb.com_pgbouncerinsights.yaml +++ b/vendor/kubedb.dev/apimachinery/crds/ui.kubedb.com_pgbouncerinsights.yaml @@ -209,8 +209,6 @@ spec: - Halted - Unknown type: string - resourceVersionOfBackendSecret: - type: string type: object type: object served: true diff --git a/vendor/modules.txt b/vendor/modules.txt index fe4d5fdf..b67e9e61 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1467,7 +1467,7 @@ kmodules.xyz/monitoring-agent-api/api/v1 ## explicit; go 1.22.0 kmodules.xyz/offshoot-api/api/v1 kmodules.xyz/offshoot-api/api/v2 -# kubedb.dev/apimachinery v0.45.2-0.20240529075634-bc0c0bab0034 +# kubedb.dev/apimachinery v0.45.2-0.20240530120824-5e6b27ed36e9 ## explicit; go 1.22.0 kubedb.dev/apimachinery/apis kubedb.dev/apimachinery/apis/catalog