armada/armada/schemas/armada-chart-schema-v2.yaml

162 lines
4.0 KiB
YAML

# Copyright 2017 AT&T Intellectual Property. All other rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# 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
...