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
Chart
schema.JSON schema against which all documents with
armada/Chart/v2
metadata.name
are validated.Schema forarmada/Chart/v2
documents.# 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
Chart
documents that are passed to Armada.Chart Group
schema.JSON schema against which all documents with
armada/Chart/v2
metadata.name
are validated.Schema forarmada/ChartGroup/v2
documents.# 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 Group
documents that are passed to Armada.Manifest
schema.JSON schema against which all documents with
armada/Manifest/v2
metadata.name
are validated.Schema forarmada/Manifest/v2
documents.# 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
Manifest
documents that are passed to Armada.