v2 Schemas
Below are the schemas Armada uses to validate Charts, Chart Groups, and Manifests.
Charts
Charts consist of the smallest building blocks in Armada. A Chart is
comparable to a Helm chart. Charts consist of all the labels, dependencies,
install and upgrade information, hooks and additional information needed to
convey to Helm.
Chart Groups
A Chart Group consists of a list of charts. Chart Group documents are
useful for managing a group of Chart documents together.
Manifests
A Manifest is the largest building block in Armada. Manifest documents
are responsible for managing collections of Chart Group documents.
Validation Schemas
Introduction
All schemas below are Deckhand DataSchema documents, which are essentially JSON schemas, with additional metadata useful for Deckhand to perform layering and substitution.
The validation schemas below are used by Armada to validate all ingested Charts, Chart Groups, and Manifests. Use the schemas below as models for authoring Armada documents.
Schemas
Chartschema.JSON schema against which all documents with
armada/Chart/v2metadata.nameare validated.Schema forarmada/Chart/v2documents.# JSON schema for validating Armada charts. --- schema: deckhand/DataSchema/v1 metadata: name: armada/Chart/v2 schema: metadata/Control/v1 data: $schema: http://json-schema.org/schema# definitions: labels: type: object additionalProperties: type: string hook_action: type: array items: properties: type: type: string labels: $ref: '#/definitions/labels' required: - type additionalProperties: false wait_resource_type_config: properties: labels: $ref: '#/definitions/labels' min_ready: anyOf: - type: integer - type: string required: type: boolean type: object properties: release: type: string namespace: type: string values: type: object # TODO: Remove this, and just read dependencies out of `chart` dir as helm # CLI does. dependencies: type: array items: type: string protected: type: object properties: continue_processing: type: boolean additionalProperties: false test: type: object properties: enabled: type: boolean timeout: type: integer options: type: object properties: cleanup: type: boolean additionalProperties: false additionalProperties: false wait: type: object properties: timeout: type: integer resources: anyOf: - additionalProperties: anyOf: - $ref: '#/definitions/wait_resource_type_config' - type: array items: $ref: '#/definitions/wait_resource_type_config' - type: array items: allOf: - $ref: '#/definitions/wait_resource_type_config' - properties: type: type: string required: - type labels: $ref: "#/definitions/labels" # Config for helm's native `--wait` param. native: type: object properties: enabled: type: boolean additionalProperties: false additionalProperties: false source: type: object properties: type: type: string location: type: string subpath: type: string reference: type: string proxy_server: type: string auth_method: type: string required: - location - type delete: type: object properties: timeout: type: integer upgrade: type: object properties: pre: type: object additionalProperties: false properties: delete: $ref: '#/definitions/hook_action' options: type: object properties: force: type: boolean no_hooks: type: boolean additionalProperties: false additionalProperties: false required: - namespace - release - source additionalProperties: false ...
This schema is used to sanity-check all
Chartdocuments that are passed to Armada.Chart Groupschema.JSON schema against which all documents with
armada/Chart/v2metadata.nameare validated.Schema forarmada/ChartGroup/v2documents.# JSON schema for validating Armada chart groups. --- schema: deckhand/DataSchema/v1 metadata: name: armada/ChartGroup/v2 schema: metadata/Control/v1 data: $schema: http://json-schema.org/schema# properties: name: type: string description: type: string sequenced: type: boolean chart_group: type: array items: type: string required: # TODO: Rename to `charts`? - chart_group additionalProperties: false ...
This schema is used to sanity-check all
Chart Groupdocuments that are passed to Armada.Manifestschema.JSON schema against which all documents with
armada/Manifest/v2metadata.nameare validated.Schema forarmada/Manifest/v2documents.# JSON schema for validating Armada manifests. --- schema: deckhand/DataSchema/v1 metadata: name: armada/Manifest/v2 schema: metadata/Control/v1 data: $schema: http://json-schema.org/schema# properties: release_prefix: type: string chart_groups: type: array items: type: string required: - chart_groups - release_prefix additionalProperties: false ...
This schema is used to sanity-check all
Manifestdocuments that are passed to Armada.