Kubernetes Blueprint for vRealize Automation

This Blueprint was developed using vRealize Automation 7.4 and CentOS 7. The software components are modular with dependencies. The Kubernetes cluster consists of a single master and 2-10 nodes. Values for the network input are:

  • Calico
  • Flannel
  • Canal
  • Kube-Router
  • Romana
  • Weave
  • Tungsten-Fabric

At the time of initial release, I have only done simple NodePort tests with Calico, Flannel, and Weave. The code is in place for the remaining network plug-ins, but needs testing and confirmation that they work properly.

After importing the blueprint:

  1. Click on 1534External and update it to one of your networks
  2. Click on K8s-Master and update the blueprint and snapshot settings to point to your CentOS 7 template VM, also update the name of your Customization Spec to match what you have in vCenter for your CentOS template
  3. Click on K8s-Node and update the blueprint and snapshot settings to point to your CentOS 7 template VM, also update the name of your Customization Spec to match what you have in vCenter for your CentOS template
  4. Click the Edit Custom Form button (Click Yes to Save blueprint)
  5. Save the YAML code provided below as a text file, then use the Actions menu at the top of the page to Import that file

Kubernetes Blueprint Schema

Simple Custom Form:

Simple Custom Request Form

layout:
    pages:
        -
            id: general
            sections:
                -
                    id: section_89ec6c3e
                    fields:
                        -
                            id: CentOS_K8s_Master~netPlugin
                            display: dropDown
                            state:
                                visible: true
                                read-only: false
                -
                    id: section_3566b9d4
                    fields:
                        -
                            id: _leaseDays
                            display: integerField
                            state:
                                visible: true
                                read-only: false
                -
                    id: section_1fb0e0f8
                    fields:
                        -
                            id: K8s-Node~_cluster
                            display: integerField
                            state:
                                visible: true
                                read-only: false
                -
                    id: section_62a706b1
                    fields:
                        -
                            id: CentOS_K8s_Node~joinCommand
                            display: textField
                            state:
                                visible: false
                                read-only: false
                -
                    id: section_fbe622a9
                    fields:
                        -
                            id: CentOS_K8s_Master~masterIpAddress
                            display: textField
                            state:
                                visible: false
                                read-only: false
            title: General
schema:
    CentOS_K8s_Master~netPlugin:
        label: 'Network Plugin'
        description: 'Network Plugin Name'
        type:
            dataType: string
            isMultiple: false
        default: Calico
        constraints:
            required: true
        valueList:
            -
                value: Calico
                label: Calico
            -
                value: Flannel
                label: Flannel
            -
                value: Canal
                label: Canal
            -
                value: Kube-Router
                label: Kube-Router
            -
                value: Romana
                label: Romana
            -
                value: Weave
                label: Weave
            -
                value: Tungsten-Fabric
                label: Tungsten-Fabric
    _leaseDays:
        label: 'Lease days'
        description: 'Indicates for how many days the deployed blueprint will be leased.'
        type:
            dataType: integer
            isMultiple: false
        constraints: {}
        default: '7'
    K8s-Node~_cluster:
        label: 'Worker Node Count'
        type:
            dataType: integer
            isMultiple: false
        default: 3
        constraints:
            max-value: 10
            min-value: 2
            required: true
    CentOS_K8s_Node~joinCommand:
        label: joinCommand
        description: 'Join command for nodes'
        type:
            dataType: string
            isMultiple: false
        constraints:
            required: true
    CentOS_K8s_Master~masterIpAddress:
        label: masterIpAddress
        description: 'Kubernetes Master IP Address'
        type:
            dataType: string
            isMultiple: false
        constraints:
            required: true
options:
    externalValidations: []

UPDATE Aug 30, 2018:
Updated Install script for Master Node to use 10.244.0.0/16 for Calico. The default of 192.168.0.0/16 can conflict with home/HOL vPod networks. This update addresses that issue.

Sign in to be able to add comments.

Comments 0