{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "http://example.com/example.json", "type": "object", "title": "The root schema", "description": "The root schema comprises the entire JSON document.", "default": {}, "examples": [ { "gitCloneUrl": "https://github.com/gimlet-io/hugo-site.git", "buildImage": "node:latest", "buildScript": "npm install && npm install -g gatsby-cli && gatsby build", "builtAssets": "public/" } ], "required": [ "gitCloneUrl", "buildImage", "buildScript", "builtAssets" ], "properties": { "gitCloneUrl": { "$id": "#/properties/gitCloneUrl", "type": "string", "title": "Repo url", "description": "The static site's git repository", "default": "https://github.com/gimlet-io/reactjs-test-app.git" }, "buildImage": { "$id": "#/properties/buildImage", "type": "string", "title": "Build image", "description": "The image that will be used for the build proccess", "default": "node:latest" }, "buildScript": { "$id": "#/properties/buildScript", "type": "string", "title": "Build script", "description": "Commands required for the build to be completed", "default": "# !/usr/bin/env bash\n\nnpm install\nnpm run build" }, "builtAssets": { "$id": "#/properties/builtAssets", "type": "string", "title": "Built assets", "description": "The folder containing the build's generated files", "default": "build/" }, "ingress": { "$id": "#/properties/ingress", "type": "object", "title": "Incoming traffic", "description": "", "default": {}, "examples": [ { "tlsEnabled": false, "annotations": { "kubernetes.io/ingress.class": "nginx" }, "host": "my-release.mycompany.com" } ], "required": [], "properties": { "host": { "$id": "#/properties/ingress/properties/host", "type": "string", "title": "Host Name", "description": "Where your application will be accessible", "default": "", "examples": [ "my-release.mycompany.com" ] }, "path": { "$id": "#/properties/ingress/properties/ingressPath", "type": "string", "title": "Path", "description": "The API path where your service is accessible", "default": "/", "examples": [ "/api/myservice" ] }, "tlsEnabled": { "$id": "#/properties/ingress/properties/tlsEnabled", "type": "boolean", "title": "HTTPS", "description": "", "default": false, "examples": [ false ] }, "annotations": { "$id": "#/properties/ingress/properties/annotations", "type": "object", "title": "Annotations", "description": "Annotations are used to control ingress behavior. See the full list for the Ingress Nginx project at https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/. Use the `cert-manager.io/cluster-issuer:\"letsencrypt\"` one to request TLS certificates, `kubernetes.io/ingress.class: \"nginx\"` to select an ingress controller.", "default": {}, "examples": [ { "kubernetes.io/ingress.class": "nginx" } ], "additionalProperties": true } } } }, "additionalProperties": true }