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