APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kindstring
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadataobject
specobjectrequired
additionalMongodConfigobject
AdditionalMongodConfig is additional configuration that can be passed to
each data-bearing mongod at runtime. Uses the same structure as the mongod
configuration file:
https://docs.mongodb.com/manual/reference/configuration-options/
agentobject
backupAgentobject
logRotateobject
LogRotate configures log rotation for the BackupAgent processes
sizeThresholdMBinteger
Maximum size for an individual log file before rotation.
OM only supports ints
timeThresholdHrsinteger
Number of hours after which this MongoDB Agent rotates the log file.
logLevelstring
logRotateobject
DEPRECATED please use mongod.logRotate
includeAuditLogsWithMongoDBLogsboolean
set to 'true' to have the Automation Agent rotate the audit files along
with mongodb log files
numTotalinteger
maximum number of log files to have total
numUncompressedinteger
maximum number of log files to leave uncompressed
percentOfDiskspacestring
Maximum percentage of the total disk space these log files should take up.
The string needs to be able to be converted to float64
sizeThresholdMBstringrequired
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.
timeThresholdHrsintegerrequired
maximum hours for an individual log file before rotation
maxLogFileDurationHoursinteger
mongodobject
AgentLoggingMongodConfig contain settings for the mongodb processes configured by the agent
auditlogRotateobject
LogRotate configures audit log rotation for the mongodb processes
includeAuditLogsWithMongoDBLogsboolean
set to 'true' to have the Automation Agent rotate the audit files along
with mongodb log files
numTotalinteger
maximum number of log files to have total
numUncompressedinteger
maximum number of log files to leave uncompressed
percentOfDiskspacestring
Maximum percentage of the total disk space these log files should take up.
The string needs to be able to be converted to float64
sizeThresholdMBstringrequired
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.
timeThresholdHrsintegerrequired
maximum hours for an individual log file before rotation
logRotateobject
LogRotate configures log rotation for the mongodb processes
includeAuditLogsWithMongoDBLogsboolean
set to 'true' to have the Automation Agent rotate the audit files along
with mongodb log files
numTotalinteger
maximum number of log files to have total
numUncompressedinteger
maximum number of log files to leave uncompressed
percentOfDiskspacestring
Maximum percentage of the total disk space these log files should take up.
The string needs to be able to be converted to float64
sizeThresholdMBstringrequired
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.
timeThresholdHrsintegerrequired
maximum hours for an individual log file before rotation
systemLogobject
SystemLog configures system log of mongod
destinationstringrequired
logAppendbooleanrequired
pathstringrequired
monitoringAgentobject
logRotateobject
LogRotate configures log rotation for the BackupAgent processes
sizeThresholdMBinteger
Maximum size for an individual log file before rotation.
OM only supports ints
timeThresholdHrsinteger
Number of hours after which this MongoDB Agent rotates the log file.
readinessProbeobject
environmentVariablesobject
startupOptionsobject
StartupParameters can be used to configure the startup parameters with which the agent starts. That also contains
log rotation settings as defined here:
systemLogobject
DEPRECATED please use mongod.systemLog
destinationstringrequired
logAppendbooleanrequired
pathstringrequired
backupobject
Backup contains configuration options for configuring
backup for this MongoDB resource
assignmentLabels[]string
Assignment Labels set in the Ops Manager
autoTerminateOnDeletionboolean
AutoTerminateOnDeletion indicates if the Operator should stop and terminate the Backup before the cleanup,
when the MongoDB CR is deleted
encryptionobject
Encryption settings
kmipobject
Kmip corresponds to the KMIP configuration assigned to the Ops Manager Project's configuration.
clientobjectrequired
KMIP Client configuration
clientCertificatePrefixstring
A prefix used to construct KMIP client certificate (and corresponding password) Secret names.
The names are generated using the following pattern:
KMIP Client Certificate (TLS Secret):
<clientCertificatePrefix>-<CR Name>-kmip-client
KMIP Client Certificate Password:
<clientCertificatePrefix>-<CR Name>-kmip-client-password
The expected key inside is called "password".
modestring
enum: enabled, disabled, terminated
snapshotScheduleobject
clusterCheckpointIntervalMininteger
enum: 15, 30, 60
dailySnapshotRetentionDaysinteger
Number of days to retain daily snapshots. Setting 0 will disable this rule.
minimum: 0
maximum: 365
fullIncrementalDayOfWeekstring
Day of the week when Ops Manager takes a full snapshot. This ensures a recent complete backup. Ops Manager sets the default value to SUNDAY.
Hour of the day to schedule snapshots using a 24-hour clock, in UTC.
minimum: 0
maximum: 23
referenceMinuteOfHourinteger
Minute of the hour to schedule snapshots, in UTC.
minimum: 0
maximum: 59
snapshotIntervalHoursinteger
Number of hours between snapshots.
enum: 6, 8, 12, 24
snapshotRetentionDaysinteger
Number of days to keep recent snapshots.
minimum: 1
maximum: 365
weeklySnapshotRetentionWeeksinteger
Number of weeks to retain weekly snapshots. Setting 0 will disable this rule
minimum: 0
maximum: 365
cloudManagerobject
configMapRefobject
namestring
clusterDomainstring
format: hostname
clusterSpecList[]object
clusterNamestring
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.
externalAccessobject
ExternalAccessConfiguration provides external access configuration for Multi-Cluster.
externalDomainstring
An external domain that is used for exposing MongoDB to the outside world.
externalServiceobject
Provides a way to override the default (NodePort) Service
annotationsobject
A map of annotations that shall be added to the externally available Service.
specobject
A wrapper for the Service spec object.
memberConfig[]object
MemberConfig allows to specify votes, priorities and tags for each of the mongodb process.
prioritystring
tagsobject
votesinteger
membersintegerrequired
Amount of members for this MongoDB Replica Set
podSpecobject
persistenceobject
Note, that this field is used by MongoDB resources only, let's keep it here for simplicity
multipleobject
dataobject
labelSelectorobject
storagestring
storageClassstring
journalobject
labelSelectorobject
storagestring
storageClassstring
logsobject
labelSelectorobject
storagestring
storageClassstring
singleobject
labelSelectorobject
storagestring
storageClassstring
podTemplateobject
servicestring
this is an optional service, it will get the name "<rsName>-service" in case not provided
statefulSetobject
StatefulSetConfiguration holds the optional custom StatefulSet
that should be merged into the operator created one.
metadataobject
StatefulSetMetadataWrapper is a wrapper around Labels and Annotations
annotationsobject
labelsobject
specobjectrequired
connectivityobject
replicaSetHorizons[]object
ReplicaSetHorizons holds list of maps of horizons to be configured in each of MongoDB processes.
Horizons map horizon names to the node addresses for each process in the replicaset, e.g.:
[
{
"internal": "my-rs-0.my-internal-domain.com:31843",
"external": "my-rs-0.my-external-domain.com:21467"
},
{
"internal": "my-rs-1.my-internal-domain.com:31843",
"external": "my-rs-1.my-external-domain.com:21467"
},
...
]
The key of each item in the map is an arbitrary, user-chosen string that
represents the name of the horizon. The value of the item is the host and,
optionally, the port that this mongod node will be connected to from.
credentialsstringrequired
Name of the Secret holding credentials information
duplicateServiceObjectsboolean
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.
An external domain that is used for exposing MongoDB to the outside world.
externalServiceobject
Provides a way to override the default (NodePort) Service
annotationsobject
A map of annotations that shall be added to the externally available Service.
specobject
A wrapper for the Service spec object.
featureCompatibilityVersionstring
logLevelstring
enum: DEBUG, INFO, WARN, ERROR, FATAL
opsManagerobject
configMapRefobject
namestring
persistentboolean
prometheusobject
Prometheus configurations.
metricsPathstring
Indicates path to the metrics endpoint.
pattern: ^\/[a-z0-9]+$
passwordSecretRefobjectrequired
Name of a Secret containing a HTTP Basic Auth Password.
keystring
Key is the key in the secret storing this password. Defaults to "password"
namestringrequired
Name is the name of the secret storing this user's password
portinteger
Port where metrics endpoint will bind to. Defaults to 9216.
tlsSecretKeyRefobject
Name of a Secret (type kubernetes.io/tls) holding the certificates to use in the
Prometheus endpoint.
keystring
Key is the key in the secret storing this password. Defaults to "password"
namestringrequired
Name is the name of the secret storing this user's password
usernamestringrequired
HTTP Basic Auth Username for metrics endpoint.
securityobject
authenticationobject
Authentication holds various authentication related settings that affect
this MongoDB resource.
agentsobject
Agents contains authentication configuration properties for the agents
automationLdapGroupDNstring
automationPasswordSecretRefobject
SecretKeySelector selects a key of a Secret.
keystringrequired
The key of the secret to select from. Must be a valid secret key.
namestring
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optionalboolean
Specify whether the Secret or its key must be defined
automationUserNamestring
clientCertificateSecretRefobject
modestringrequired
Mode is the desired Authentication mode that the agents will use
enabledbooleanrequired
ignoreUnknownUsersboolean
IgnoreUnknownUsers maps to the inverse of auth.authoritativeSet
internalClusterstring
ldapobject
LDAP Configuration
authzQueryTemplatestring
bindQueryPasswordSecretRefobject
namestringrequired
bindQueryUserstring
caConfigMapRefobject
Allows to point at a ConfigMap/key with a CA file to mount on the Pod
keystringrequired
The key to select.
namestring
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optionalboolean
Specify whether the ConfigMap or its key must be defined
servers[]string
timeoutMSinteger
transportSecuritystring
enum: tls, none
userCacheInvalidationIntervalinteger
userToDNMappingstring
validateLDAPServerConfigboolean
modes[]string
oidcProviderConfigs[]object
Configuration for OIDC providers
audiencestringrequired
Entity that your external identity provider intends the token for.
Enter the audience value from the app you registered with external Identity Provider.
authorizationMethodstringrequired
Configure single-sign-on for human user access to deployments with Workforce Identity Federation.
For programmatic, application access to deployments use Workload Identity Federation.
Only one Workforce Identity Federation IdP can be configured per MongoDB resource
Select GroupMembership to grant authorization based on IdP user group membership, or select UserID to grant
an individual user authorization.
enum: GroupMembership, UserID
clientIdstring
Unique identifier for your registered application. Enter the clientId value from the app you
registered with an external Identity Provider.
Required when selected Workforce Identity Federation authorization method
configurationNamestringrequired
Unique label that identifies this configuration. It is case-sensitive and can only contain the following characters:
- alphanumeric characters (combination of a to z and 0 to 9)
- hyphens (-)
- underscores (_)
pattern: ^[a-zA-Z0-9-_]+$
groupsClaimstring
The identifier of the claim that includes the principal's IdP user group membership information.
Required when selected GroupMembership as the authorization type, ignored otherwise
issuerURIstringrequired
Issuer value provided by your registered IdP application. Using this URI, MongoDB finds an OpenID Connect Provider
Configuration Document, which should be available in the /.wellknown/open-id-configuration endpoint.
For MongoDB 8.0+, the combination of issuerURI and audience must be unique across OIDC provider configurations.
For other MongoDB versions, the issuerURI itself must be unique.
requestedScopes[]string
Tokens that give users permission to request data from the authorization endpoint.
Only used for Workforce Identity Federation authorization method
userClaimstringrequired
The identifier of the claim that includes the user principal identity.
Accept the default value unless your IdP uses a different claim.
requireClientTLSAuthenticationboolean
Clients should present valid TLS certificates
certsSecretPrefixstring
roleRefs[]object
kindstringrequired
enum: ClusterMongoDBRole
namestringrequired
roles[]object
authenticationRestrictions[]object
clientSource[]string
serverAddress[]string
dbstringrequired
privileges[]object
actions[]stringrequired
resourceobjectrequired
clusterboolean
collectionstring
dbstring
rolestringrequired
roles[]object
dbstringrequired
rolestringrequired
tlsobject
additionalCertificateDomains[]string
castring
CA corresponds to a ConfigMap containing an entry for the CA certificate (ca.pem)
used to validate the certificates created already.
enabledboolean
DEPRECATED please enable TLS by setting `security.certsSecretPrefix` or `security.tls.secretRef.prefix`.
Enables TLS for this resource. This will make the operator try to mount a
Secret with a defined name (<resource-name>-cert).
This is only used when enabling TLS on a MongoDB resource, and not on the
AppDB, where TLS is configured by setting `secretRef.Name`.
statefulSetobject
StatefulSetConfiguration provides the statefulset override for each of the cluster's statefulset
if "StatefulSetConfiguration" is specified at cluster level under "clusterSpecList" that takes precedence over
the global one
metadataobject
StatefulSetMetadataWrapper is a wrapper around Labels and Annotations
annotationsobject
labelsobject
specobjectrequired
topologystring
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
typestringrequired
enum: Standalone, ReplicaSet, ShardedCluster
versionstringrequired
pattern: ^[0-9]+.[0-9]+.[0-9]+(-.+)?$|^$
statusobject
backupobject
statusNamestringrequired
clusterStatusListobject
ClusterStatusList holds a list of clusterStatuses corresponding to each cluster
clusterStatuses[]object
clusterNamestring
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.
lastTransitionstring
membersinteger
messagestring
observedGenerationinteger
format: int64
phasestringrequired
pvc[]object
phasestringrequired
statefulsetNamestringrequired
resourcesNotReady[]object
errors[]object
messagestring
reasonstring
kindstringrequired
ResourceKind specifies a kind of a Kubernetes resource. Used in status of a Custom Resource
messagestring
namestringrequired
warnings[]string
featureCompatibilityVersionstring
lastTransitionstring
linkstring
messagestring
observedGenerationinteger
format: int64
phasestringrequired
pvc[]object
phasestringrequired
statefulsetNamestringrequired
resourcesNotReady[]object
errors[]object
messagestring
reasonstring
kindstringrequired
ResourceKind specifies a kind of a Kubernetes resource. Used in status of a Custom Resource