aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/common/mongodb/values.schema.json
diff options
context:
space:
mode:
Diffstat (limited to 'kubernetes/common/mongodb/values.schema.json')
-rw-r--r--kubernetes/common/mongodb/values.schema.json232
1 files changed, 232 insertions, 0 deletions
diff --git a/kubernetes/common/mongodb/values.schema.json b/kubernetes/common/mongodb/values.schema.json
new file mode 100644
index 0000000000..3eb6a64ce7
--- /dev/null
+++ b/kubernetes/common/mongodb/values.schema.json
@@ -0,0 +1,232 @@
+{
+ "$schema": "http://json-schema.org/schema#",
+ "type": "object",
+ "properties": {
+ "architecture": {
+ "type": "string",
+ "title": "MongoDB® architecture",
+ "form": true,
+ "description": "Allowed values: `standalone` or `replicaset`"
+ },
+ "auth": {
+ "type": "object",
+ "title": "Authentication configuration",
+ "form": true,
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "title": "Enable Authentication",
+ "form": true
+ },
+ "rootUser": {
+ "type": "string",
+ "title": "MongoDB® admin user",
+ "form": true,
+ "description": "Name of the admin user. Default is root"
+ },
+ "rootPassword": {
+ "type": "string",
+ "title": "MongoDB® admin password",
+ "form": true,
+ "description": "Defaults to a random 10-character alphanumeric string if not set",
+ "hidden": {
+ "value": false,
+ "path": "auth/enabled"
+ }
+ },
+ "database": {
+ "type": "string",
+ "title": "MongoDB® custom database",
+ "description": "Name of the custom database to be created during the 1st initialization of MongoDB®",
+ "form": true
+ },
+ "username": {
+ "type": "string",
+ "title": "MongoDB® custom user",
+ "description": "Name of the custom user to be created during the 1st initialization of MongoDB®. This user only has permissions on the MongoDB® custom database",
+ "form": true
+ },
+ "password": {
+ "type": "string",
+ "title": "Password for MongoDB® custom user",
+ "form": true,
+ "description": "Defaults to a random 10-character alphanumeric string if not set",
+ "hidden": {
+ "value": false,
+ "path": "auth/enabled"
+ }
+ },
+ "replicaSetKey": {
+ "type": "string",
+ "title": "Key used for replica set authentication",
+ "form": true,
+ "description": "Defaults to a random 10-character alphanumeric string if not set",
+ "hidden": {
+ "value": "standalone",
+ "path": "architecture"
+ }
+ }
+ }
+ },
+ "replicaCount": {
+ "type": "integer",
+ "form": true,
+ "title": "Number of MongoDB® replicas",
+ "hidden": {
+ "value": "standalone",
+ "path": "architecture"
+ }
+ },
+ "configuration": {
+ "type": "string",
+ "title": "MongoDB® Custom Configuration",
+ "form": true,
+ "render": "textArea"
+ },
+ "arbiter": {
+ "type": "object",
+ "title": "Arbiter configuration",
+ "form": true,
+ "properties": {
+ "configuration": {
+ "type": "string",
+ "title": "Arbiter Custom Configuration",
+ "form": true,
+ "render": "textArea",
+ "hidden": {
+ "value": "standalone",
+ "path": "architecture"
+ }
+ }
+ }
+ },
+ "networkPolicy": {
+ "type": "object",
+ "title": "Network policy configuration",
+ "form": true,
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "form": true,
+ "title": "Enable network policy",
+ "description": "Enable network policy using Kubernetes native NP",
+ "hidden": {
+ "value": false,
+ "path": "networkPolicy/enabled"
+ }
+ },
+ "ingress": {
+ "type": "object",
+ "properties": {
+ "namespaceSelector": {
+ "type": "object",
+ "title": "Namespace selector label that is allowed to access this instance",
+ "hidden": {
+ "value": {},
+ "path": "networkPolicy/ingress/namespaceSelector"
+ }
+ },
+ "podSelector": {
+ "type": "object",
+ "title": "Pod selector label that is allowed to access this instance",
+ "hidden": {
+ "value": {},
+ "path": "networkPolicy/ingress/podSelector"
+ }
+ },
+ "customRules": {
+ "type": "array",
+ "title": "Custom rules for ingress network policy",
+ "hidden": {
+ "value": [],
+ "path": "networkPolicy/ingress/customRules"
+ }
+ }
+ }
+ },
+ "egress": {
+ "type": "object",
+ "properties": {
+ "customRules": {
+ "type": "array",
+ "title": "Custom rules for egress network policy",
+ "hidden": {
+ "value": [],
+ "path": "networkPolicy/egress/customRules"
+ }
+ }
+ }
+ }
+ }
+ },
+ "persistence": {
+ "type": "object",
+ "title": "Persistence configuration",
+ "form": true,
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "form": true,
+ "title": "Enable persistence",
+ "description": "Enable persistence using Persistent Volume Claims"
+ },
+ "size": {
+ "type": "string",
+ "title": "Persistent Volume Size",
+ "form": true,
+ "render": "slider",
+ "sliderMin": 1,
+ "sliderMax": 100,
+ "sliderUnit": "Gi",
+ "hidden": {
+ "value": false,
+ "path": "persistence/enabled"
+ }
+ }
+ }
+ },
+ "volumePermissions": {
+ "type": "object",
+ "hidden": {
+ "value": false,
+ "path": "persistence/enabled"
+ },
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "form": true,
+ "title": "Enable Init Containers",
+ "description": "Use an init container to set required folder permissions on the data volume before mounting it in the final destination"
+ }
+ }
+ },
+ "metrics": {
+ "type": "object",
+ "form": true,
+ "title": "Prometheus metrics details",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "title": "Create Prometheus metrics exporter",
+ "description": "Create a side-car container to expose Prometheus metrics",
+ "form": true
+ },
+ "serviceMonitor": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "title": "Create Prometheus Operator ServiceMonitor",
+ "description": "Create a ServiceMonitor to track metrics using Prometheus Operator",
+ "form": true,
+ "hidden": {
+ "value": false,
+ "path": "metrics/enabled"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}