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