armada/docs/source/operations/guide-build-armada-yaml.rst

8.8 KiB

Armada - Making Your First Armada Yaml

Keywords

keyword type action
armada object define an armada release
release_prefix string tag appended to the front of all charts released by the yaml in order to manage them throughout their lifecycles
charts array stores the definitions of all charts
chart object definition of the chart

Defining a chart

To define your charts is not any different than helm. we do provide some post/pre actions that will help us manage our charts better.

Behavior

  1. will check if chart exists
    1. if it does not exist
      • we will install the chart
    2. if exist then
      • armada will check if there are any differences in the charts
      • if the charts are different then it will execute an upgrade
      • else it will not perform any actions

Chart Keywords

Chart Group

keyword type action
description string description of chart set
charts_group array stores definiton of the charts in a group
sequenced bool enables sequeced chart deployment in a group

Chart

keyword type action
name string name for the chart
release_name string name of the release
namespace string namespace of your chart
timeout int time (in seconds) allotted for chart to deploy when 'wait' flag is set
install object install the chart into your Kubernetes cluster
update object update the chart managed by the armada yaml
values object override any default values in the charts
source object provide a path to a git repo or local dir deploy chart.
dependencies object reference any chart dependencies before install

Source

keyword type action
type string source to build the chart: git or local
location string url or path to the chart's parent directory
subpath string relative path to target chart from parent
reference string branch of the repo

Note

You can use references in order to build your charts, this will reduce the size of the chart definition will show example in multichart below

Simple Example

armada:
  release_prefix: "my_armada"
  charts:
    - description: I am a chart group
      sequenced: False
      chart_group:
        - chart: &cockroach
          name: cockroach
          release_name: cockroach
          namespace: db
          timeout: 20
          install:
            no_hooks: false
          values:
            Replicas: 1
          source:
            type: git
            location: git://github.com/kubernetes/charts/
            subpath: stable/cockroachdb
            reference: master
          dependencies: []

Multichart Example

armada:
  release_prefix: "my_armada"
  charts:
    - description: I am group 1
      sequenced: True
      chart_group:
        - chart: &common
          name: common
          release_name: common
          namespace: db
          timeout: 20
          install:
            no_hooks: false
          values:
            Replicas: 1
          source:
            type: git
            location: git://github.com/kubernetes/charts/
            subpath: stable/common
            reference: master
          dependencies: []
        - chart: &cockroach
          name: cockroach
          release_name: cockroach
          namespace: db
          timeout: 20
          install:
            no_hooks: false
          values:
            Replicas: 1
          source:
            type: git
            location: git://github.com/kubernetes/charts/
            subpath: stable/cockroachdb
            reference: master
          dependencies: []
    - description: I am group 2
      sequenced: False
      chart_group:
        - chart: &mariadb
          name: mariadb
          release_name: mariadb
          namespace: db
          timeout: 20
          install:
            no_hooks: false
          values:
            Replicas: 1
          source:
            type: git
            location: git://github.com/kubernetes/charts/
            subpath: stable/mariadb
            reference: master
          dependencies: []

References

For working examples please check the examples in our repo here