Introduction of Helm Plugin

This Plugin will utilize the ONAP helm chart to install, uninstall, upgrade, and rollback ONAP components.

Plugin Requirements:

  • Python versions:

    • 2.7.x

  • Helm client should available on CM 

Compatibility

  • OOM master branch 

  • OOM Beijing release

  • OOM Casablanca release



Type

ONAP.nodes.component


example

so:
  type: onap.nodes.component
  properties:
    component-name: so
    config-path: '/tmp/so.yaml'
    chart-repo-url: { get_input: chart-repo-url }
    chart-version: { get_input: chart-version }
    namespace: { get_input: namespace }
    config: { get_input: jsonConfig}

Derived From: cloudify.nodes.Root

Properties:

  •  

    • tiller-server-ip:

      description: IP of tiller server

      type: string

  •  

    • tiller-server-port:

      description: Port of tiller server

      type: string

    • chart-repo-url

      description:  helm chart repo url
      default: http://127.0.0.1:8879/charts

    • component-name

      description: the helm chart name of the ONAP component

  •  

    • chart-version

      description: The version of ONAP helm chart.

    • namespace

      description: The kubernetes namespace to deploy the helm chart.
      default: onap

    • config

      description: String format json object. To save the input config.
      default: ' '

    • config-url

      description: The input config file URL
      default: ' '

    • config-format

      description: The URL input config file format, json or yaml.
      default: 'json '

    • runtime-config

      description:  String format json object. To save the runtime config generate from other nodes.
      default:''

    • tls-enable

      description:  enable TSL between tiller and helm client. please check this link "SSL/TLS connection between HELM and Tiller" 
      default: false
      type: boolean

    • ca

      description: value of tls-ca-cert
      default: ''

    • cert

      description: value of tls-cert
      default: ''

    • key

      description: value of tls-key
      default: ''

Runtime properties

 Runtime Properties are execution-time details of node instances. 

 Runtime Properties are saved to the database so that they can be consumed by plugins or by users.

  • Current-helm-value

    The all the current helm value same as a JSON object.
    This property will be updated during install, upgrade and rollback.


  • helm-history

    This property contains historical revisions. 
    This property will be updated during install, upgrade and rollback.

  • install-status

    This property contains the output from 'helm status'

Operations:

  • configure

    Based on the config and dmaap-topic generate the value yaml file on config-path.

  • start

    Find the ONAP helm chart on chart repo. Install that helm chart with the value yaml file which be generated on config operation.

  • stop

    Delete the ONAP componment. 

  • upgrade

    Upgrate the helm value or helm chats.

  • rollback:

    Rollback to some revision.

  • status

    Get helm deployment status

Workflows:

  • install

    1. Execute  configure operation
    2. Execute  start operation



  • uninstall

    Execute stop operation


  • upgrade

    Execute upgrade operation
    Workflow parameters:

    • node_instance_id :The ID of the node instance that needs upgrade.

    • config_json: The json object to override the current helm value.

    • chartVersion: Helm chart version.

    • chartRepo: Helm chart repo url.


  • rollback

    Execute rollback  operation
    Workflow parameters:

    • node_instance_id :The ID of the node instance that needs rollback.

    • revision: The revision number you want to rollack to. You can find the revision number in runtime property helm history.



  • status

    Execute status operation
    Workflow parameters: