1103 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1103 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|   "$schema": "http://json-schema.org/schema#",
 | |
|   "type": "object",
 | |
|   "properties": {
 | |
| 	"wordpress": {
 | |
| 	  "wordpressUsername": {
 | |
| 		"type": "string",
 | |
| 		"title": "Username",
 | |
| 		"form": true
 | |
| 	  },
 | |
| 	  "wordpressPassword": {
 | |
| 		"type": "string",
 | |
| 		"title": "Password",
 | |
| 		"form": true,
 | |
| 		"description": "Defaults to a random 10-character alphanumeric string if not set"
 | |
| 	  },
 | |
| 	  "wordpressEmail": {
 | |
| 		"type": "string",
 | |
| 		"title": "Admin email",
 | |
| 		"form": true
 | |
| 	  },
 | |
| 	  "wordpressBlogName": {
 | |
| 		"type": "string",
 | |
| 		"title": "Blog Name",
 | |
| 		"form": true
 | |
| 	  }
 | |
|     },
 | |
|     "s3": {
 | |
|       "description": "Configuration of temporary identity",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "description": "Add S3 temporary identity inside your environment",
 | |
|           "default": true
 | |
|         },
 | |
|         "accessKeyId": {
 | |
|           "description": "AWS Access Key",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_ACCESS_KEY_ID}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "endpoint": {
 | |
|           "description": "AWS S3 Endpoint",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "defaultRegion": {
 | |
|           "description": "AWS S3 default region",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "secretAccessKey": {
 | |
|           "description": "AWS S3 secret access key",
 | |
|           "type": "string",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "sessionToken": {
 | |
|           "description": "AWS S3 session Token",
 | |
|           "type": "string",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "ingress": {
 | |
|       "type": "object",
 | |
|       "form": true,
 | |
|       "title": "Ingress Details",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "description": "Enable Ingress",
 | |
|           "type": "boolean",
 | |
|           "default": true,
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "k8s.ingress"
 | |
|           }
 | |
|         },
 | |
|         "hostname": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "Hostname",
 | |
|           "x-onyxia": {
 | |
|             "hidden": false,
 | |
|             "overwriteDefaultWith": "{{project.id}}-mlflow.{{k8s.domain}}"
 | |
|           }
 | |
|         },
 | |
|         "ingressClassName": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "ingressClassName",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{k8s.ingressClassName}}"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "route": {
 | |
|       "type": "object",
 | |
|       "form": true,
 | |
|       "title": "Route details",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "description": "Enable route",
 | |
|           "type": "boolean",
 | |
|           "default": false,
 | |
|           "x-onyxia": {
 | |
|             "hidden": false,
 | |
|             "overwriteDefaultWith": "k8s.route"
 | |
|           }
 | |
|         },
 | |
|         "hostname": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "Hostname",
 | |
|           "x-onyxia": {
 | |
|             "hidden": false,
 | |
|             "overwriteDefaultWith": "{{project.id}}-mlflow.{{k8s.domain}}"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "security": {
 | |
|       "description": "security specific configuration",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "password": {
 | |
|           "type": "string",
 | |
|           "description": "Password",
 | |
|           "default": "changeme",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{project.password}}"
 | |
|           }
 | |
|         },
 | |
|         "allowlist": {
 | |
|           "type": "object",
 | |
|           "description": "IP protection",
 | |
|           "properties": {
 | |
|             "enabled": {
 | |
|               "type": "boolean",
 | |
|               "title": "Enable IP protection",
 | |
|               "description": "Only the configured set of IPs will be able to reach the service",
 | |
|               "default": true,
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.defaultIpProtection"
 | |
|               }
 | |
|             },
 | |
|             "ip": {
 | |
|               "type": "string",
 | |
|               "description": "the white list of IP is whitespace",
 | |
|               "title": "Whitelist of IP",
 | |
|               "default": "0.0.0.0",
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "{{user.ip}}"
 | |
|               },
 | |
|               "hidden": {
 | |
|                 "value": false,
 | |
|                 "path": "security/allowlist/enabled"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         "networkPolicy": {
 | |
|           "type": "object",
 | |
|           "description": "Define access policy to the service",
 | |
|           "properties": {
 | |
|             "enabled": {
 | |
|               "type": "boolean",
 | |
|               "title": "Enable network policy",
 | |
|               "description": "Only pod from the same namespace will be allowed",
 | |
|               "default": true,
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.defaultNetworkPolicy"
 | |
|               }
 | |
|             },
 | |
|             "from": {
 | |
|               "type": "array",
 | |
|               "description": "Array of source allowed to have network access to your service",
 | |
|               "default": [
 | |
|                 {
 | |
|                   "namespaceSelector": {
 | |
|                     "matchLabels": {
 | |
|                       "kubernetes.io/metadata.name": "ingress"
 | |
|                     }
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.from"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "resources": {
 | |
|       "description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "requests": {
 | |
|           "description": "Guaranteed resources",
 | |
|           "type": "object",
 | |
|           "properties": {
 | |
|             "cpu": {
 | |
|               "description": "The amount of cpu guaranteed",
 | |
|               "title": "CPU",
 | |
|               "type": "string",
 | |
|               "default": "100m",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 50,
 | |
|               "sliderMax": 40000,
 | |
|               "sliderStep": 50,
 | |
|               "sliderUnit": "m",
 | |
|               "sliderExtremity": "down",
 | |
|               "sliderExtremitySemantic": "guaranteed",
 | |
|               "sliderRangeId": "cpu"
 | |
|             },
 | |
|             "memory": {
 | |
|               "description": "The amount of memory guaranteed",
 | |
|               "title": "memory",
 | |
|               "type": "string",
 | |
|               "default": "2Gi",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 1,
 | |
|               "sliderMax": 200,
 | |
|               "sliderStep": 1,
 | |
|               "sliderUnit": "Gi",
 | |
|               "sliderExtremity": "down",
 | |
|               "sliderExtremitySemantic": "guaranteed",
 | |
|               "sliderRangeId": "memory"
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         "limits": {
 | |
|           "description": "max resources",
 | |
|           "type": "object",
 | |
|           "properties": {
 | |
|             "cpu": {
 | |
|               "description": "The maximum amount of cpu",
 | |
|               "title": "CPU",
 | |
|               "type": "string",
 | |
|               "default": "30000m",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 50,
 | |
|               "sliderMax": 40000,
 | |
|               "sliderStep": 50,
 | |
|               "sliderUnit": "m",
 | |
|               "sliderExtremity": "up",
 | |
|               "sliderExtremitySemantic": "Maximum",
 | |
|               "sliderRangeId": "cpu"
 | |
|             },
 | |
|             "memory": {
 | |
|               "description": "The maximum amount of memory",
 | |
|               "title": "Memory",
 | |
|               "type": "string",
 | |
|               "default": "50Gi",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 1,
 | |
|               "sliderMax": 200,
 | |
|               "sliderStep": 1,
 | |
|               "sliderUnit": "Gi",
 | |
|               "sliderExtremity": "up",
 | |
|               "sliderExtremitySemantic": "Maximum",
 | |
|               "sliderRangeId": "memory"
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "mariadb": {
 | |
|       "type": "object",
 | |
|       "title": "MariaDB Details",
 | |
|       "form": true,
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "title": "Use a new MariaDB database hosted in the cluster",
 | |
|           "form": true,
 | |
|           "description": "Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database switch this off and configure the external database details"
 | |
|         },
 | |
|         "primary": {
 | |
|           "type": "object",
 | |
|           "properties": {
 | |
|             "persistence": {
 | |
|               "type": "object",
 | |
|               "properties": {
 | |
|                 "size": {
 | |
|                   "type": "string",
 | |
|                   "title": "Volume Size",
 | |
|                   "form": true,
 | |
|                   "hidden": {
 | |
|                     "value": false,
 | |
|                     "path": "mariadb/primary/persistence/enabled"
 | |
|                   },
 | |
|                   "render": "slider",
 | |
|                   "sliderMin": 1,
 | |
|                   "sliderMax": 100,
 | |
|                   "sliderUnit": "Gi"
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
| 	  
 | |
|     "resources": {
 | |
|       "description": "Your service will have at least the requested resources and never more than its limits. No limit for a resource and you can consume everything left on the host machine.",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "requests": {
 | |
|           "description": "Guaranteed resources",
 | |
|           "type": "object",
 | |
|           "properties": {
 | |
|             "cpu": {
 | |
|               "description": "The amount of cpu guaranteed",
 | |
|               "title": "CPU",
 | |
|               "type": "string",
 | |
|               "default": "100m",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 50,
 | |
|               "sliderMax": 40000,
 | |
|               "sliderStep": 50,
 | |
|               "sliderUnit": "m",
 | |
|               "sliderExtremity": "down",
 | |
|               "sliderExtremitySemantic": "guaranteed",
 | |
|               "sliderRangeId": "cpu",
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.resources.cpuRequest",
 | |
|                 "useRegionSliderConfig": "cpu"
 | |
|               }
 | |
|             },
 | |
|             "memory": {
 | |
|               "description": "The amount of memory guaranteed",
 | |
|               "title": "memory",
 | |
|               "type": "string",
 | |
|               "default": "2Gi",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 1,
 | |
|               "sliderMax": 200,
 | |
|               "sliderStep": 1,
 | |
|               "sliderUnit": "Gi",
 | |
|               "sliderExtremity": "down",
 | |
|               "sliderExtremitySemantic": "guaranteed",
 | |
|               "sliderRangeId": "memory",
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.resources.memoryRequest",
 | |
|                 "useRegionSliderConfig": "memory"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         "limits": {
 | |
|           "description": "max resources",
 | |
|           "type": "object",
 | |
|           "properties": {
 | |
|             "cpu": {
 | |
|               "description": "The maximum amount of cpu",
 | |
|               "title": "CPU",
 | |
|               "type": "string",
 | |
|               "default": "30000m",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 50,
 | |
|               "sliderMax": 40000,
 | |
|               "sliderStep": 50,
 | |
|               "sliderUnit": "m",
 | |
|               "sliderExtremity": "up",
 | |
|               "sliderExtremitySemantic": "Maximum",
 | |
|               "sliderRangeId": "cpu",
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.resources.cpuLimit",
 | |
|                 "useRegionSliderConfig": "cpu"
 | |
|               }
 | |
|             },
 | |
|             "memory": {
 | |
|               "description": "The maximum amount of memory",
 | |
|               "title": "Memory",
 | |
|               "type": "string",
 | |
|               "default": "50Gi",
 | |
|               "render": "slider",
 | |
|               "sliderMin": 1,
 | |
|               "sliderMax": 200,
 | |
|               "sliderStep": 1,
 | |
|               "sliderUnit": "Gi",
 | |
|               "sliderExtremity": "up",
 | |
|               "sliderExtremitySemantic": "Maximum",
 | |
|               "sliderRangeId": "memory",
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.resources.memoryLimit",
 | |
|                 "useRegionSliderConfig": "memory"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "discovery": {
 | |
|       "description": "configure your service to autodetect some ressources.",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "hive": {
 | |
|           "type": "boolean",
 | |
|           "title": "Enable hive metastore discovery",
 | |
|           "description": "discover your hive metastore service",
 | |
|           "default": true
 | |
|         },
 | |
|         "mlflow": {
 | |
|           "type": "boolean",
 | |
|           "title": "Enable mlflow discovery",
 | |
|           "description": "discover your mlflow service",
 | |
|           "default": true
 | |
|         },
 | |
|         "metaflow": {
 | |
|           "type": "boolean",
 | |
|           "title": "Enable metaflow discovery",
 | |
|           "description": "discover your metaflow service",
 | |
|           "default": true
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "service": {
 | |
|       "description": "spark-history specific configuration",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "image": {
 | |
|           "description": "image docker",
 | |
|           "type": "object",
 | |
|           "properties": {
 | |
|             "pullPolicy": {
 | |
|               "type": "string",
 | |
|               "description": "option when pulling the docker image",
 | |
|               "default": "IfNotPresent",
 | |
|               "enum": [
 | |
|                 "IfNotPresent",
 | |
|                 "Always",
 | |
|                 "Never"
 | |
|               ]
 | |
|             },
 | |
|             "version": {
 | |
|               "description": "vscode supported version",
 | |
|               "type": "string",
 | |
|               "default": "inseefrlab/onyxia-vscode-python:py3.11.6",
 | |
|               "listEnum": [
 | |
|                 "inseefrlab/onyxia-vscode-python:py3.11.6",
 | |
|                 "inseefrlab/onyxia-vscode-python:py3.10.13"
 | |
|               ],
 | |
|               "render": "list",
 | |
|               "hidden": {
 | |
|                 "value": true,
 | |
|                 "path": "service/image/custom/enabled"
 | |
|               }
 | |
|             },
 | |
|             "custom": {
 | |
|               "description": "use a custom vscode docker image",
 | |
|               "type": "object",
 | |
|               "properties": {
 | |
|                 "enabled": {
 | |
|                   "title": "custom image",
 | |
|                   "type": "boolean",
 | |
|                   "description": "use a custom vscode docker images",
 | |
|                   "default": false
 | |
|                 },
 | |
|                 "version": {
 | |
|                   "description": "vscode unsupported version",
 | |
|                   "type": "string",
 | |
|                   "default": "inseefrlab/onyxia-vscode-python:py3.11.6",
 | |
|                   "hidden": {
 | |
|                     "value": false,
 | |
|                     "path": "service/image/custom/enabled"
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "persistence": {
 | |
|       "description": "Configuration for persistence",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "description": "Create a persistent volume",
 | |
|           "default": true
 | |
|         },
 | |
|         "size": {
 | |
|           "type": "string",
 | |
|           "title": "Persistent volume size",
 | |
|           "description": "Size of the persistent volume",
 | |
|           "default": "10Gi",
 | |
|           "form": true,
 | |
|           "render": "slider",
 | |
|           "sliderMin": 1,
 | |
|           "sliderMax": 100,
 | |
|           "sliderStep": 1,
 | |
|           "sliderUnit": "Gi",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "region.resources.disk",
 | |
|             "useRegionSliderConfig": "disk"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "persistence/enabled"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "security": {
 | |
|       "description": "security specific configuration",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "password": {
 | |
|           "type": "string",
 | |
|           "description": "Password",
 | |
|           "default": "changeme",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{project.password}}"
 | |
|           }
 | |
|         },
 | |
|         "allowlist": {
 | |
|           "type": "object",
 | |
|           "description": "IP protection",
 | |
|           "properties": {
 | |
|             "enabled": {
 | |
|               "type": "boolean",
 | |
|               "title": "Enable IP protection",
 | |
|               "description": "Only the configured set of IPs will be able to reach the service",
 | |
|               "default": true,
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.defaultIpProtection"
 | |
|               }
 | |
|             },
 | |
|             "ip": {
 | |
|               "type": "string",
 | |
|               "description": "the white list of IP is whitespace",
 | |
|               "title": "Whitelist of IP",
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "{{user.ip}}"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         },
 | |
|         "networkPolicy": {
 | |
|           "type": "object",
 | |
|           "description": "Define access policy to the service",
 | |
|           "properties": {
 | |
|             "enabled": {
 | |
|               "type": "boolean",
 | |
|               "title": "Enable network policy",
 | |
|               "description": "Only pod from the same namespace will be allowed",
 | |
|               "default": true,
 | |
|               "x-onyxia": {
 | |
|                 "overwriteDefaultWith": "region.defaultNetworkPolicy"
 | |
|               }
 | |
|             },
 | |
|             "from": {
 | |
|               "type": "array",
 | |
|               "description": "Array of source allowed to have network access to your service",
 | |
|               "default": [],
 | |
|               "x-onyxia": {
 | |
|                 "hidden": true,
 | |
|                 "overwriteDefaultWith": "region.from"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "kubernetes": {
 | |
|       "description": "configuration of your kubernetes access",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "description": "allow your service to access your namespace ressources",
 | |
|           "default": true
 | |
|         },
 | |
|         "role": {
 | |
|           "type": "string",
 | |
|           "description": "bind your service account to this kubernetes default role",
 | |
|           "default": "view",
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "kubernetes/enabled"
 | |
|           },
 | |
|           "enum": [
 | |
|             "view",
 | |
|             "edit",
 | |
|             "admin"
 | |
|           ]
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "git": {
 | |
|       "description": "Git user configuration",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "description": "Add git config inside your environment",
 | |
|           "default": true
 | |
|         },
 | |
|         "name": {
 | |
|           "type": "string",
 | |
|           "description": "user name for git",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{git.name}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "git/enabled"
 | |
|           }
 | |
|         },
 | |
|         "email": {
 | |
|           "type": "string",
 | |
|           "description": "user email for git",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{git.email}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "git/enabled"
 | |
|           }
 | |
|         },
 | |
|         "cache": {
 | |
|           "type": "string",
 | |
|           "description": "duration in seconds of the credentials cache duration",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{git.credentials_cache_duration}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "git/enabled"
 | |
|           }
 | |
|         },
 | |
|         "token": {
 | |
|           "type": "string",
 | |
|           "description": "personal access token",
 | |
|           "default": "",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{git.token}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "git/enabled"
 | |
|           }
 | |
|         },
 | |
|         "repository": {
 | |
|           "type": "string",
 | |
|           "description": "projet",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{git.project}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "git/enabled"
 | |
|           }
 | |
|         },
 | |
|         "branch": {
 | |
|           "type": "string",
 | |
|           "description": "Branch automatically checked out",
 | |
|           "default": "",
 | |
|           "hidden": {
 | |
|             "value": "",
 | |
|             "path": "git/repository"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "vault": {
 | |
|       "description": "Configuration of vault client",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "description": "Add vault temporary identity inside your environment",
 | |
|           "default": true
 | |
|         },
 | |
|         "token": {
 | |
|           "description": "token vault",
 | |
|           "type": "string",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{vault.VAULT_TOKEN}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "vault/enabled"
 | |
|           }
 | |
|         },
 | |
|         "url": {
 | |
|           "description": "url of vault server",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{vault.VAULT_ADDR}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "vault/enabled"
 | |
|           }
 | |
|         },
 | |
|         "mount": {
 | |
|           "description": "mount of the v2 secret engine",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{vault.VAULT_MOUNT}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "vault/enabled"
 | |
|           }
 | |
|         },
 | |
|         "directory": {
 | |
|           "description": "top level directory",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{vault.VAULT_TOP_DIR}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "vault/enabled"
 | |
|           }
 | |
|         },
 | |
|         "secret": {
 | |
|           "description": "the path of the secret to convert into a list of environment variables",
 | |
|           "type": "string",
 | |
|           "default": "",
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "vault/enabled"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "s3": {
 | |
|       "description": "Configuration of temporary identity",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "type": "boolean",
 | |
|           "description": "Add S3 temporary identity inside your environment",
 | |
|           "default": true
 | |
|         },
 | |
|         "accessKeyId": {
 | |
|           "description": "AWS Access Key",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "s3.AWS_ACCESS_KEY_ID"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "endpoint": {
 | |
|           "description": "AWS S3 Endpoint",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_S3_ENDPOINT}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "defaultRegion": {
 | |
|           "description": "AWS S3 default region",
 | |
|           "type": "string",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_DEFAULT_REGION}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "secretAccessKey": {
 | |
|           "description": "AWS S3 secret access key",
 | |
|           "type": "string",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_SECRET_ACCESS_KEY}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         },
 | |
|         "sessionToken": {
 | |
|           "description": "AWS S3 session Token",
 | |
|           "type": "string",
 | |
|           "render": "password",
 | |
|           "x-onyxia": {
 | |
|             "overwriteDefaultWith": "{{s3.AWS_SESSION_TOKEN}}"
 | |
|           },
 | |
|           "hidden": {
 | |
|             "value": false,
 | |
|             "path": "s3/enabled"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "ingress": {
 | |
|       "type": "object",
 | |
|       "form": true,
 | |
|       "title": "Ingress Details",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "description": "Enable Ingress",
 | |
|           "type": "boolean",
 | |
|           "default": true,
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "k8s.ingress"
 | |
|           }
 | |
|         },
 | |
|         "hostname": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "Hostname",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
 | |
|           }
 | |
|         },
 | |
|         "userHostname": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "Hostname",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
 | |
|           }
 | |
|         },
 | |
|         "ingressClassName": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "ingressClassName",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{k8s.ingressClassName}}"
 | |
|           }
 | |
|         },
 | |
|         "useCertManager": {
 | |
|           "type": "boolean",
 | |
|           "description": "Whether CertManager should be used to generate a certificate",
 | |
|           "default": false,
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "k8s.useCertManager"
 | |
|           }
 | |
|         },
 | |
|         "certManagerClusterIssuer":{
 | |
|           "type": "string",
 | |
|           "description": "certManager cluster issuer",
 | |
|           "title": "CertManager Cluster Issuer",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "k8s.certManagerClusterIssuer"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "route": {
 | |
|       "type": "object",
 | |
|       "form": true,
 | |
|       "title": "Route details",
 | |
|       "properties": {
 | |
|         "enabled": {
 | |
|           "description": "Enable route",
 | |
|           "type": "boolean",
 | |
|           "default": false,
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "k8s.route"
 | |
|           }
 | |
|         },
 | |
|         "hostname": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "Hostname",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-0.{{k8s.domain}}"
 | |
|           }
 | |
|         },
 | |
|         "userHostname": {
 | |
|           "type": "string",
 | |
|           "form": true,
 | |
|           "title": "Hostname",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{project.id}}-{{k8s.randomSubdomain}}-user.{{k8s.domain}}"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "networking": {
 | |
|       "type": "object",
 | |
|       "form": true,
 | |
|       "title": "Networking detail",
 | |
|       "properties": {
 | |
|         "user": {
 | |
|           "type": "object",
 | |
|           "description": "user defined port",
 | |
|           "properties": {
 | |
|             "enabled": {
 | |
|               "type": "boolean",
 | |
|               "title": "Enable a custom service port",
 | |
|               "description": "Enable a custom service port",
 | |
|               "default": false
 | |
|             },
 | |
|             "port": {
 | |
|               "type": "integer",
 | |
|               "description": "port of the custom service",
 | |
|               "title": "Custom service port",
 | |
|               "hidden": {
 | |
|                 "value": false,
 | |
|                 "path": "networking/user/enabled"
 | |
|               },
 | |
|               "default": 5000
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "init": {
 | |
|       "description": "Init parameters",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "regionInit": {
 | |
|           "type": "string",
 | |
|           "description": "region initialization script",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{k8s.initScriptUrl}}"
 | |
|           }
 | |
|         },
 | |
|         "regionInitCheckSum": {
 | |
|           "type": "string",
 | |
|           "description": "region initialization script",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{k8s.initScriptCheckSum}}"
 | |
|           }
 | |
|         },
 | |
|         "personalInit": {
 | |
|           "type": "string",
 | |
|           "description": "user initialization script",
 | |
|           "default": ""
 | |
|         },
 | |
|         "personalInitArgs": {
 | |
|           "type": "string",
 | |
|           "description": "args for user initialization script",
 | |
|           "default": ""
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "repository": {
 | |
|       "description": "python repositories for pip and conda",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "pipRepository": {
 | |
|           "type": "string",
 | |
|           "description": "python repository for pip",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{packageRepositoryInjection.pypiProxyUrl}}"
 | |
|           }
 | |
|         },
 | |
|         "condaRepository": {
 | |
|           "type": "string",
 | |
|           "description": "python repository for pip",
 | |
|           "default": "",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "{{packageRepositoryInjection.condaProxyUrl}}"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "startupProbe": {
 | |
|       "type": "object",
 | |
|       "description": "Start up probe",
 | |
|       "default": {},
 | |
|       "x-onyxia": {
 | |
|         "hidden": true,
 | |
|         "overwriteDefaultWith": "region.startupProbe"
 | |
|       }
 | |
|     },
 | |
|     "tolerations": {
 | |
|       "type": "array",
 | |
|       "description": "Array of tolerations",
 | |
|       "default": [],
 | |
|       "x-onyxia": {
 | |
|         "hidden": true,
 | |
|         "overwriteDefaultWith": "region.tolerations"
 | |
|       }
 | |
|     },
 | |
|     "nodeSelector": {
 | |
|       "type": "object",
 | |
|       "description": "NodeSelector",
 | |
|       "default": {},
 | |
|       "x-onyxia": {
 | |
|         "hidden": true,
 | |
|         "overwriteDefaultWith": "region.nodeSelector"
 | |
|       }
 | |
|     },
 | |
|     "userPreferences": {
 | |
|       "description": "User Preferences",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "darkMode": {
 | |
|           "type": "boolean",
 | |
|           "description": "dark mode is or is not enabled",
 | |
|           "default": false,
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "user.darkMode"
 | |
|           }
 | |
|         },
 | |
|         "language": {
 | |
|           "type": "string",
 | |
|           "description": "Preferred language",
 | |
|           "default": "en",
 | |
|           "x-onyxia": {
 | |
|             "hidden": true,
 | |
|             "overwriteDefaultWith": "user.lang"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     },
 | |
|     "global": {
 | |
|       "description": "Suspend",
 | |
|       "type": "object",
 | |
|       "properties": {
 | |
|         "suspend": {
 | |
|           "type": "boolean",
 | |
|           "description": "Suspend this service",
 | |
|           "default": false,
 | |
|           "x-onyxia": {
 | |
|             "hidden": true
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| } |