From 90ee94cf11cfaae661908479356c8a7e0262cadd Mon Sep 17 00:00:00 2001 From: kjeld Schouten-Lebbing Date: Mon, 13 Sep 2021 11:12:18 +0200 Subject: [PATCH] move more standard questions.yaml portions to includes --- charts/incubator/testbed/Chart.yaml | 2 +- charts/incubator/testbed/SCALE/questions.yaml | 620 +----------------- templates/questions/{vpn.yaml => addons.yaml} | 0 templates/questions/containerConfig.yaml | 81 +++ templates/questions/controllerExpert.yaml | 64 ++ templates/questions/groups.yaml | 23 + templates/questions/ingressList.yaml | 169 +++++ templates/questions/persistenceList.yaml | 162 +++++ templates/questions/serviceList.yaml | 109 +++ tools/build-release.sh | 37 +- 10 files changed, 651 insertions(+), 616 deletions(-) rename templates/questions/{vpn.yaml => addons.yaml} (100%) create mode 100644 templates/questions/containerConfig.yaml create mode 100644 templates/questions/controllerExpert.yaml create mode 100644 templates/questions/groups.yaml create mode 100644 templates/questions/ingressList.yaml create mode 100644 templates/questions/persistenceList.yaml create mode 100644 templates/questions/serviceList.yaml diff --git a/charts/incubator/testbed/Chart.yaml b/charts/incubator/testbed/Chart.yaml index 60a5c571f38..3f3f3f15c17 100644 --- a/charts/incubator/testbed/Chart.yaml +++ b/charts/incubator/testbed/Chart.yaml @@ -24,4 +24,4 @@ name: testbed sources: - https://github.com/Jackett/Jackett type: application -version: 7.0.14 +version: 7.0.15 diff --git a/charts/incubator/testbed/SCALE/questions.yaml b/charts/incubator/testbed/SCALE/questions.yaml index b8ec02de029..4c0c262b058 100644 --- a/charts/incubator/testbed/SCALE/questions.yaml +++ b/charts/incubator/testbed/SCALE/questions.yaml @@ -1,26 +1,4 @@ -groups: - - name: "Container Image" - description: "Image to be used for container" - - name: "Controller" - description: "Configure workload deployment" - - name: "Container Configuration" - description: "additional container configuration" - - name: "App Configuration" - description: "App specific config options" - - name: "Networking and Services" - description: "Configure Network and Services for container" - - name: "Storage and Persistence" - description: "Persist and share data that is separate from the container" - - name: "Ingress" - description: "Ingress Configuration" - - name: "Security and Permissions" - description: "Configure security context and permissions" - - name: "Resources and Devices" - description: "Specify resources/devices to be allocated to workload" - - name: "Addons" - description: "Addon Configuration" - - name: "Advanced" - description: "Advanced Configuration" +# Include{groups} portals: web_portal: protocols: @@ -86,70 +64,7 @@ questions: description: "RollingUpdate: Create new pods and then kill old ones" - value: "OnDelete" description: "(Legacy) OnDelete: ignore .spec.template changes" - - variable: advanced - label: "Show Expert Configuration Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: extraArgs - label: "Extra Args" - schema: - type: list - default: [] - items: - - variable: argItem - label: "Arg" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: labelsList - label: "Controller Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: " Controller Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string +# Include{controllerExpert} - variable: env group: "Container Configuration" @@ -171,88 +86,7 @@ questions: type: string default: "002" - # Configure Enviroment Variables - - variable: envList - label: "Image environment" - group: "Container Configuration" - schema: - type: list - default: [] - items: - - variable: envItem - label: "Environment Variable" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: expertpodconf - group: "Container Configuration" - label: "Show Expert Config" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: termination - group: "Container Configuration" - label: "Termination settings" - schema: - type: dict - attrs: - - variable: gracePeriodSeconds - label: "Grace Period Seconds" - schema: - type: int - default: 10 - - variable: podLabelsList - group: "Container Configuration" - label: "Pod Labels" - schema: - type: list - default: [] - items: - - variable: podLabelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - - variable: podAnnotationsList - group: "Container Configuration" - label: "Pod Annotations" - schema: - type: list - default: [] - items: - - variable: podAnnotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string +# Include{containerConfig} - variable: service group: "Networking and Services" @@ -427,117 +261,7 @@ questions: schema: type: string - - - - variable: serviceList - label: "Add Manual Custom Services" - group: "Networking and Services" - schema: - type: list - default: [] - items: - - variable: serviceListEntry - label: "Custom Service" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the service" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: type - label: "Service Type" - description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" - schema: - type: string - default: "NodePort" - enum: - - value: "NodePort" - description: "NodePort" - - value: "ClusterIP" - description: "ClusterIP" - - value: "LoadBalancer" - description: "LoadBalancer" - - variable: loadBalancerIP - label: "LoadBalancer IP" - description: "LoadBalancerIP" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: string - default: "" - - variable: externalIPs - label: "External IP's" - description: "External IP's" - schema: - show_if: [["type", "=", "LoadBalancer"]] - type: list - default: [] - items: - - variable: externalIP - label: "External IP" - schema: - type: string - - variable: portsList - label: "Additional Service Ports" - schema: - type: list - default: [] - items: - - variable: portsListEntry - label: "Custom ports" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the port" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Port Name" - schema: - type: string - default: "" - - variable: protocol - label: "Port Type" - schema: - type: string - default: "TCP" - enum: - - value: HTTP - description: "HTTP" - - value: "HTTPS" - description: "HTTPS" - - value: TCP - description: "TCP" - - value: "UDP" - description: "UDP" - - variable: targetPort - label: "Target Port" - description: "This port exposes the container port on the service" - schema: - type: int - required: true - - variable: port - label: "Container Port" - schema: - type: int - required: true - - variable: nodePort - label: "Node Port (Optional)" - description: "This port gets exposed to the node. Only considered when service type is NodePort" - schema: - type: int - min: 9000 - max: 65535 +# Include{serviceList} - variable: persistence label: "Integrated Persistent Storage" @@ -701,168 +425,8 @@ questions: label: "Value" schema: type: string - - variable: persistenceList - label: "Additional app storage" - group: "Storage and Persistence" - schema: - type: list - default: [] - items: - - variable: persistenceListEntry - label: "Custom Storage" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable the storage" - schema: - type: boolean - default: true - hidden: true - - variable: advanced - label: "Show Advanced Options" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: type - label: "(Advanced) Type of Storage" - description: "Sets the persistence type" - schema: - type: string - default: "hostPath" - enum: - - value: "pvc" - description: "pvc" - - value: "emptyDir" - description: "emptyDir" - - value: "hostPath" - description: "hostPath" - - variable: storageClass - label: "(Advanced) storageClass" - description: "Warning: Anything other than SCALE-ZFS will break rollback!" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "SCALE-ZFS" - - variable: setPermissions - label: "Automatic Permissions" - description: "Automatically set permissions on install" - schema: - show_if: [["type", "=", "hostPath"]] - type: boolean - default: true - - variable: readOnly - label: "readOnly" - schema: - type: boolean - default: false - - variable: hostPath - label: "hostPath" - description: "Path inside the container the storage is mounted" - schema: - show_if: [["type", "=", "hostPath"]] - type: hostpath - - variable: hostPathType - label: "(Advanced) hostPath Type" - schema: - show_if: [["type", "=", "hostPath"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "DirectoryOrCreate" - description: "DirectoryOrCreate" - - value: "Directory" - description: "Directory" - - value: "FileOrCreate" - description: "FileOrCreate" - - value: "File" - description: "File" - - value: "Socket" - description: "Socket" - - value: "CharDevice" - description: "CharDevice" - - value: "BlockDevice" - description: "BlockDevice" - - variable: mountPath - label: "mountPath" - description: "Path inside the container the storage is mounted" - schema: - type: string - default: "" - required: true - - variable: medium - label: "EmptyDir Medium" - schema: - show_if: [["type", "=", "emptyDir"]] - type: string - default: "" - enum: - - value: "" - description: "Default" - - value: "Memory" - description: "Memory" - - variable: accessMode - label: "(Advanced) Access Mode" - description: "Allow or disallow multiple PVC's writhing to the same PV" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "ReadWriteOnce" - enum: - - value: "ReadWriteOnce" - description: "ReadWriteOnce" - - value: "ReadOnlyMany" - description: "ReadOnlyMany" - - value: "ReadWriteMany" - description: "ReadWriteMany" - - variable: size - label: "Size quotum of storage" - schema: - show_if: [["type", "=", "pvc"]] - type: string - default: "100Gi" + +# Include{persistenceList} - variable: ingress label: "" @@ -1022,175 +586,7 @@ questions: schema: type: string - - variable: ingressList - label: "Add Manual Custom Ingresses" - group: "Ingress" - schema: - type: list - default: [] - items: - - variable: ingressListEntry - label: "Custom Ingress" - schema: - type: dict - attrs: - - variable: enabled - label: "Enable Ingress" - schema: - type: boolean - default: true - hidden: true - - variable: name - label: "Name" - schema: - type: string - default: "" - - variable: ingressClassName - label: "IngressClass Name" - schema: - type: string - default: "" - - variable: labelsList - label: "Labels" - schema: - type: list - default: [] - items: - - variable: labelItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: annotationsList - label: "Annotations" - schema: - type: list - default: [] - items: - - variable: annotationItem - label: "Label" - schema: - type: dict - attrs: - - variable: name - label: "Name" - schema: - type: string - - variable: value - label: "Value" - schema: - type: string - - variable: hosts - label: "Hosts" - schema: - type: list - default: [] - items: - - variable: hostEntry - label: "Host" - schema: - type: dict - attrs: - - variable: host - label: "HostName" - schema: - type: string - default: "" - required: true - - variable: paths - label: "Paths" - schema: - type: list - default: [] - items: - - variable: pathEntry - label: "Host" - schema: - type: dict - attrs: - - variable: path - label: "path" - schema: - type: string - required: true - default: "/" - - variable: pathType - label: "pathType" - schema: - type: string - required: true - default: "Prefix" - - variable: service - label: "Linked Service" - schema: - type: dict - attrs: - - variable: name - label: "Service Name" - schema: - type: string - default: "" - - variable: port - label: "Service Port" - schema: - type: int - - variable: tls - label: "TLS-Settings" - schema: - type: list - default: [] - items: - - variable: tlsEntry - label: "Host" - schema: - type: dict - attrs: - - variable: hosts - label: "Certificate Hosts" - schema: - type: list - default: [] - items: - - variable: host - label: "Host" - schema: - type: string - default: "" - required: true - - variable: scaleCert - label: "Select TrueNAS SCALE Certificate" - schema: - type: int - $ref: - - "definitions/certificate" - - variable: entrypoint - label: "Traefik Entrypoint" - description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" - schema: - type: string - default: "websecure" - required: true - - variable: middlewares - label: "Traefik Middlewares" - description: "Add previously created Traefik Middlewares to this Ingress" - schema: - type: list - default: [] - items: - - variable: name - label: "Name" - schema: - type: string - default: "" - required: true +# Include{ingressList} - variable: securityContext @@ -1345,4 +741,4 @@ questions: type: int default: 80 -# Include{VPN} +# Include{addons} diff --git a/templates/questions/vpn.yaml b/templates/questions/addons.yaml similarity index 100% rename from templates/questions/vpn.yaml rename to templates/questions/addons.yaml diff --git a/templates/questions/containerConfig.yaml b/templates/questions/containerConfig.yaml new file mode 100644 index 00000000000..dd7f12ba818 --- /dev/null +++ b/templates/questions/containerConfig.yaml @@ -0,0 +1,81 @@ + - variable: envList + label: "Image environment" + group: "Container Configuration" + schema: + type: list + default: [] + items: + - variable: envItem + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: expertpodconf + group: "Container Configuration" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: termination + group: "Container Configuration" + label: "Termination settings" + schema: + type: dict + attrs: + - variable: gracePeriodSeconds + label: "Grace Period Seconds" + schema: + type: int + default: 10 + - variable: podLabelsList + group: "Container Configuration" + label: "Pod Labels" + schema: + type: list + default: [] + items: + - variable: podLabelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: podAnnotationsList + group: "Container Configuration" + label: "Pod Annotations" + schema: + type: list + default: [] + items: + - variable: podAnnotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string diff --git a/templates/questions/controllerExpert.yaml b/templates/questions/controllerExpert.yaml new file mode 100644 index 00000000000..b56e05e6449 --- /dev/null +++ b/templates/questions/controllerExpert.yaml @@ -0,0 +1,64 @@ + - variable: advanced + label: "Show Expert Configuration Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: extraArgs + label: "Extra Args" + schema: + type: list + default: [] + items: + - variable: argItem + label: "Arg" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: labelsList + label: "Controller Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: " Controller Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string diff --git a/templates/questions/groups.yaml b/templates/questions/groups.yaml new file mode 100644 index 00000000000..ebff4e5195f --- /dev/null +++ b/templates/questions/groups.yaml @@ -0,0 +1,23 @@ +groups: + - name: "Container Image" + description: "Image to be used for container" + - name: "Controller" + description: "Configure workload deployment" + - name: "Container Configuration" + description: "additional container configuration" + - name: "App Configuration" + description: "App specific config options" + - name: "Networking and Services" + description: "Configure Network and Services for container" + - name: "Storage and Persistence" + description: "Persist and share data that is separate from the container" + - name: "Ingress" + description: "Ingress Configuration" + - name: "Security and Permissions" + description: "Configure security context and permissions" + - name: "Resources and Devices" + description: "Specify resources/devices to be allocated to workload" + - name: "Addons" + description: "Addon Configuration" + - name: "Advanced" + description: "Advanced Configuration" diff --git a/templates/questions/ingressList.yaml b/templates/questions/ingressList.yaml new file mode 100644 index 00000000000..8ffaad9d484 --- /dev/null +++ b/templates/questions/ingressList.yaml @@ -0,0 +1,169 @@ + - variable: ingressList + label: "Add Manual Custom Ingresses" + group: "Ingress" + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: "Custom Ingress" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable Ingress" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: ingressClassName + label: "IngressClass Name" + schema: + type: string + default: "" + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: hosts + label: "Hosts" + schema: + type: list + default: [] + items: + - variable: hostEntry + label: "Host" + schema: + type: dict + attrs: + - variable: host + label: "HostName" + schema: + type: string + default: "" + required: true + - variable: paths + label: "Paths" + schema: + type: list + default: [] + items: + - variable: pathEntry + label: "Host" + schema: + type: dict + attrs: + - variable: path + label: "path" + schema: + type: string + required: true + default: "/" + - variable: pathType + label: "pathType" + schema: + type: string + required: true + default: "Prefix" + - variable: service + label: "Linked Service" + schema: + type: dict + attrs: + - variable: name + label: "Service Name" + schema: + type: string + default: "" + - variable: port + label: "Service Port" + schema: + type: int + - variable: tls + label: "TLS-Settings" + schema: + type: list + default: [] + items: + - variable: tlsEntry + label: "Host" + schema: + type: dict + attrs: + - variable: hosts + label: "Certificate Hosts" + schema: + type: list + default: [] + items: + - variable: host + label: "Host" + schema: + type: string + default: "" + required: true + - variable: scaleCert + label: "Select TrueNAS SCALE Certificate" + schema: + type: int + $ref: + - "definitions/certificate" + - variable: entrypoint + label: "Traefik Entrypoint" + description: "Entrypoint used by Traefik when using Traefik as Ingress Provider" + schema: + type: string + default: "websecure" + required: true + - variable: middlewares + label: "Traefik Middlewares" + description: "Add previously created Traefik Middlewares to this Ingress" + schema: + type: list + default: [] + items: + - variable: name + label: "Name" + schema: + type: string + default: "" + required: true diff --git a/templates/questions/persistenceList.yaml b/templates/questions/persistenceList.yaml new file mode 100644 index 00000000000..eeb81f39398 --- /dev/null +++ b/templates/questions/persistenceList.yaml @@ -0,0 +1,162 @@ + - variable: persistenceList + label: "Additional app storage" + group: "Storage and Persistence" + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: "Custom Storage" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the storage" + schema: + type: boolean + default: true + hidden: true + - variable: advanced + label: "Show Advanced Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: labelsList + label: "Labels" + schema: + type: list + default: [] + items: + - variable: labelItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: annotationsList + label: "Annotations" + schema: + type: list + default: [] + items: + - variable: annotationItem + label: "Label" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + - variable: type + label: "(Advanced) Type of Storage" + description: "Sets the persistence type" + schema: + type: string + default: "hostPath" + enum: + - value: "pvc" + description: "pvc" + - value: "emptyDir" + description: "emptyDir" + - value: "hostPath" + description: "hostPath" + - variable: storageClass + label: "(Advanced) storageClass" + description: "Warning: Anything other than SCALE-ZFS will break rollback!" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "SCALE-ZFS" + - variable: setPermissions + label: "Automatic Permissions" + description: "Automatically set permissions on install" + schema: + show_if: [["type", "=", "hostPath"]] + type: boolean + default: true + - variable: readOnly + label: "readOnly" + schema: + type: boolean + default: false + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: hostPathType + label: "(Advanced) hostPath Type" + schema: + show_if: [["type", "=", "hostPath"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "DirectoryOrCreate" + description: "DirectoryOrCreate" + - value: "Directory" + description: "Directory" + - value: "FileOrCreate" + description: "FileOrCreate" + - value: "File" + description: "File" + - value: "Socket" + description: "Socket" + - value: "CharDevice" + description: "CharDevice" + - value: "BlockDevice" + description: "BlockDevice" + - variable: mountPath + label: "mountPath" + description: "Path inside the container the storage is mounted" + schema: + type: string + default: "" + required: true + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" + - variable: accessMode + label: "(Advanced) Access Mode" + description: "Allow or disallow multiple PVC's writhing to the same PV" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "ReadWriteOnce" + enum: + - value: "ReadWriteOnce" + description: "ReadWriteOnce" + - value: "ReadOnlyMany" + description: "ReadOnlyMany" + - value: "ReadWriteMany" + description: "ReadWriteMany" + - variable: size + label: "Size quotum of storage" + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "100Gi" diff --git a/templates/questions/serviceList.yaml b/templates/questions/serviceList.yaml new file mode 100644 index 00000000000..ccedae29f1e --- /dev/null +++ b/templates/questions/serviceList.yaml @@ -0,0 +1,109 @@ + - variable: serviceList + label: "Add Manual Custom Services" + group: "Networking and Services" + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: "Custom Service" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the service" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Name" + schema: + type: string + default: "" + - variable: type + label: "Service Type" + description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: "NodePort" + enum: + - value: "NodePort" + description: "NodePort" + - value: "ClusterIP" + description: "ClusterIP" + - value: "LoadBalancer" + description: "LoadBalancer" + - variable: loadBalancerIP + label: "LoadBalancer IP" + description: "LoadBalancerIP" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: list + default: [] + items: + - variable: externalIP + label: "External IP" + schema: + type: string + - variable: portsList + label: "Additional Service Ports" + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: "Custom ports" + schema: + type: dict + attrs: + - variable: enabled + label: "Enable the port" + schema: + type: boolean + default: true + hidden: true + - variable: name + label: "Port Name" + schema: + type: string + default: "" + - variable: protocol + label: "Port Type" + schema: + type: string + default: "TCP" + enum: + - value: HTTP + description: "HTTP" + - value: "HTTPS" + description: "HTTPS" + - value: TCP + description: "TCP" + - value: "UDP" + description: "UDP" + - variable: targetPort + label: "Target Port" + description: "This port exposes the container port on the service" + schema: + type: int + required: true + - variable: port + label: "Container Port" + schema: + type: int + required: true + - variable: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort" + schema: + type: int + min: 9000 + max: 65535 diff --git a/tools/build-release.sh b/tools/build-release.sh index d025f3ce038..bcc59acb288 100755 --- a/tools/build-release.sh +++ b/tools/build-release.sh @@ -125,10 +125,41 @@ include_questions(){ local chartversion="$4" local target="catalog/${train}/${chartname}/${chartversion}" echo "Including standardised questions.yaml includes for: ${chartname}" - # Replace # Include{VPN} with the standard VPN codesnippet + + # Replace # Include{groups} with the standard groups codesnippet awk 'NR==FNR { a[n++]=$0; next } - /# Include{VPN}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + /# Include{groups}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{controllerExpert} with the standard VPN codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{controllerExpert}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{containerConfig} with the standard VPN codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{containerConfig}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{serviceList} with the standard VPN codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{serviceList}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{persistenceList} with the standard VPN codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{persistenceList}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{ingressList} with the standard VPN codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{ingressList}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml + + # Replace # Include{addons} with the standard VPN codesnippet + awk 'NR==FNR { a[n++]=$0; next } + /# Include{addons}/ { for (i=0;i tmp && mv tmp ${target}/questions.yaml } clean_catalog() {