diff --git a/charts/psmdb-db/README.md b/charts/psmdb-db/README.md index 244af79c..6b7671d2 100644 --- a/charts/psmdb-db/README.md +++ b/charts/psmdb-db/README.md @@ -87,173 +87,182 @@ The chart can be customized using the following configurable parameters: | `pmm.mongodParams` | PMM mongod params | `""` | | `pmm.mongosParams` | PMM mongos params | `""` | | | -| `replsets.rs0.name` | ReplicaSet name | `rs0` | -| `replsets.rs0.size` | ReplicaSet size (pod quantity) | `3` | -| `replsets.rs0.terminationGracePeriodSeconds` | The amount of seconds Kubernetes will wait for a clean replica set Pods termination | `""` | -| `replsets.rs0.externalNodes` | ReplicaSet external nodes (cross cluster replication) | `[]` | -| `replsets.rs0.configuration` | Custom config for mongod in replica set | `""` | -| `replsets.rs0.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains | `{}` | -| `replsets.rs0.serviceAccountName` | Run replicaset Containers under specified K8S SA | `""` | -| `replsets.rs0.affinity.antiAffinityTopologyKey` | ReplicaSet Pod affinity | `kubernetes.io/hostname` | -| `replsets.rs0.affinity.advanced` | ReplicaSet Pod advanced affinity | `{}` | -| `replsets.rs0.tolerations` | ReplicaSet Pod tolerations | `[]` | -| `replsets.rs0.priorityClass` | ReplicaSet Pod priorityClassName | `""` | -| `replsets.rs0.annotations` | ReplicaSet Pod annotations | `{}` | -| `replsets.rs0.labels` | ReplicaSet Pod labels | `{}` | -| `replsets.rs0.nodeSelector` | ReplicaSet Pod nodeSelector labels | `{}` | -| `replsets.rs0.livenessProbe` | ReplicaSet Pod livenessProbe structure | `{}` | -| `replsets.rs0.readinessProbe` | ReplicaSet Pod readinessProbe structure | `{}` | -| `replsets.rs0.storage` | Set cacheSizeRatio or other custom MongoDB storage options | `{}` | -| `replsets.rs0.podSecurityContext` | Set the security context for a Pod | `{}` | -| `replsets.rs0.containerSecurityContext` | Set the security context for a Container | `{}` | -| `replsets.rs0.runtimeClass` | ReplicaSet Pod runtimeClassName | `""` | -| `replsets.rs0.sidecars` | ReplicaSet Pod sidecars | `{}` | -| `replsets.rs0.sidecarVolumes` | ReplicaSet Pod sidecar volumes | `[]` | -| `replsets.rs0.sidecarPVCs` | ReplicaSet Pod sidecar PVCs | `[]` | -| `replsets.rs0.podDisruptionBudget.maxUnavailable` | ReplicaSet failed Pods maximum quantity | `1` | -| `replsets.rs0.splitHorizons` | External URI for Split-horizon for replica set Pods of the exposed cluster | `{}` | -| `replsets.rs0.expose.enabled` | Allow access to replicaSet from outside of Kubernetes | `false` | -| `replsets.rs0.expose.type` | Network service access point type | `ClusterIP` | -| `replsets.rs0.expose.loadBalancerIP` | Set client IP to Load Balancer | `""` | -| `replsets.rs0.expose.loadBalancerSourceRanges` | Limit client IP's access to Load Balancer | `{}` | -| `replsets.rs0.expose.annotations` | ReplicaSet service annotations | `{}` | -| `replsets.rs0.expose.labels` | ReplicaSet service labels | `{}` | -| `replsets.rs0.expose.internalTrafficPolicy` | ReplicaSet service internal traffic policy | `Local` | -| `replsets.rs0.expose.externalTrafficPolicy` | ReplicaSet service external traffic policy | `Local` | -| `replsets.rs0.schedulerName` | ReplicaSet Pod schedulerName | `""` | -| `replsets.rs0.resources` | ReplicaSet Pods resource requests and limits | `{}` | -| `replsets.rs0.volumeSpec` | ReplicaSet Pods storage resources | `{}` | -| `replsets.rs0.volumeSpec.emptyDir` | ReplicaSet Pods emptyDir K8S storage | `{}` | -| `replsets.rs0.volumeSpec.hostPath` | ReplicaSet Pods hostPath K8S storage | | -| `replsets.rs0.volumeSpec.hostPath.path` | ReplicaSet Pods hostPath K8S storage path | `""` | -| `replsets.rs0.volumeSpec.hostPath.type` | Type for hostPath volume | `Directory` | -| `replsets.rs0.volumeSpec.pvc` | ReplicaSet Pods PVC request parameters | | -| `replsets.rs0.volumeSpec.pvc.annotations` | The Kubernetes annotations metadata for Persistent Volume Claim | `{}` | -| `replsets.rs0.volumeSpec.pvc.labels` | The Kubernetes labels metadata for Persistent Volume Claim | `{}` | -| `replsets.rs0.volumeSpec.pvc.storageClassName` | ReplicaSet Pods PVC target storageClass | `""` | -| `replsets.rs0.volumeSpec.pvc.accessModes` | ReplicaSet Pods PVC access policy | `[]` | -| `replsets.rs0.volumeSpec.pvc.resources.requests.storage` | ReplicaSet Pods PVC storage size | `3Gi` | -| `replsets.rs0.hostAliases` | The IP address for Kubernetes host aliases | `[]` | -| `replsets.rs0.nonvoting.enabled` | Add MongoDB nonvoting Pods | `false` | -| `replsets.rs0.nonvoting.podSecurityContext` | Set the security context for a Pod | `{}` | -| `replsets.rs0.nonvoting.containerSecurityContext` | Set the security context for a Container | `{}` | -| `replsets.rs0.nonvoting.size` | Number of nonvoting Pods | `1` | -| `replsets.rs0.nonvoting.configuration` | Custom config for mongod nonvoting member | `""` | -| `replsets.rs0.nonvoting.serviceAccountName` | Run replicaset nonvoting Container under specified K8S SA | `""` | -| `replsets.rs0.nonvoting.affinity.antiAffinityTopologyKey` | Nonvoting Pods affinity | `kubernetes.io/hostname` | -| `replsets.rs0.nonvoting.affinity.advanced` | Nonvoting Pods advanced affinity | `{}` | -| `replsets.rs0.nonvoting.tolerations` | Nonvoting Pod tolerations | `[]` | -| `replsets.rs0.nonvoting.priorityClass` | Nonvoting Pod priorityClassName | `""` | -| `replsets.rs0.nonvoting.annotations` | Nonvoting Pod annotations | `{}` | -| `replsets.rs0.nonvoting.labels` | Nonvoting Pod labels | `{}` | -| `replsets.rs0.nonvoting.nodeSelector` | Nonvoting Pod nodeSelector labels | `{}` | -| `replsets.rs0.nonvoting.podDisruptionBudget.maxUnavailable` | Nonvoting failed Pods maximum quantity | `1` | -| `replsets.rs0.nonvoting.resources` | Nonvoting Pods resource requests and limits | `{}` | -| `replsets.rs0.nonvoting.volumeSpec` | Nonvoting Pods storage resources | `{}` | -| `replsets.rs0.nonvoting.volumeSpec.emptyDir` | Nonvoting Pods emptyDir K8S storage | `{}` | -| `replsets.rs0.nonvoting.volumeSpec.hostPath` | Nonvoting Pods hostPath K8S storage | | -| `replsets.rs0.nonvoting.volumeSpec.hostPath.path` | Nonvoting Pods hostPath K8S storage path | `""` | -| `replsets.rs0.nonvoting.volumeSpec.hostPath.type` | Type for hostPath volume | `Directory` | -| `replsets.rs0.nonvoting.volumeSpec.pvc` | Nonvoting Pods PVC request parameters | | -| `replsets.rs0.nonvoting.volumeSpec.pvc.annotations` | The Kubernetes annotations metadata for Persistent Volume Claim | `{}` | -| `replsets.rs0.nonvoting.volumeSpec.pvc.labels` | The Kubernetes labels metadata for Persistent Volume Claim | `{}` | -| `replsets.rs0.nonvoting.volumeSpec.pvc.storageClassName` | Nonvoting Pods PVC target storageClass | `""` | -| `replsets.rs0.nonvoting.volumeSpec.pvc.accessModes` | Nonvoting Pods PVC access policy | `[]` | -| `replsets.rs0.nonvoting.volumeSpec.pvc.resources.requests.storage` | Nonvoting Pods PVC storage size | `3Gi` | -| `replsets.rs0.arbiter.enabled` | Create MongoDB arbiter service | `false` | -| `replsets.rs0.arbiter.size` | MongoDB arbiter Pod quantity | `1` | -| `replsets.rs0.arbiter.serviceAccountName` | Run replicaset arbiter Container under specified K8S SA | `""` | -| `replsets.rs0.arbiter.affinity.antiAffinityTopologyKey` | MongoDB arbiter Pod affinity | `kubernetes.io/hostname` | -| `replsets.rs0.arbiter.affinity.advanced` | MongoDB arbiter Pod advanced affinity | `{}` | -| `replsets.rs0.arbiter.tolerations` | MongoDB arbiter Pod tolerations | `[]` | -| `replsets.rs0.arbiter.priorityClass` | MongoDB arbiter priorityClassName | `""` | -| `replsets.rs0.arbiter.annotations` | MongoDB arbiter Pod annotations | `{}` | -| `replsets.rs0.arbiter.labels` | MongoDB arbiter Pod labels | `{}` | -| `replsets.rs0.arbiter.nodeSelector` | MongoDB arbiter Pod nodeSelector labels | `{}` | +| `replsets.rs0.name` | ReplicaSet name | `rs0` | +| `replsets.rs0.size` | ReplicaSet size (pod quantity) | `3` | +| `replsets.rs0.terminationGracePeriodSeconds` | The amount of seconds Kubernetes will wait for a clean replica set Pods termination | `""` | +| `replsets.rs0.externalNodes.host` | The URL or IP address of the external replset instance | `""` | +| `replsets.rs0.externalNodes.port` | The port number of the external replset instance | `""` | +| `replsets.rs0.externalNodes.votes` | The number of [votes](https://docs.mongodb.com/manual/reference/replica-configuration/#mongodb-rsconf-rsconf.members-n-.votes) of the external replset instance | `""` | +| `replsets.rs0.externalNodes.priority` | The [priority](https://docs.mongodb.com/manual/reference/replica-configuration/#mongodb-rsconf-rsconf.members-n-.priority) of the external replset instance | `""` | +| `replsets.rs0.configuration` | Custom config for mongod in replica set | `""` | +| `replsets.rs0.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains | `{}` | +| `replsets.rs0.replsetOverrides` | Use if you need tooverride the replica set members FQDNs with custom hostnames. Each key under `replsetOverrides` should be name of a Pod. The Operator won’t perform any validation for hostnames, so it's the user’s responsibility to ensure connectivity | `{}` | +| `replsets.rs0.serviceAccountName` | Run replicaset Containers under specified K8S SA | `""` | +| `replsets.rs0.affinity.antiAffinityTopologyKey` | ReplicaSet Pod affinity | `kubernetes.io/hostname` | +| `replsets.rs0.affinity.advanced` | ReplicaSet Pod advanced affinity | `{}` | +| `replsets.rs0.tolerations` | ReplicaSet Pod tolerations | `[]` | +| `replsets.rs0.priorityClass` | ReplicaSet Pod priorityClassName | `""` | +| `replsets.rs0.annotations` | ReplicaSet Pod annotations | `{}` | +| `replsets.rs0.labels` | ReplicaSet Pod labels | `{}` | +| `replsets.rs0.nodeSelector` | ReplicaSet Pod nodeSelector labels | `{}` | +| `replsets.rs0.livenessProbe` | ReplicaSet Pod livenessProbe structure | `{}` | +| `replsets.rs0.readinessProbe` | ReplicaSet Pod readinessProbe structure | `{}` | +| `replsets.rs0.storage` | Set cacheSizeRatio or other custom MongoDB storage options | `{}` | +| `replsets.rs0.podSecurityContext` | Set the security context for a Pod | `{}` | +| `replsets.rs0.containerSecurityContext` | Set the security context for a Container | `{}` | +| `replsets.rs0.runtimeClass` | ReplicaSet Pod runtimeClassName | `""` | +| `replsets.rs0.sidecars` | ReplicaSet Pod sidecars | `{}` | +| `replsets.rs0.sidecarVolumes` | ReplicaSet Pod sidecar volumes | `[]` | +| `replsets.rs0.sidecarPVCs` | ReplicaSet Pod sidecar PVCs | `[]` | +| `replsets.rs0.podDisruptionBudget.maxUnavailable` | ReplicaSet failed Pods maximum quantity | `1` | +| `replsets.rs0.splitHorizons` | External URI for Split-horizon for replica set Pods of the exposed cluster | `{}` | +| `replsets.rs0.expose.enabled` | Allow access to replicaSet from outside of Kubernetes | `false` | +| `replsets.rs0.expose.type` | Network service access point type | `ClusterIP` | +| `replsets.rs0.expose.loadBalancerIP` | Set client IP to Load Balancer | `""` | +| `replsets.rs0.expose.loadBalancerSourceRanges` | Limit client IP's access to Load Balancer | `{}` | +| `replsets.rs0.expose.annotations` | ReplicaSet service annotations | `{}` | +| `replsets.rs0.expose.labels` | ReplicaSet service labels | `{}` | +| `replsets.rs0.expose.internalTrafficPolicy` | ReplicaSet service internal traffic policy | `Local` | +| `replsets.rs0.expose.externalTrafficPolicy` | ReplicaSet service external traffic policy | `Local` | +| `replsets.rs0.schedulerName` | ReplicaSet Pod schedulerName | `""` | +| `replsets.rs0.resources` | ReplicaSet Pods resource requests and limits | `{}` | +| `replsets.rs0.volumeSpec` | ReplicaSet Pods storage resources | `{}` | +| `replsets.rs0.volumeSpec.emptyDir` | ReplicaSet Pods emptyDir K8S storage | `{}` | +| `replsets.rs0.volumeSpec.hostPath` | ReplicaSet Pods hostPath K8S storage | | +| `replsets.rs0.volumeSpec.hostPath.path` | ReplicaSet Pods hostPath K8S storage path | `""` | +| `replsets.rs0.volumeSpec.hostPath.type` | Type for hostPath volume | `Directory` | +| `replsets.rs0.volumeSpec.pvc` | ReplicaSet Pods PVC request parameters | | +| `replsets.rs0.volumeSpec.pvc.annotations` | The Kubernetes annotations metadata for Persistent Volume Claim | `{}` | +| `replsets.rs0.volumeSpec.pvc.labels` | The Kubernetes labels metadata for Persistent Volume Claim | `{}` | +| `replsets.rs0.volumeSpec.pvc.storageClassName` | ReplicaSet Pods PVC target storageClass | `""` | +| `replsets.rs0.volumeSpec.pvc.accessModes` | ReplicaSet Pods PVC access policy | `[]` | +| `replsets.rs0.volumeSpec.pvc.resources.requests.storage` | ReplicaSet Pods PVC storage size | `3Gi` | +| `replsets.rs0.hostAliases` | The IP address for Kubernetes host aliases | `[]` | +| `replsets.rs0.nonvoting.enabled` | Add MongoDB nonvoting Pods | `false` | +| `replsets.rs0.nonvoting.podSecurityContext` | Set the security context for a Pod | `{}` | +| `replsets.rs0.nonvoting.containerSecurityContext` | Set the security context for a Container | `{}` | +| `replsets.rs0.nonvoting.size` | Number of nonvoting Pods | `1` | +| `replsets.rs0.nonvoting.configuration` | Custom config for mongod nonvoting member | `""` | +| `replsets.rs0.nonvoting.serviceAccountName` | Run replicaset nonvoting Container under specified K8S SA | `""` | +| `replsets.rs0.nonvoting.affinity.antiAffinityTopologyKey` | Nonvoting Pods affinity | `kubernetes.io/hostname` | +| `replsets.rs0.nonvoting.affinity.advanced` | Nonvoting Pods advanced affinity | `{}` | +| `replsets.rs0.nonvoting.tolerations` | Nonvoting Pod tolerations | `[]` | +| `replsets.rs0.nonvoting.priorityClass` | Nonvoting Pod priorityClassName | `""` | +| `replsets.rs0.primaryPreferTagSelector.region` | Makes MongoDB instance to be selected as Primary based on specified region | `""` | +| `replsets.rs0.primaryPreferTagSelector.zone` | Makes MongoDB instance to be selected as Primary based on specified zone | `""` | +| `replsets.rs0.nonvoting.annotations` | Nonvoting Pod annotations | `{}` | +| `replsets.rs0.nonvoting.labels` | Nonvoting Pod labels | `{}` | +| `replsets.rs0.nonvoting.nodeSelector` | Nonvoting Pod nodeSelector labels | `{}` | +| `replsets.rs0.nonvoting.podDisruptionBudget.maxUnavailable` | Nonvoting failed Pods maximum quantity | `1` | +| `replsets.rs0.nonvoting.resources` | Nonvoting Pods resource requests and limits | `{}` | +| `replsets.rs0.nonvoting.volumeSpec` | Nonvoting Pods storage resources | `{}` | +| `replsets.rs0.nonvoting.volumeSpec.emptyDir` | Nonvoting Pods emptyDir K8S storage | `{}` | +| `replsets.rs0.nonvoting.volumeSpec.hostPath` | Nonvoting Pods hostPath K8S storage | | +| `replsets.rs0.nonvoting.volumeSpec.hostPath.path` | Nonvoting Pods hostPath K8S storage path | `""` | +| `replsets.rs0.nonvoting.volumeSpec.hostPath.type` | Type for hostPath volume | `Directory` | +| `replsets.rs0.nonvoting.volumeSpec.pvc` | Nonvoting Pods PVC request parameters | | +| `replsets.rs0.nonvoting.volumeSpec.pvc.annotations` | The Kubernetes annotations metadata for Persistent Volume Claim | `{}` | +| `replsets.rs0.nonvoting.volumeSpec.pvc.labels` | The Kubernetes labels metadata for Persistent Volume Claim | `{}` | +| `replsets.rs0.nonvoting.volumeSpec.pvc.storageClassName` | Nonvoting Pods PVC target storageClass | `""` | +| `replsets.rs0.nonvoting.volumeSpec.pvc.accessModes` | Nonvoting Pods PVC access policy | `[]` | +| `replsets.rs0.nonvoting.volumeSpec.pvc.resources.requests.storage` | Nonvoting Pods PVC storage size | `3Gi` | +| `replsets.rs0.arbiter.enabled` | Create MongoDB arbiter service | `false` | +| `replsets.rs0.arbiter.size` | MongoDB arbiter Pod quantity | `1` | +| `replsets.rs0.arbiter.serviceAccountName` | Run replicaset arbiter Container under specified K8S SA | `""` | +| `replsets.rs0.arbiter.affinity.antiAffinityTopologyKey` | MongoDB arbiter Pod affinity | `kubernetes.io/hostname` | +| `replsets.rs0.arbiter.affinity.advanced` | MongoDB arbiter Pod advanced affinity | `{}` | +| `replsets.rs0.arbiter.tolerations` | MongoDB arbiter Pod tolerations | `[]` | +| `replsets.rs0.arbiter.priorityClass` | MongoDB arbiter priorityClassName | `""` | +| `replsets.rs0.arbiter.annotations` | MongoDB arbiter Pod annotations | `{}` | +| `replsets.rs0.arbiter.labels` | MongoDB arbiter Pod labels | `{}` | +| `replsets.rs0.arbiter.nodeSelector` | MongoDB arbiter Pod nodeSelector labels | `{}` | | | -| `sharding.enabled` | Enable sharding setup | `true` | -| `sharding.balancer.enabled` | Enable/disable balancer | `true` | -| `sharding.configrs.size` | Config ReplicaSet size (pod quantity) | `3` | -| `sharding.configrs.terminationGracePeriodSeconds` | The amount of seconds Kubernetes will wait for a clean replica set Pods termination | `""` | -| `sharding.configrs.externalNodes` | Config ReplicaSet external nodes (cross cluster replication) | `[]` | -| `sharding.configrs.configuration` | Custom config for mongod in config replica set | `""` | -| `sharding.configrs.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains | `{}` | -| `sharding.configrs.serviceAccountName` | Run sharding configrs Containers under specified K8S SA | `""` | -| `sharding.configrs.affinity.antiAffinityTopologyKey` | Config ReplicaSet Pod affinity | `kubernetes.io/hostname` | -| `sharding.configrs.affinity.advanced` | Config ReplicaSet Pod advanced affinity | `{}` | -| `sharding.configrs.tolerations` | Config ReplicaSet Pod tolerations | `[]` | -| `sharding.configrs.priorityClass` | Config ReplicaSet Pod priorityClassName | `""` | -| `sharding.configrs.annotations` | Config ReplicaSet Pod annotations | `{}` | -| `sharding.configrs.labels` | Config ReplicaSet Pod labels | `{}` | -| `sharding.configrs.nodeSelector` | Config ReplicaSet Pod nodeSelector labels | `{}` | -| `sharding.configrs.livenessProbe` | Config ReplicaSet Pod livenessProbe structure | `{}` | -| `sharding.configrs.readinessProbe` | Config ReplicaSet Pod readinessProbe structure | `{}` | -| `sharding.configrs.storage` | Set cacheSizeRatio or other custom MongoDB storage options | `{}` | -| `sharding.configrs.podSecurityContext` | Set the security context for a Pod | `{}` | -| `sharding.configrs.containerSecurityContext` | Set the security context for a Container | `{}` | -| `sharding.configrs.runtimeClass` | Config ReplicaSet Pod runtimeClassName | `""` | -| `sharding.configrs.sidecars` | Config ReplicaSet Pod sidecars | `{}` | -| `sharding.configrs.sidecarVolumes` | Config ReplicaSet Pod sidecar volumes | `[]` | -| `sharding.configrs.sidecarPVCs` | Config ReplicaSet Pod sidecar PVCs | `[]` | -| `sharding.configrs.podDisruptionBudget.maxUnavailable` | Config ReplicaSet failed Pods maximum quantity | `1` | -| `sharding.configrs.expose.enabled` | Allow access to cfg replica from outside of Kubernetes | `false` | -| `sharding.configrs.expose.type` | Network service access point type | `ClusterIP` | -| `sharding.configrs.expose.loadBalancerIP` | Set client IP to Load Balancer | `""` | -| `sharding.configrs.expose.loadBalancerSourceRanges` | Limit client IP's access to Load Balancer | `{}` | -| `sharding.configrs.expose.annotations` | Config ReplicaSet service annotations | `{}` | -| `sharding.configrs.expose.labels` | Config ReplicaSet service labels | `{}` | -| `sharding.configrs.expose.internalTrafficPolicy` | Config ReplicaSet service internal traffic policy | `Local` | -| `sharding.configrs.expose.externalTrafficPolicy` | Config ReplicaSet service external traffic policy | `Local` | -| `sharding.configrs.resources.limits.cpu` | Config ReplicaSet resource limits CPU | `300m` | -| `sharding.configrs.resources.limits.memory` | Config ReplicaSet resource limits memory | `0.5G` | -| `sharding.configrs.resources.requests.cpu` | Config ReplicaSet resource requests CPU | `300m` | -| `sharding.configrs.resources.requests.memory` | Config ReplicaSet resource requests memory | `0.5G` | -| `sharding.configrs.volumeSpec.hostPath` | Config ReplicaSet hostPath K8S storage | | -| `sharding.configrs.volumeSpec.hostPath.path` | Config ReplicaSet hostPath K8S storage path | `""` | -| `sharding.configrs.volumeSpec.hostPath.type` | Type for hostPath volum | `Directory` | -| `sharding.configrs.volumeSpec.emptyDir` | Config ReplicaSet Pods emptyDir K8S storage | | -| `sharding.configrs.volumeSpec.pvc` | Config ReplicaSet Pods PVC request parameters | | -| `sharding.configrs.volumeSpec.pvc.annotations` | The Kubernetes annotations metadata for Persistent Volume Claim | `{}` | -| `sharding.configrs.volumeSpec.pvc.labels` | The Kubernetes labels metadata for Persistent Volume Claim | `{}` | -| `sharding.configrs.volumeSpec.pvc.storageClassName` | Config ReplicaSet Pods PVC storageClass | `""` | -| `sharding.configrs.volumeSpec.pvc.accessModes` | Config ReplicaSet Pods PVC access policy | `[]` | -| `sharding.configrs.volumeSpec.pvc.resources.requests.storage` | Config ReplicaSet Pods PVC storage size | `3Gi` | -| `sharding.configrs.hostAliases` | The IP address for Kubernetes host aliases | `[]` | -| `sharding.mongos.size` | Mongos size (pod quantity) | `3` | -| `sharding.mongos.terminationGracePeriodSeconds` | The amount of seconds Kubernetes will wait for a clean mongos Pods termination | `""` | -| `sharding.mongos.configuration` | Custom config for mongos | `""` | -| `sharding.mongos.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains | `{}` | -| `sharding.mongos.serviceAccountName` | Run sharding mongos Containers under specified K8S SA | `""` | -| `sharding.mongos.affinity.antiAffinityTopologyKey` | Mongos Pods affinity | `kubernetes.io/hostname` | -| `sharding.mongos.affinity.advanced` | Mongos Pods advanced affinity | `{}` | -| `sharding.mongos.tolerations` | Mongos Pods tolerations | `[]` | -| `sharding.mongos.priorityClass` | Mongos Pods priorityClassName | `""` | -| `sharding.mongos.annotations` | Mongos Pods annotations | `{}` | -| `sharding.mongos.labels` | Mongos Pods labels | `{}` | -| `sharding.mongos.nodeSelector` | Mongos Pods nodeSelector labels | `{}` | -| `sharding.mongos.livenessProbe` | Mongos Pod livenessProbe structure | `{}` | -| `sharding.mongos.readinessProbe` | Mongos Pod readinessProbe structure | `{}` | -| `sharding.mongos.podSecurityContext` | Set the security context for a Pod | `{}` | -| `sharding.mongos.containerSecurityContext` | Set the security context for a Container | `{}` | -| `sharding.mongos.runtimeClass` | Mongos Pod runtimeClassName | `""` | -| `sharding.mongos.sidecars` | Mongos Pod sidecars | `{}` | -| `sharding.mongos.sidecarVolumes` | Mongos Pod sidecar volumes | `[]` | -| `sharding.mongos.sidecarPVCs` | Mongos Pod sidecar PVCs | `[]` | -| `sharding.mongos.podDisruptionBudget.maxUnavailable` | Mongos failed Pods maximum quantity | `1` | -| `sharding.mongos.resources.limits.cpu` | Mongos Pods resource limits CPU | `300m` | -| `sharding.mongos.resources.limits.memory` | Mongos Pods resource limits memory | `0.5G` | -| `sharding.mongos.resources.requests.cpu` | Mongos Pods resource requests CPU | `300m` | -| `sharding.mongos.resources.requests.memory` | Mongos Pods resource requests memory | `0.5G` | -| `sharding.mongos.expose.type` | Mongos service type | `ClusterIP` | -| `sharding.mongos.expose.loadBalancerIP` | Set client IP to Load Balancer | `""` | -| `sharding.mongos.expose.servicePerPod` | Create a separate ClusterIP Service for each mongos instance | `false` | -| `sharding.mongos.expose.loadBalancerSourceRanges` | Limit client IP's access to Load Balancer | `{}` | -| `sharding.mongos.expose.annotations` | Mongos service annotations | `{}` | -| `sharding.mongos.expose.labels` | Mongos service labels | `{}` | -| `sharding.mongos.expose.internalTrafficPolicy` | Mongos service internal traffic policy | `Local` | -| `sharding.mongos.expose.externalTrafficPolicy` | Mongos service external traffic policy | `Local` | -| `sharding.mongos.expose.nodePort` | Custom port if exposing mongos via NodePort | `""` | -| `sharding.mongos.hostAliases` | The IP address for Kubernetes host aliases | `[]` | +| `sharding.enabled` | Enable sharding setup | `true` | +| `sharding.balancer.enabled` | Enable/disable balancer | `true` | +| `sharding.configrs.size` | Config ReplicaSet size (pod quantity) | `3` | +| `sharding.configrs.terminationGracePeriodSeconds` | The amount of seconds Kubernetes will wait for a clean replica set Pods termination | `""` | +| `sharding.configrs.externalNodes.host` | The URL or IP address of the external config server instance | `""` | +| `sharding.configrs.externalNodes.port` | The port number of the external config server instance | `""` | +| `sharding.configrs.externalNodes.votes` | The number of [votes :octicons-link-external-16:](https://docs.mongodb.com/manual/reference/replica-configuration/#mongodb-rsconf-rsconf.members-n-.votes) of the [external config server instance](replication-main.md) | `""` | +| `sharding.configrs.externalNodes.priority` | The [priority :octicons-link-external-16:](https://docs.mongodb.com/manual/reference/replica-configuration/#mongodb-rsconf-rsconf.members-n-.priority) of the [external config server instance](replication-main.md) | `""` | +| `sharding.configrs.configuration` | Custom config for mongod in config replica set | `""` | +| `sharding.configrs.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains | `{}` | +| `sharding.configrs.serviceAccountName` | Run sharding configrs Containers under specified K8S SA | `""` | +| `sharding.configrs.affinity.antiAffinityTopologyKey` | Config ReplicaSet Pod affinity | `kubernetes.io/hostname` | +| `sharding.configrs.affinity.advanced` | Config ReplicaSet Pod advanced affinity | `{}` | +| `sharding.configrs.tolerations` | Config ReplicaSet Pod tolerations | `[]` | +| `sharding.configrs.priorityClass` | Config ReplicaSet Pod priorityClassName | `""` | +| `sharding.configrs.annotations` | Config ReplicaSet Pod annotations | `{}` | +| `sharding.configrs.labels` | Config ReplicaSet Pod labels | `{}` | +| `sharding.configrs.nodeSelector` | Config ReplicaSet Pod nodeSelector labels | `{}` | +| `sharding.configrs.livenessProbe` | Config ReplicaSet Pod livenessProbe structure | `{}` | +| `sharding.configrs.readinessProbe` | Config ReplicaSet Pod readinessProbe structure | `{}` | +| `sharding.configrs.storage` | Set cacheSizeRatio or other custom MongoDB storage options | `{}` | +| `sharding.configrs.podSecurityContext` | Set the security context for a Pod | `{}` | +| `sharding.configrs.containerSecurityContext` | Set the security context for a Container | `{}` | +| `sharding.configrs.runtimeClass` | Config ReplicaSet Pod runtimeClassName | `""` | +| `sharding.configrs.sidecars` | Config ReplicaSet Pod sidecars | `{}` | +| `sharding.configrs.sidecarVolumes` | Config ReplicaSet Pod sidecar volumes | `[]` | +| `sharding.configrs.sidecarPVCs` | Config ReplicaSet Pod sidecar PVCs | `[]` | +| `sharding.configrs.podDisruptionBudget.maxUnavailable` | Config ReplicaSet failed Pods maximum quantity | `1` | +| `sharding.configrs.expose.enabled` | Allow access to cfg replica from outside of Kubernetes | `false` | +| `sharding.configrs.expose.type` | Network service access point type | `ClusterIP` | +| `sharding.configrs.expose.loadBalancerIP` | Set client IP to Load Balancer | `""` | +| `sharding.configrs.expose.loadBalancerSourceRanges` | Limit client IP's access to Load Balancer | `{}` | +| `sharding.configrs.expose.annotations` | Config ReplicaSet service annotations | `{}` | +| `sharding.configrs.expose.labels` | Config ReplicaSet service labels | `{}` | +| `sharding.configrs.expose.internalTrafficPolicy` | Config ReplicaSet service internal traffic policy | `Local` | +| `sharding.configrs.expose.externalTrafficPolicy` | Config ReplicaSet service external traffic policy | `Local` | +| `sharding.configrs.resources.limits.cpu` | Config ReplicaSet resource limits CPU | `300m` | +| `sharding.configrs.resources.limits.memory` | Config ReplicaSet resource limits memory | `0.5G` | +| `sharding.configrs.resources.requests.cpu` | Config ReplicaSet resource requests CPU | `300m` | +| `sharding.configrs.resources.requests.memory` | Config ReplicaSet resource requests memory | `0.5G` | +| `sharding.configrs.volumeSpec.hostPath` | Config ReplicaSet hostPath K8S storage | | +| `sharding.configrs.volumeSpec.hostPath.path` | Config ReplicaSet hostPath K8S storage path | `""` | +| `sharding.configrs.volumeSpec.hostPath.type` | Type for hostPath volum | `Directory` | +| `sharding.configrs.volumeSpec.emptyDir` | Config ReplicaSet Pods emptyDir K8S storage | | +| `sharding.configrs.volumeSpec.pvc` | Config ReplicaSet Pods PVC request parameters | | +| `sharding.configrs.volumeSpec.pvc.annotations` | The Kubernetes annotations metadata for Persistent Volume Claim | `{}` | +| `sharding.configrs.volumeSpec.pvc.labels` | The Kubernetes labels metadata for Persistent Volume Claim | `{}` | +| `sharding.configrs.volumeSpec.pvc.storageClassName` | Config ReplicaSet Pods PVC storageClass | `""` | +| `sharding.configrs.volumeSpec.pvc.accessModes` | Config ReplicaSet Pods PVC access policy | `[]` | +| `sharding.configrs.volumeSpec.pvc.resources.requests.storage` | Config ReplicaSet Pods PVC storage size | `3Gi` | +| `sharding.configrs.hostAliases` | The IP address for Kubernetes host aliases | `[]` | +| `sharding.mongos.size` | Mongos size (pod quantity) | `3` | +| `sharding.mongos.terminationGracePeriodSeconds` | The amount of seconds Kubernetes will wait for a clean mongos Pods termination | `""` | +| `sharding.mongos.configuration` | Custom config for mongos | `""` | +| `sharding.mongos.topologySpreadConstraints` | Control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains | `{}` | +| `sharding.mongos.serviceAccountName` | Run sharding mongos Containers under specified K8S SA | `""` | +| `sharding.mongos.affinity.antiAffinityTopologyKey` | Mongos Pods affinity | `kubernetes.io/hostname` | +| `sharding.mongos.affinity.advanced` | Mongos Pods advanced affinity | `{}` | +| `sharding.mongos.tolerations` | Mongos Pods tolerations | `[]` | +| `sharding.mongos.priorityClass` | Mongos Pods priorityClassName | `""` | +| `sharding.mongos.annotations` | Mongos Pods annotations | `{}` | +| `sharding.mongos.labels` | Mongos Pods labels | `{}` | +| `sharding.mongos.nodeSelector` | Mongos Pods nodeSelector labels | `{}` | +| `sharding.mongos.livenessProbe` | Mongos Pod livenessProbe structure | `{}` | +| `sharding.mongos.readinessProbe` | Mongos Pod readinessProbe structure | `{}` | +| `sharding.mongos.podSecurityContext` | Set the security context for a Pod | `{}` | +| `sharding.mongos.containerSecurityContext` | Set the security context for a Container | `{}` | +| `sharding.mongos.runtimeClass` | Mongos Pod runtimeClassName | `""` | +| `sharding.mongos.sidecars` | Mongos Pod sidecars | `{}` | +| `sharding.mongos.sidecarVolumes` | Mongos Pod sidecar volumes | `[]` | +| `sharding.mongos.sidecarPVCs` | Mongos Pod sidecar PVCs | `[]` | +| `sharding.mongos.podDisruptionBudget.maxUnavailable` | Mongos failed Pods maximum quantity | `1` | +| `sharding.mongos.resources.limits.cpu` | Mongos Pods resource limits CPU | `300m` | +| `sharding.mongos.resources.limits.memory` | Mongos Pods resource limits memory | `0.5G` | +| `sharding.mongos.resources.requests.cpu` | Mongos Pods resource requests CPU | `300m` | +| `sharding.mongos.resources.requests.memory` | Mongos Pods resource requests memory | `0.5G` | +| `sharding.mongos.expose.type` | Mongos service type | `ClusterIP` | +| `sharding.mongos.expose.loadBalancerIP` | Set client IP to Load Balancer | `""` | +| `sharding.mongos.expose.servicePerPod` | Create a separate ClusterIP Service for each mongos instance | `false` | +| `sharding.mongos.expose.loadBalancerSourceRanges` | Limit client IP's access to Load Balancer | `{}` | +| `sharding.mongos.expose.annotations` | Mongos service annotations | `{}` | +| `sharding.mongos.expose.labels` | Mongos service labels | `{}` | +| `sharding.mongos.expose.internalTrafficPolicy` | Mongos service internal traffic policy | `Local` | +| `sharding.mongos.expose.externalTrafficPolicy` | Mongos service external traffic policy | `Local` | +| `sharding.mongos.expose.nodePort` | Custom port if exposing mongos via NodePort | `""` | +| `sharding.mongos.hostAliases` | The IP address for Kubernetes host aliases | `[]` | | | | `users.name` | The username of the MongoDB application user | `""` | | `users.db` | Database that the user authenticates against | `""` | diff --git a/charts/psmdb-db/templates/cluster.yaml b/charts/psmdb-db/templates/cluster.yaml index 1004f93b..165bba3d 100644 --- a/charts/psmdb-db/templates/cluster.yaml +++ b/charts/psmdb-db/templates/cluster.yaml @@ -116,6 +116,10 @@ spec: topologySpreadConstraints: {{ $replset.topologySpreadConstraints | toYaml | indent 6 }} {{- end }} +{{- if $replset.replsetOverrides }} + replsetOverrides: +{{ $replset.replsetOverrides | toYaml | indent 6 }} + {{- end }} {{- if $replset.serviceAccountName }} serviceAccountName: {{ $replset.serviceAccountName }} {{- end }} @@ -125,6 +129,10 @@ spec: {{- end }} {{- if $replset.priorityClass }} priorityClassName: {{ $replset.priorityClass }} + {{- end }} + {{- if $replset.primaryPreferTagSelector }} + primaryPreferTagSelector: +{{ $replset.primaryPreferTagSelector | toYaml | indent 6 }} {{- end }} {{- if $replset.annotations }} annotations: @@ -193,7 +201,9 @@ spec: expose: enabled: {{ $replset.expose.enabled }} type: {{ $replset.expose.type }} + {{- if $replset.expose.loadBalancerIP }} loadBalancerIP: {{ $replset.expose.loadBalancerIP }} + {{- end }} {{- if $replset.expose.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{ $replset.expose.loadBalancerSourceRanges | toYaml | indent 8 }} @@ -206,8 +216,12 @@ spec: labels: {{ $replset.expose.labels | toYaml | indent 8 }} {{- end }} + {{- if $replset.expose.internalTrafficPolicy }} internalTrafficPolicy: {{ $replset.expose.internalTrafficPolicy }} + {{- end }} + {{- if $replset.expose.externalTrafficPolicy }} externalTrafficPolicy: {{ $replset.expose.externalTrafficPolicy }} + {{- end }} {{- end }} {{- if $replset.schedulerName }} schedulerName: {{ $replset.schedulerName }} @@ -435,7 +449,9 @@ spec: expose: enabled: {{ .Values.sharding.configrs.expose.enabled }} type: {{ .Values.sharding.configrs.expose.type }} + {{- if .Values.sharding.configrs.expose.loadBalancerIP }} loadBalancerIP: {{ .Values.sharding.configrs.expose.loadBalancerIP }} + {{- end }} {{- if .Values.sharding.configrs.expose.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{ .Values.sharding.configrs.expose.loadBalancerSourceRanges | toYaml | indent 10 }} @@ -448,8 +464,12 @@ spec: labels: {{ .Values.sharding.configrs.expose.labels | toYaml | indent 10 }} {{- end }} + {{- if .Values.sharding.configrs.expose.internalTrafficPolicy }} internalTrafficPolicy: {{ .Values.sharding.configrs.expose.internalTrafficPolicy }} + {{- end }} + {{- if .Values.sharding.configrs.expose.externalTrafficPolicy }} externalTrafficPolicy: {{ .Values.sharding.configrs.expose.externalTrafficPolicy }} + {{- end }} {{- end }} resources: limits: @@ -563,7 +583,9 @@ spec: memory: {{ .Values.sharding.mongos.resources.requests.memory }} expose: type: {{ .Values.sharding.mongos.expose.type }} + {{- if .Values.sharding.mongos.expose.loadBalancerIP }} loadBalancerIP: {{ .Values.sharding.mongos.expose.loadBalancerIP }} + {{- end }} {{- if .Values.sharding.mongos.expose.servicePerPod }} servicePerPod: {{ .Values.sharding.mongos.expose.servicePerPod }} {{- end }} @@ -579,8 +601,12 @@ spec: labels: {{ .Values.sharding.mongos.expose.labels | toYaml | indent 10 }} {{- end }} + {{- if .Values.sharding.mongos.expose.internalTrafficPolicy }} internalTrafficPolicy: {{ .Values.sharding.mongos.expose.internalTrafficPolicy }} + {{- end }} + {{- if .Values.sharding.mongos.expose.externalTrafficPolicy }} externalTrafficPolicy: {{ .Values.sharding.mongos.expose.externalTrafficPolicy }} + {{- end }} {{- if .Values.sharding.mongos.expose.nodePort }} nodePort: {{ .Values.sharding.mongos.expose.nodePort }} {{- end }} diff --git a/charts/psmdb-db/values.yaml b/charts/psmdb-db/values.yaml index 9e480b31..f0779918 100644 --- a/charts/psmdb-db/values.yaml +++ b/charts/psmdb-db/values.yaml @@ -113,6 +113,19 @@ replsets: # maxSkew: 1 # topologyKey: kubernetes.io/hostname # whenUnsatisfiable: DoNotSchedule + # replsetOverrides: + # my-cluster-name-rs0-0: + # host: my-cluster-name-rs0-0.example.net:27017 + # tags: + # key: value-0 + # my-cluster-name-rs0-1: + # host: my-cluster-name-rs0-1.example.net:27017 + # tags: + # key: value-1 + # my-cluster-name-rs0-2: + # host: my-cluster-name-rs0-2.example.net:27017 + # tags: + # key: value-2 affinity: antiAffinityTopologyKey: "kubernetes.io/hostname" # advanced: @@ -126,6 +139,9 @@ replsets: # - S1 # topologyKey: failure-domain.beta.kubernetes.io/zone # tolerations: [] + # primaryPreferTagSelector: + # region: us-west-2 + # zone: us-west-2c # priorityClass: "" # annotations: {} # labels: {}