{ "$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" } } } } } } } }