# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. Version: 2 Templates: masterNode: ?: type: com.mirantis.docker.kubernetes.KubernetesMasterNode instance: ?: type: io.murano.resources.LinuxMuranoInstance name: generateHostname($.appConfiguration.unitNamingPattern, 1) flavor: $.instanceConfiguration.flavor image: $.instanceConfiguration.image assignFloatingIp: $.appConfiguration.assignFloatingIP keyname: $.instanceConfiguration.keyPair availabilityZone: $.instanceConfiguration.availabilityZone minionNode: ?: type: com.mirantis.docker.kubernetes.KubernetesMinionNode instance: ?: type: io.murano.resources.LinuxMuranoInstance name: generateHostname($.appConfiguration.unitNamingPattern, $index + 1) flavor: $.instanceConfiguration.flavor image: $.instanceConfiguration.image assignFloatingIp: $.appConfiguration.assignFloatingIP keyname: $.instanceConfiguration.keyPair availabilityZone: $.instanceConfiguration.availabilityZone exposeCAdvisor: $.appConfiguration.exposeCAdvisor gatewayNode: ?: type: com.mirantis.docker.kubernetes.KubernetesGatewayNode instance: ?: type: io.murano.resources.LinuxMuranoInstance name: generateHostname($.appConfiguration.gatewayNamingPattern, $index) flavor: $.instanceConfiguration.flavor image: $.instanceConfiguration.image assignFloatingIp: $.appConfiguration.assignGatewayFloatingIP keyname: $.instanceConfiguration.keyPair availabilityZone: $.instanceConfiguration.availabilityZone Application: ?: type: com.mirantis.docker.kubernetes.KubernetesCluster name: $.appConfiguration.name masterNode: $masterNode minionNodes: repeat($minionNode, $.appConfiguration.maxMinionCount) nodeCount: $.appConfiguration.minionCount gatewayCount: $.appConfiguration.gatewayCount useFlannel: $.appConfiguration.useFlannel gatewayNodes: repeat($gatewayNode, $.appConfiguration.maxGatewayCount) dockerRegistry: $.appConfiguration.dockerRegistry dockerMirror: $.appConfiguration.dockerMirror gcloudKey: $.appConfiguration.gcloudKey Forms: - appConfiguration: fields: - name: license type: string description: Apache License, Version 2.0 hidden: true required: false - name: name type: string label: Cluster Name initial: KubernetesCluster description: >- Enter a desired name for the application. Just A-Z, a-z, 0-9, dash and underline are allowed - name: minionCount type: integer label: Initial/current number of Kubernetes nodes initial: 2 minValue: 1 required: true description: >- Select number of Kubernetes nodes - name: maxMinionCount type: integer label: Maximum number of Kubernetes nodes initial: 3 required: true minValue: 1 description: >- Select maximum number of Kubernetes nodes - name: assignFloatingIP type: boolean initial: true label: Assign floating IP to Kubernetes nodes description: >- Check to assign floating IP to Kubernetes nodes required: false - name: useFlannel type: boolean initial: false label: Use Flannel networking instead of Calico description: >- Check, if you are going use the Flannel networking instead of Calico required: false - name: unitNamingPattern type: string initial: kube-# helpText: "# expands to machine sequence number" required: false description: >- For your convenience instance hostname can be specified. Enter a name or leave blank for random name generation. regexpValidator: '^[a-zA-z][-_\w#]*$' maxLength: 64 errorMessages: invalid: Just letters, numbers, underscores, sharps and hyphens are allowed. label: Kubernetes node hostname pattern - name: exposeCAdvisor type: boolean initial: true required: false label: Expose cAdvisor UI description: >- Opens external access to cAdvisor interface - name: gatewayCount type: integer label: Initial/current number of gateway nodes initial: 1 minValue: 1 required: true description: >- External traffic will be routed through gateway nodes. Increasing gateways count allows to set up complex and HA clusters. - name: maxGatewayCount type: integer label: Maximum number of gateway nodes initial: 2 required: true minValue: 0 description: >- Maximum number of gateway nodes. Taken into account when performing scalability actions. - name: assignGatewayFloatingIP type: boolean initial: true label: Assign floating IP to gateway nodes description: >- Check to assign floating IP to gateway nodes required: false - name: gatewayNamingPattern type: string initial: gateway-# required: false maxLength: 64 regexpValidator: '^[a-zA-z][-_\w#]*$' errorMessages: invalid: Just letters, numbers, underscores, sharps and hyphens are allowed. label: Gateway hostname pattern helpText: "# expands to gateway sequence number" description: >- Check to assign floating IP to gateway nodes - name: dockerRegistry type: string label: Custom Docker registry URL description: >- Host IP or domain name of custom Docker registry to use. Leave empty to use Docker default. required: false - name: dockerMirror type: string label: Docker registry mirror URL description: >- URL of Docker registry mirror to use. Leave empty to not use one. required: false - name: gcloudKey type: string label: Google registry key regexpValidator: '^{(\s*"(\\(["\\\/bfnrt]|u[a-fA-F0-9]{4})|[^"\\\0-\x1F\x7F]+)*"\s*:\s*"(\\(["\\\/bfnrt]|u[a-fA-F0-9]{4})|[^"\\\0-\x1F\x7F]+)*"\s*(,|\s*}$))*$' errorMessages: invalid: Text should be a valid JSON. description: >- Contents of JSON key file. Used to authenticate to the Google Container Registry required: false - instanceConfiguration: fields: - name: title type: string required: false hidden: true description: Specify some instance parameters on which application would be created. - name: flavor type: flavor label: Instance flavor description: >- Select one of the existing flavors. Consider that application performance depends on this parameter. required: false requirements: min_disk: 10 min_memory_mb: 1024 min_vcpus: 1 - name: image type: image imageType: linux.kubernetes label: Instance image description: >- Select valid image for the application. Image should already be prepared and registered in glance. - name: keyPair type: keypair label: Key Pair description: >- Select the Key Pair to control access to instances. You can login to instances using this KeyPair after the deployment. required: false - name: availabilityZone type: azone label: Availability zone description: Select an availability zone where the application would be installed. required: false