v1 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/v1metadata.nameare validated.Schema forarmada/Chart/v1documents.# NOTE: Do not modify this schema, it is deprecated. --- schema: deckhand/DataSchema/v1 metadata: name: armada/Chart/v1 schema: metadata/Control/v1 data: $schema: http://json-schema.org/schema# definitions: labels: type: object additionalProperties: type: string hook_action: type: array items: properties: name: type: string type: type: string labels: $ref: '#/definitions/labels' required: - type additionalProperties: false type: object properties: release: type: string chart_name: type: string namespace: type: string values: type: object dependencies: type: array items: type: string protected: type: object properties: continue_processing: type: boolean additionalProperties: false test: anyOf: - type: boolean - type: object properties: enabled: type: boolean timeout: type: integer options: type: object properties: cleanup: type: boolean additionalProperties: false additionalProperties: false timeout: type: integer wait: type: object properties: timeout: type: integer resources: type: array items: properties: type: type: string labels: $ref: '#/definitions/labels' min_ready: anyOf: - type: integer - type: string required: - type additionalProperties: false labels: $ref: "#/definitions/labels" # Config for helm's native `--wait` param. native: type: object properties: # TODO: Add separate timeout for native wait? 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 - subpath - type delete: type: object properties: timeout: type: integer install: # NOTE(sh8121att) Not clear that this key is actually used # in the code. Will leave it here for backward compatabilities # until an additional audit is done. type: object upgrade: type: object properties: no_hooks: type: boolean pre: type: object additionalProperties: false properties: delete: $ref: '#/definitions/hook_action' update: $ref: '#/definitions/hook_action' create: $ref: '#/definitions/hook_action' post: type: object additionalProperties: false properties: create: $ref: '#/definitions/hook_action' options: type: object properties: force: type: boolean additionalProperties: false required: - no_hooks additionalProperties: false required: - namespace - chart_name - 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/v1metadata.nameare validated.Schema forarmada/ChartGroup/v1documents.# NOTE: Do not modify this schema, it is deprecated. --- schema: deckhand/DataSchema/v1 metadata: name: armada/ChartGroup/v1 schema: metadata/Control/v1 data: $schema: http://json-schema.org/schema# properties: name: type: string description: type: string sequenced: type: boolean # TODO(MarshM): Deprecate `test_charts`, it is no longer useful test_charts: type: boolean chart_group: type: array items: type: string required: - 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/v1metadata.nameare validated.Schema forarmada/Manifest/v1documents.# NOTE: Do not modify this schema, it is deprecated. --- schema: deckhand/DataSchema/v1 metadata: name: armada/Manifest/v1 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.