From 625a5cce8d5a301ea621952311d78408783a9629 Mon Sep 17 00:00:00 2001 From: mms-build-account Date: Wed, 2 Oct 2024 05:33:23 -0400 Subject: [PATCH] Updated (#347) --- charts/enterprise-operator/Chart.yaml | 2 +- .../crds/mongodb.com_mongodb.yaml | 941 +++++++++++++++++- .../crds/mongodb.com_mongodbmulticluster.yaml | 93 +- .../crds/mongodb.com_mongodbusers.yaml | 12 + .../crds/mongodb.com_opsmanagers.yaml | 127 ++- .../templates/operator-roles.yaml | 14 +- .../templates/operator.yaml | 4 + .../enterprise-operator/values-openshift.yaml | 40 +- charts/enterprise-operator/values.yaml | 13 +- 9 files changed, 1219 insertions(+), 27 deletions(-) diff --git a/charts/enterprise-operator/Chart.yaml b/charts/enterprise-operator/Chart.yaml index 4a7c9655..9ca98d33 100644 --- a/charts/enterprise-operator/Chart.yaml +++ b/charts/enterprise-operator/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: enterprise-operator description: MongoDB Kubernetes Enterprise Operator -version: 1.27.0 +version: 1.28.0 kubeVersion: '>=1.16-0' type: application keywords: diff --git a/charts/enterprise-operator/crds/mongodb.com_mongodb.yaml b/charts/enterprise-operator/crds/mongodb.com_mongodb.yaml index 8faaf370..f0acaf74 100644 --- a/charts/enterprise-operator/crds/mongodb.com_mongodb.yaml +++ b/charts/enterprise-operator/crds/mongodb.com_mongodb.yaml @@ -597,11 +597,154 @@ spec: - path type: object type: object + clusterSpecList: + items: + description: |- + ClusterSpecItem is the mongodb multi-cluster spec that is specific to a + particular Kubernetes cluster, this maps to the statefulset created in each cluster + properties: + clusterName: + description: |- + ClusterName is name of the cluster where the MongoDB Statefulset will be scheduled, the + name should have a one on one mapping with the service-account created in the central cluster + to talk to the workload clusters. + type: string + externalAccess: + description: ExternalAccessConfiguration provides external + access configuration for Multi-Cluster. + properties: + externalDomain: + description: An external domain that is used for exposing + MongoDB to the outside world. + type: string + externalService: + description: Provides a way to override the default + (NodePort) Service + properties: + annotations: + additionalProperties: + type: string + description: A map of annotations that shall be + added to the externally available Service. + type: object + spec: + description: A wrapper for the Service spec object. + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + memberConfig: + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. + items: + properties: + priority: + type: string + tags: + additionalProperties: + type: string + type: object + votes: + type: integer + type: object + type: array + members: + description: Amount of members for this MongoDB Replica + Set + type: integer + podSpec: + properties: + persistence: + description: Note, that this field is used by MongoDB + resources only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + service: + description: this is an optional service, it will get the + name "-service" in case not provided + type: string + statefulSet: + description: |- + StatefulSetConfiguration holds the optional custom StatefulSet + that should be merged into the operator created one. + properties: + metadata: + description: StatefulSetMetadataWrapper is a wrapper + around Labels and Annotations + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - spec + type: object + required: + - members + type: object + type: array type: object x-kubernetes-preserve-unknown-fields: true configSrvPodSpec: properties: persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity properties: multiple: properties: @@ -680,6 +823,14 @@ spec: credentials: description: Name of the Secret holding credentials information type: string + duplicateServiceObjects: + description: |- + In few service mesh options for ex: Istio, by default we would need to duplicate the + service objects created per pod in all the clusters to enable DNS resolution. Users can + however configure their ServiceMesh with DNS proxy(https://istio.io/latest/docs/ops/configuration/traffic-management/dns-proxy/) + enabled in which case the operator doesn't need to create the service objects per cluster. This options tells the operator + whether it should create the service objects in all the clusters or not. By default, if not specified the operator would create the duplicate svc objects. + type: boolean externalAccess: description: ExternalAccessConfiguration provides external access configuration. @@ -715,7 +866,8 @@ spec: - FATAL type: string memberConfig: - description: MemberConfig + description: MemberConfig allows to specify votes, priorities and + tags for each of the mongodb process. items: properties: priority: @@ -933,6 +1085,147 @@ spec: - path type: object type: object + clusterSpecList: + items: + description: |- + ClusterSpecItem is the mongodb multi-cluster spec that is specific to a + particular Kubernetes cluster, this maps to the statefulset created in each cluster + properties: + clusterName: + description: |- + ClusterName is name of the cluster where the MongoDB Statefulset will be scheduled, the + name should have a one on one mapping with the service-account created in the central cluster + to talk to the workload clusters. + type: string + externalAccess: + description: ExternalAccessConfiguration provides external + access configuration for Multi-Cluster. + properties: + externalDomain: + description: An external domain that is used for exposing + MongoDB to the outside world. + type: string + externalService: + description: Provides a way to override the default + (NodePort) Service + properties: + annotations: + additionalProperties: + type: string + description: A map of annotations that shall be + added to the externally available Service. + type: object + spec: + description: A wrapper for the Service spec object. + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + memberConfig: + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. + items: + properties: + priority: + type: string + tags: + additionalProperties: + type: string + type: object + votes: + type: integer + type: object + type: array + members: + description: Amount of members for this MongoDB Replica + Set + type: integer + podSpec: + properties: + persistence: + description: Note, that this field is used by MongoDB + resources only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + service: + description: this is an optional service, it will get the + name "-service" in case not provided + type: string + statefulSet: + description: |- + StatefulSetConfiguration holds the optional custom StatefulSet + that should be merged into the operator created one. + properties: + metadata: + description: StatefulSetMetadataWrapper is a wrapper + around Labels and Annotations + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - spec + type: object + required: + - members + type: object + type: array type: object x-kubernetes-preserve-unknown-fields: true mongosCount: @@ -940,6 +1233,8 @@ spec: mongosPodSpec: properties: persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity properties: multiple: properties: @@ -1002,6 +1297,8 @@ spec: podSpec: properties: persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity properties: multiple: properties: @@ -1507,13 +1804,608 @@ spec: - path type: object type: object + clusterSpecList: + items: + description: |- + ClusterSpecItem is the mongodb multi-cluster spec that is specific to a + particular Kubernetes cluster, this maps to the statefulset created in each cluster + properties: + clusterName: + description: |- + ClusterName is name of the cluster where the MongoDB Statefulset will be scheduled, the + name should have a one on one mapping with the service-account created in the central cluster + to talk to the workload clusters. + type: string + externalAccess: + description: ExternalAccessConfiguration provides external + access configuration for Multi-Cluster. + properties: + externalDomain: + description: An external domain that is used for exposing + MongoDB to the outside world. + type: string + externalService: + description: Provides a way to override the default + (NodePort) Service + properties: + annotations: + additionalProperties: + type: string + description: A map of annotations that shall be + added to the externally available Service. + type: object + spec: + description: A wrapper for the Service spec object. + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + memberConfig: + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. + items: + properties: + priority: + type: string + tags: + additionalProperties: + type: string + type: object + votes: + type: integer + type: object + type: array + members: + description: Amount of members for this MongoDB Replica + Set + type: integer + podSpec: + properties: + persistence: + description: Note, that this field is used by MongoDB + resources only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + service: + description: this is an optional service, it will get the + name "-service" in case not provided + type: string + statefulSet: + description: |- + StatefulSetConfiguration holds the optional custom StatefulSet + that should be merged into the operator created one. + properties: + metadata: + description: StatefulSetMetadataWrapper is a wrapper + around Labels and Annotations + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - spec + type: object + required: + - members + type: object + type: array type: object x-kubernetes-preserve-unknown-fields: true shardCount: type: integer + shardOverrides: + description: |- + ShardOverrides allow for overriding the configuration of a specific shard. + It replaces deprecated spec.shard.shardSpecificPodSpec field. When spec.shard.shardSpecificPodSpec is still defined then + spec.shard.shardSpecificPodSpec is applied first to the particular shard and then spec.shardOverrides is applied on top + of that (if defined for the same shard). + items: + properties: + additionalMongodConfig: + type: object + x-kubernetes-preserve-unknown-fields: true + agent: + properties: + backupAgent: + properties: + logRotate: + description: LogRotate configures log rotation for the + BackupAgent processes + properties: + sizeThresholdMB: + description: |- + Maximum size for an individual log file before rotation. + OM only supports ints + type: integer + timeThresholdHrs: + description: Number of hours after which this MongoDB + Agent rotates the log file. + type: integer + type: object + type: object + logLevel: + type: string + logRotate: + description: DEPRECATED please use mongod.logRotate + properties: + includeAuditLogsWithMongoDBLogs: + description: |- + set to 'true' to have the Automation Agent rotate the audit files along + with mongodb log files + type: boolean + numTotal: + description: maximum number of log files to have total + type: integer + numUncompressed: + description: maximum number of log files to leave uncompressed + type: integer + percentOfDiskspace: + description: |- + Maximum percentage of the total disk space these log files should take up. + The string needs to be able to be converted to float64 + type: string + sizeThresholdMB: + description: |- + Maximum size for an individual log file before rotation. + The string needs to be able to be converted to float64. + Fractional values of MB are supported. + type: string + timeThresholdHrs: + description: maximum hours for an individual log file + before rotation + type: integer + required: + - sizeThresholdMB + - timeThresholdHrs + type: object + maxLogFileDurationHours: + type: integer + mongod: + description: AgentLoggingMongodConfig contain settings for + the mongodb processes configured by the agent + properties: + auditlogRotate: + description: LogRotate configures audit log rotation + for the mongodb processes + properties: + includeAuditLogsWithMongoDBLogs: + description: |- + set to 'true' to have the Automation Agent rotate the audit files along + with mongodb log files + type: boolean + numTotal: + description: maximum number of log files to have + total + type: integer + numUncompressed: + description: maximum number of log files to leave + uncompressed + type: integer + percentOfDiskspace: + description: |- + Maximum percentage of the total disk space these log files should take up. + The string needs to be able to be converted to float64 + type: string + sizeThresholdMB: + description: |- + Maximum size for an individual log file before rotation. + The string needs to be able to be converted to float64. + Fractional values of MB are supported. + type: string + timeThresholdHrs: + description: maximum hours for an individual log + file before rotation + type: integer + required: + - sizeThresholdMB + - timeThresholdHrs + type: object + logRotate: + description: LogRotate configures log rotation for the + mongodb processes + properties: + includeAuditLogsWithMongoDBLogs: + description: |- + set to 'true' to have the Automation Agent rotate the audit files along + with mongodb log files + type: boolean + numTotal: + description: maximum number of log files to have + total + type: integer + numUncompressed: + description: maximum number of log files to leave + uncompressed + type: integer + percentOfDiskspace: + description: |- + Maximum percentage of the total disk space these log files should take up. + The string needs to be able to be converted to float64 + type: string + sizeThresholdMB: + description: |- + Maximum size for an individual log file before rotation. + The string needs to be able to be converted to float64. + Fractional values of MB are supported. + type: string + timeThresholdHrs: + description: maximum hours for an individual log + file before rotation + type: integer + required: + - sizeThresholdMB + - timeThresholdHrs + type: object + systemLog: + description: SystemLog configures system log of mongod + properties: + destination: + type: string + logAppend: + type: boolean + path: + type: string + required: + - destination + - logAppend + - path + type: object + type: object + monitoringAgent: + properties: + logRotate: + description: LogRotate configures log rotation for the + BackupAgent processes + properties: + sizeThresholdMB: + description: |- + Maximum size for an individual log file before rotation. + OM only supports ints + type: integer + timeThresholdHrs: + description: Number of hours after which this MongoDB + Agent rotates the log file. + type: integer + type: object + type: object + readinessProbe: + properties: + environmentVariables: + additionalProperties: + type: string + type: object + type: object + startupOptions: + additionalProperties: + type: string + description: |- + StartupParameters can be used to configure the startup parameters with which the agent starts. That also contains + log rotation settings as defined here: + type: object + systemLog: + description: DEPRECATED please use mongod.systemLog + properties: + destination: + type: string + logAppend: + type: boolean + path: + type: string + required: + - destination + - logAppend + - path + type: object + type: object + clusterSpecList: + items: + description: |- + ClusterSpecItemOverride is almost exact copy of ClusterSpecItem object. + The object is used in ClusterSpecList in ShardedClusterComponentOverrideSpec in shard overrides. + The difference lies in some fields being optional, e.g. Members to make it possible to NOT override fields and rely on + what was set in top level shard configuration. + properties: + clusterName: + description: |- + ClusterName is name of the cluster where the MongoDB Statefulset will be scheduled, the + name should have a one on one mapping with the service-account created in the central cluster + to talk to the workload clusters. + type: string + externalAccess: + description: ExternalAccessConfiguration provides external + access configuration for Multi-Cluster. + properties: + externalDomain: + description: An external domain that is used for exposing + MongoDB to the outside world. + type: string + externalService: + description: Provides a way to override the default + (NodePort) Service + properties: + annotations: + additionalProperties: + type: string + description: A map of annotations that shall be + added to the externally available Service. + type: object + spec: + description: A wrapper for the Service spec object. + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + type: object + memberConfig: + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. + items: + properties: + priority: + type: string + tags: + additionalProperties: + type: string + type: object + votes: + type: integer + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + members: + description: Amount of members for this MongoDB Replica + Set + type: integer + podSpec: + properties: + persistence: + description: Note, that this field is used by MongoDB + resources only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + statefulSet: + description: |- + StatefulSetConfiguration holds the optional custom StatefulSet + that should be merged into the operator created one. + properties: + metadata: + description: StatefulSetMetadataWrapper is a wrapper + around Labels and Annotations + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - spec + type: object + type: object + type: array + memberConfig: + description: Process configuration override for this shard. + Used in SingleCluster only. The number of items specified + must be >= spec.mongodsPerShardCount or spec.shardOverride.members. + items: + properties: + priority: + type: string + tags: + additionalProperties: + type: string + type: object + votes: + type: integer + type: object + type: array + x-kubernetes-preserve-unknown-fields: true + members: + description: Number of member nodes in this shard. Used only + in SingleCluster. For MultiCluster the number of members is + specified in ShardOverride.ClusterSpecList. + type: integer + podSpec: + description: The following override fields work for SingleCluster + only. For MultiCluster - fields from specific clusters are + used. + properties: + persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + shardNames: + items: + type: string + minItems: 1 + type: array + statefulSet: + description: Statefulset override for this particular shard. + properties: + metadata: + description: StatefulSetMetadataWrapper is a wrapper around + Labels and Annotations + properties: + annotations: + additionalProperties: + type: string + type: object + labels: + additionalProperties: + type: string + type: object + type: object + spec: + type: object + x-kubernetes-preserve-unknown-fields: true + required: + - spec + type: object + required: + - shardNames + type: object + type: array shardPodSpec: properties: persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity properties: multiple: properties: @@ -1564,11 +2456,14 @@ spec: x-kubernetes-preserve-unknown-fields: true type: object shardSpecificPodSpec: - description: ShardSpecificPodSpec allows you to provide a Statefulset - override per shard. + description: |- + ShardSpecificPodSpec allows you to provide a Statefulset override per shard. + DEPRECATED please use spec.shard.shardOverrides instead items: properties: persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity properties: multiple: properties: @@ -1644,6 +2539,15 @@ spec: required: - spec type: object + topology: + description: |- + Topology sets the desired cluster topology of MongoDB resources + It defaults (if empty or not set) to SingleCluster. If MultiCluster specified, + then clusterSpecList field is mandatory and at least one member cluster has to be specified. + enum: + - SingleCluster + - MultiCluster + type: string type: enum: - Standalone @@ -1670,6 +2574,8 @@ spec: type: object configServerCount: type: integer + featureCompatibilityVersion: + type: string lastTransition: type: string link: @@ -1687,6 +2593,18 @@ spec: type: integer phase: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array resourcesNotReady: items: description: ResourceNotReady describes the dependent resource which @@ -1716,6 +2634,23 @@ spec: type: array shardCount: type: integer + sizeStatusInClusters: + description: MongodbShardedSizeStatusInClusters describes the number + and sizes of replica sets members deployed across member clusters + properties: + configServerMongodsInClusters: + additionalProperties: + type: integer + type: object + mongosCountInClusters: + additionalProperties: + type: integer + type: object + shardMongodsInClusters: + additionalProperties: + type: integer + type: object + type: object version: type: string warnings: diff --git a/charts/enterprise-operator/crds/mongodb.com_mongodbmulticluster.yaml b/charts/enterprise-operator/crds/mongodb.com_mongodbmulticluster.yaml index b1e22680..56fab735 100644 --- a/charts/enterprise-operator/crds/mongodb.com_mongodbmulticluster.yaml +++ b/charts/enterprise-operator/crds/mongodb.com_mongodbmulticluster.yaml @@ -424,7 +424,8 @@ spec: type: object type: object memberConfig: - description: MemberConfig + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. items: properties: priority: @@ -437,10 +438,63 @@ spec: type: integer type: object type: array - x-kubernetes-preserve-unknown-fields: true members: description: Amount of members for this MongoDB Replica Set type: integer + podSpec: + properties: + persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object service: description: this is an optional service, it will get the name "-service" in case not provided @@ -831,6 +885,15 @@ spec: required: - spec type: object + topology: + description: |- + Topology sets the desired cluster topology of MongoDB resources + It defaults (if empty or not set) to SingleCluster. If MultiCluster specified, + then clusterSpecList field is mandatory and at least one member cluster has to be specified. + enum: + - SingleCluster + - MultiCluster + type: string type: enum: - Standalone @@ -882,6 +945,18 @@ spec: type: integer phase: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array resourcesNotReady: items: description: ResourceNotReady describes the dependent @@ -918,6 +993,8 @@ spec: type: object type: array type: object + featureCompatibilityVersion: + type: string lastTransition: type: string link: @@ -929,6 +1006,18 @@ spec: type: integer phase: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array resourcesNotReady: items: description: ResourceNotReady describes the dependent resource which diff --git a/charts/enterprise-operator/crds/mongodb.com_mongodbusers.yaml b/charts/enterprise-operator/crds/mongodb.com_mongodbusers.yaml index f9e2237e..a81f0d44 100644 --- a/charts/enterprise-operator/crds/mongodb.com_mongodbusers.yaml +++ b/charts/enterprise-operator/crds/mongodb.com_mongodbusers.yaml @@ -107,6 +107,18 @@ spec: type: string project: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array resourcesNotReady: items: description: ResourceNotReady describes the dependent resource which diff --git a/charts/enterprise-operator/crds/mongodb.com_opsmanagers.yaml b/charts/enterprise-operator/crds/mongodb.com_opsmanagers.yaml index 6d41da8f..a2ac24eb 100644 --- a/charts/enterprise-operator/crds/mongodb.com_opsmanagers.yaml +++ b/charts/enterprise-operator/crds/mongodb.com_opsmanagers.yaml @@ -393,7 +393,8 @@ spec: type: object type: object memberConfig: - description: MemberConfig + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. items: properties: priority: @@ -406,11 +407,64 @@ spec: type: integer type: object type: array - x-kubernetes-preserve-unknown-fields: true members: description: Amount of members for this MongoDB Replica Set type: integer + podSpec: + properties: + persistence: + description: Note, that this field is used by MongoDB + resources only, let's keep it here for simplicity + properties: + multiple: + properties: + data: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + journal: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + logs: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + single: + properties: + labelSelector: + type: object + x-kubernetes-preserve-unknown-fields: true + storage: + type: string + storageClass: + type: string + type: object + type: object + podTemplate: + type: object + x-kubernetes-preserve-unknown-fields: true + type: object service: description: this is an optional service, it will get the name "-service" in case not provided @@ -474,16 +528,9 @@ spec: type: string featureCompatibilityVersion: type: string - logLevel: - enum: - - DEBUG - - INFO - - WARN - - ERROR - - FATAL - type: string memberConfig: - description: MemberConfig + description: MemberConfig allows to specify votes, priorities + and tags for each of the mongodb process. items: properties: priority: @@ -540,6 +587,8 @@ spec: podSpec: properties: persistence: + description: Note, that this field is used by MongoDB resources + only, let's keep it here for simplicity properties: multiple: properties: @@ -1611,6 +1660,8 @@ spec: type: array configServerCount: type: integer + featureCompatibilityVersion: + type: string lastTransition: type: string link: @@ -1628,6 +1679,18 @@ spec: type: integer phase: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array resourcesNotReady: items: description: ResourceNotReady describes the dependent resource @@ -1657,6 +1720,24 @@ spec: type: array shardCount: type: integer + sizeStatusInClusters: + description: MongodbShardedSizeStatusInClusters describes the + number and sizes of replica sets members deployed across member + clusters + properties: + configServerMongodsInClusters: + additionalProperties: + type: integer + type: object + mongosCountInClusters: + additionalProperties: + type: integer + type: object + shardMongodsInClusters: + additionalProperties: + type: integer + type: object + type: object version: type: string warnings: @@ -1687,6 +1768,18 @@ spec: type: integer phase: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array resourcesNotReady: items: description: ResourceNotReady describes the dependent resource @@ -1743,6 +1836,18 @@ spec: type: integer phase: type: string + pvc: + items: + properties: + phase: + type: string + statefulsetName: + type: string + required: + - phase + - statefulsetName + type: object + type: array replicas: type: integer resourcesNotReady: diff --git a/charts/enterprise-operator/templates/operator-roles.yaml b/charts/enterprise-operator/templates/operator-roles.yaml index 12b71950..097fe704 100644 --- a/charts/enterprise-operator/templates/operator-roles.yaml +++ b/charts/enterprise-operator/templates/operator-roles.yaml @@ -90,7 +90,19 @@ rules: - list - watch {{- end}} - +{{ if .Values.operator.enablePVCResize }} + - apiGroups: + - '' + resources: + - persistentvolumeclaims + verbs: + - get + - delete + - list + - watch + - patch + - update +{{- end}} {{- range $idx, $namespace := $watchNamespace }} {{- $namespaceBlock := "" }} diff --git a/charts/enterprise-operator/templates/operator.yaml b/charts/enterprise-operator/templates/operator.yaml index 27e1333e..25927c4a 100644 --- a/charts/enterprise-operator/templates/operator.yaml +++ b/charts/enterprise-operator/templates/operator.yaml @@ -149,7 +149,11 @@ spec: - name: MONGODB_REPO_URL value: {{ .Values.mongodb.repo }} - name: MDB_IMAGE_TYPE + {{- if eq .Values.operator.mdbDefaultArchitecture "static" }} + value: "ubi9" + {{- else }} value: {{ .Values.mongodb.imageType }} + {{- end }} {{- if eq .Values.mongodb.appdbAssumeOldFormat true }} - name: MDB_APPDB_ASSUME_OLD_FORMAT value: 'true' diff --git a/charts/enterprise-operator/values-openshift.yaml b/charts/enterprise-operator/values-openshift.yaml index 3d652abe..e39ba24f 100644 --- a/charts/enterprise-operator/values-openshift.yaml +++ b/charts/enterprise-operator/values-openshift.yaml @@ -64,6 +64,9 @@ relatedImages: - 7.0.7 - 7.0.8 - 7.0.9 + - 7.0.10 + - 7.0.11 + - 8.0.0 mongodb: - 4.4.0-ubi8 - 4.4.1-ubi8 @@ -119,60 +122,89 @@ relatedImages: - 107.0.1.8507-1_1.25.0 - 107.0.1.8507-1_1.26.0 - 107.0.1.8507-1_1.27.0 + - 107.0.1.8507-1_1.28.0 + - 107.0.10.8627-1 + - 107.0.10.8627-1_1.25.0 + - 107.0.10.8627-1_1.26.0 + - 107.0.10.8627-1_1.27.0 + - 107.0.10.8627-1_1.28.0 + - 107.0.11.8645-1 + - 107.0.11.8645-1_1.25.0 + - 107.0.11.8645-1_1.26.0 + - 107.0.11.8645-1_1.27.0 + - 107.0.11.8645-1_1.28.0 - 107.0.2.8531-1 - 107.0.2.8531-1_1.25.0 - 107.0.2.8531-1_1.26.0 - 107.0.2.8531-1_1.27.0 + - 107.0.2.8531-1_1.28.0 - 107.0.3.8550-1 - 107.0.3.8550-1_1.25.0 - 107.0.3.8550-1_1.26.0 - 107.0.3.8550-1_1.27.0 + - 107.0.3.8550-1_1.28.0 - 107.0.4.8567-1 - 107.0.4.8567-1_1.25.0 - 107.0.4.8567-1_1.26.0 - 107.0.4.8567-1_1.27.0 + - 107.0.4.8567-1_1.28.0 - 107.0.6.8587-1 - 107.0.6.8587-1_1.25.0 - 107.0.6.8587-1_1.26.0 - 107.0.6.8587-1_1.27.0 + - 107.0.6.8587-1_1.28.0 - 107.0.7.8596-1 - 107.0.7.8596-1_1.25.0 - 107.0.7.8596-1_1.26.0 - 107.0.7.8596-1_1.27.0 + - 107.0.7.8596-1_1.28.0 - 107.0.8.8615-1 - 107.0.8.8615-1_1.25.0 - 107.0.8.8615-1_1.26.0 - 107.0.8.8615-1_1.27.0 + - 107.0.8.8615-1_1.28.0 - 107.0.9.8621-1 - 107.0.9.8621-1_1.25.0 - 107.0.9.8621-1_1.26.0 - 107.0.9.8621-1_1.27.0 + - 107.0.9.8621-1_1.28.0 + - 108.0.0.8694-1 + - 108.0.0.8694-1_1.25.0 + - 108.0.0.8694-1_1.26.0 + - 108.0.0.8694-1_1.27.0 + - 108.0.0.8694-1_1.28.0 - 12.0.28.7763-1 - 12.0.29.7785-1 - 12.0.29.7785-1_1.25.0 - 12.0.29.7785-1_1.26.0 - 12.0.29.7785-1_1.27.0 + - 12.0.29.7785-1_1.28.0 - 12.0.30.7791-1 - 12.0.30.7791-1_1.25.0 - 12.0.30.7791-1_1.26.0 - 12.0.30.7791-1_1.27.0 + - 12.0.30.7791-1_1.28.0 - 12.0.31.7825-1 - 12.0.31.7825-1_1.25.0 - 12.0.31.7825-1_1.26.0 - 12.0.31.7825-1_1.27.0 + - 12.0.31.7825-1_1.28.0 - 12.0.32.7857-1 - 12.0.32.7857-1_1.25.0 - 12.0.32.7857-1_1.26.0 - 12.0.32.7857-1_1.27.0 + - 12.0.32.7857-1_1.28.0 - 12.0.33.7866-1 - 12.0.33.7866-1_1.25.0 - 12.0.33.7866-1_1.26.0 - 12.0.33.7866-1_1.27.0 + - 12.0.33.7866-1_1.28.0 - 13.10.0.8620-1 - - 13.21.0.9059-1 - - 13.21.0.9059-1_1.25.0 - - 13.21.0.9059-1_1.26.0 - - 13.21.0.9059-1_1.27.0 + - 13.22.0.9099-1 + - 13.22.0.9099-1_1.25.0 + - 13.22.0.9099-1_1.26.0 + - 13.22.0.9099-1_1.27.0 + - 13.22.0.9099-1_1.28.0 mongodbLegacyAppDb: - 4.2.11-ent - 4.2.2-ent diff --git a/charts/enterprise-operator/values.yaml b/charts/enterprise-operator/values.yaml index d5b891b5..bfc75dae 100644 --- a/charts/enterprise-operator/values.yaml +++ b/charts/enterprise-operator/values.yaml @@ -20,7 +20,7 @@ operator: deployment_name: mongodb-enterprise-operator # Version of mongodb-enterprise-operator - version: 1.27.0 + version: 1.28.0 # The Custom Resources that will be watched by the Operator. Needs to be changed if only some of the CRDs are installed watchedResources: @@ -62,6 +62,9 @@ operator: # kubectl mongodb plugin is used to configure multi-cluster resources createResourcesServiceAccountsAndRoles: true + # Set to false to not create the RBAC for enabling access to the PVC for resizing for the operator + enablePVCResize: true + vaultSecretBackend: # set to true if you want the operator to store secrets in Vault enabled: false @@ -98,11 +101,11 @@ operator: ## Database database: name: mongodb-enterprise-database-ubi - version: 1.27.0 + version: 1.28.0 initDatabase: name: mongodb-enterprise-init-database-ubi - version: 1.27.0 + version: 1.28.0 ## Ops Manager opsManager: @@ -110,12 +113,12 @@ opsManager: initOpsManager: name: mongodb-enterprise-init-ops-manager-ubi - version: 1.27.0 + version: 1.28.0 ## Application Database initAppDb: name: mongodb-enterprise-init-appdb-ubi - version: 1.27.0 + version: 1.28.0 agent: name: mongodb-agent-ubi