Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
621 lines (612 sloc) 21.5 KB
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "atomic-reactor server-side configuration",
"type": ["object", "null"],
"properties": {
"version": {
"type": "integer"
},
"clusters": {
"description": "Clusters grouped by platform name",
"type": "object",
"patternProperties": {
"^[a-zA-Z0-9_]*$": {
"description": "List of clusters for this platform",
"type": "array",
"items": {
"properties": {
"name": {
"description": "osbs-client instance name for this cluster",
"type": "string"
},
"max_concurrent_builds": {
"description": "Maximum number of active builds",
"type": "integer",
"minimum": 0
},
"enabled": {
"description": "Whether this cluster should be used",
"type": "boolean",
"default": true
}
},
"additionalProperties": false,
"required": ["name", "max_concurrent_builds"]
}
}
},
"additionalProperties": false
},
"clusters_client_config_dir": {
"description": "Path to directory with osbs.conf for communicating with workers",
"type": "string"
},
"koji": {
"description": "Koji instance",
"type": "object",
"properties": {
"hub_url": {
"description": "Koji hub's xmlrpc url",
"type": "string"
},
"root_url": {
"description": "Koji's root storage url",
"type": "string"
},
"auth": {
"description": "Authentication information",
"type": "object",
"anyOf": [
{
"properties": {
"proxyuser": {"$ref": "#/definitions/proxyuser"},
"ssl_certs_dir": {
"description": "Path to directory with cert and ca files",
"type": "string"
}
},
"additionalProperties": false,
"required": ["ssl_certs_dir"]
},
{
"properties": {
"proxyuser": {"$ref": "#/definitions/proxyuser"},
"krb_cache_path": {
"description": "Path to kerberos credential cache file",
"type": "string"
},
"krb_principal": {
"description": "Kerberos principal",
"type": "string"
},
"krb_keytab_path": {
"description": "Location of Kerberos keytab, e.g. FILE:<absolute_path>",
"type": "string"
}
},
"additionalProperties": false,
"required": ["krb_principal", "krb_keytab_path"]
},
{
"properties": {
"proxyuser": {"$ref": "#/definitions/proxyuser"}
},
"additionalProperties": false
}
]
},
"use_fast_upload": {
"description": "Use Koji's fast upload API",
"type": "boolean",
"default": true
},
"reserve_build": {
"description": "Reserve build id and NVR through Content Generator API. If set, requires koji > 1.17.0",
"type": "boolean",
"default": false
}
},
"additionalProperties": false,
"required": ["hub_url", "root_url", "auth"]
},
"pulp": {
"description": "Pulp registry instance",
"type": "object",
"properties": {
"name": {
"description": "Pulp registry name, specified in /etc/dockpulp.conf",
"type": "string"
},
"loglevel": {
"description": "Log level",
"type": "string"
},
"auth": {
"description": "Authentication information",
"type": "object",
"anyOf": [
{
"properties": {
"ssl_certs_dir": {
"description": "Path to directory with pulp.cer and pulp.key files",
"type": "string"
}
},
"required": ["ssl_certs_dir"],
"additionalProperties": false
},
{
"properties": {
"username": {
"description": "Pulp username",
"type": "string"
},
"password": {
"description": "Pulp password",
"type": "string"
}
},
"required": ["username", "password"],
"additionalProperties": false
}
]
}
},
"additionalProperties": false,
"required": ["name", "auth"]
},
"odcs": {
"description": "OnDemand Compose Service (ODCS) instance",
"type": "object",
"properties": {
"api_url": {
"description": "ODCS api url, including api version",
"type": "string"
},
"insecure": {
"description": "Don't check SSL certificate for api_url",
"type": "boolean"
},
"auth": {
"description": "Authentication information",
"type": "object",
"anyOf": [
{
"properties": {
"ssl_certs_dir": {
"description": "Path to directory with cert file",
"type": "string"
}
},
"additionalProperties": false,
"required": ["ssl_certs_dir"]
},
{
"properties": {
"openidc_dir": {
"description": "Path to directory with token file",
"type": "string"
}
},
"additionalProperties": false,
"required": ["openidc_dir"]
}
]
},
"signing_intents": {
"description": "List of signing intents",
"type": "array",
"items": {
"properties": {
"name": {
"description": "signing intent name",
"type": "string"
},
"keys": {
"description": "signing intent keys",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": ["name", "keys"]
}
},
"default_signing_intent": {
"description": "Default signing intent",
"type": "string"
}
},
"additionalProperties": false,
"required": ["api_url", "auth", "signing_intents", "default_signing_intent"]
},
"omps": {
"description": "Integration with OMPS service for pushing operators manifests to appregistry",
"type": ["object", "null"],
"properties": {
"omps_url": {
"description": "URL of OMPS REST API",
"type": "string"
},
"omps_namespace": {
"description": "Namespace (organization) where manifest will be pushed",
"type": "string"
},
"omps_secret_dir": {
"description": "Path to dir with secrets",
"type": "string"
},
"appregistry_url": {
"description": "URL for appregistry where operator manifests are stored",
"type": "string"
},
"koji_insecure": {
"description": "Download data from koji insecurely (default: false)",
"type": "boolean"
},
"insecure": {
"description": "Connect to OMPS service insecurely (default: false)",
"type": "boolean"
}
},
"additionalProperties": false,
"required": ["omps_url", "omps_namespace", "omps_secret_dir", "appregistry_url"]
},
"smtp": {
"description": "SMTP notifications",
"type": "object",
"properties": {
"host": {
"description": "SMTP host server name",
"type": "string"
},
"from_address": {
"description": "From email address in notification email",
"type": "string"
},
"additional_addresses": {
"description": "Email addresses to always send notification email",
"type": "array",
"items": {
"type": "string"
}
},
"error_addresses": {
"description": "Email addresses to send notifications if no other email address can be resolved",
"type": "array",
"items": {
"type": "string"
}
},
"domain": {
"description": "Domain used when constructing email addresses",
"type": "string"
},
"send_to_submitter": {
"description": "Send email notification to Koji task submitter",
"type": "boolean"
},
"send_to_pkg_owner": {
"description": "Send email notification to Koji package owner",
"type": "boolean"
}
},
"additionalProperties": false,
"required": ["host", "from_address"]
},
"arrangement_version": {
"description": "Arrangement version",
"type": "integer"
},
"artifacts_allowed_domains": {
"description": "Domains allowed to use when fetching artifacts by url",
"type": "array",
"items": {
"type": "string"
}
},
"image_labels": {
"description": "Labels to be applied to container image",
"type": "object",
"patternProperties": {
"^[\\w\\.-]+$": {"type": "string"}
},
"additionalProperties": false
},
"image_label_info_url_format": {
"description": "URL format (with {label}-style substitution) for 'info' label",
"type": "string"
},
"image_equal_labels": {
"description": "Labels that are expected to be equal in value",
"type": "array",
"items" : {
"type": "array",
"items": {
"type": "string"
}
}
},
"openshift": {
"description": "OpenShift instance running build",
"type": "object",
"properties": {
"url": {
"description": "OpenShift url",
"type": "string"
},
"insecure": {
"description": "Don't check SSL certificate for url",
"type": "boolean"
},
"build_json_dir": {
"description": "Path to directory containing Json files templates for osbs-client lib",
"type": "string"
},
"auth": {
"description": "Authentication information",
"type": "object",
"anyOf": [
{
"properties": {
"enable": {"$ref": "#/definitions/enable"},
"krb_cache_path": {
"description": "Path to kerberos credential cache file",
"type": "string"
},
"krb_principal": {
"description": "Kerberos principal",
"type": "string"
},
"krb_keytab_path": {
"description": "Location of Kerberos keytab, e.g. FILE:<absolute_path>",
"type": "string"
}
},
"additionalProperties": false,
"required": ["krb_principal", "krb_keytab_path"]
},
{
"properties": {
"enable": {"$ref": "#/definitions/enable"},
"ssl_certs_dir": {
"description": "Path to directory with cert, key and ca files",
"type": "string"
}
},
"additionalProperties": false,
"required": ["ssl_certs_dir"]
},
{
"properties": {
"enable": {"$ref": "#/definitions/enable"}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false,
"required": ["url"]
},
"group_manifests": {
"description": "Create manifest list, or image index, in container registry",
"type": "boolean"
},
"platform_descriptors": {
"description": "Definition of supported platforms",
"type": "array",
"items": {
"type": "object",
"properties": {
"platform": {
"type": "string"
},
"architecture": {
"type": "string"
}
},
"additionalProperties": false
}
},
"prefer_schema1_digest": {
"description": "schema 1 as preferred digest",
"type": "boolean"
},
"content_versions": {
"description": "Produce container image of given version",
"type": "array",
"items": {
"type": "string",
"enum": ["v2"]
}
},
"registries_organization": {"$ref": "#/definitions/organization"},
"registries": {
"description": "Container registries to output images",
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"description": "Registry URI including version",
"type": "string"
},
"insecure": {
"description": "Don't check SSL certificate for url",
"type": "boolean"
},
"auth": {
"description": "Authentication information",
"type": "object",
"properties": {
"cfg_path": {
"description": "Path to directory containing .dockercfg for registry auth",
"type": "string"
}
},
"additionalProperties": false,
"required": ["cfg_path"]
},
"expected_media_types": {
"description": "Expected media types to be found in registry",
"type": "array",
"items": {
"type": "string",
"enum": ["application/json",
"application/vnd.docker.distribution.manifest.v1+json",
"application/vnd.docker.distribution.manifest.v2+json",
"application/vnd.docker.distribution.manifest.list.v2+json",
"application/vnd.oci.image.manifest.v1+json",
"application/vnd.oci.image.index.v1+json"]
}
}
},
"additionalProperties": false,
"required": ["url"]
}
},
"yum_proxy": {
"description": "Proxy to access yum repositories",
"type": "string"
},
"skip_koji_check_for_base_image": {
"description": "Allow base image without related koji build (insecure)",
"type": "boolean"
},
"deep_manifest_list_inspection": {
"description": "If manifest list digest check fails, inspect the manifest list contents",
"type": "boolean",
"default": true
},
"fail_on_digest_mismatch": {
"description": "Raise an error and stop build when a manifest list digest check fails",
"type": "boolean",
"default": true
},
"hide_files": {
"description": "Hide files during build for each stage",
"type": "object",
"properties": {
"tmpdir": {
"description": "Temporary location, where files will be hidden",
"type": "string",
"minLength": 1
},
"files": {
"description": "List of files to hide",
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1,
"uniqueItems": true
}
},
"additionalProperties": false,
"required": ["tmpdir", "files"]
},
"source_registry": {
"description": "Container registry to pull parent images",
"type": "object",
"properties": {
"url": {
"description": "Registry url",
"type": "string"
},
"insecure": {
"description": "Don't check SSL certificate for url",
"type": "boolean"
},
"auth": {
"description": "Authentication information",
"type": "object",
"properties": {
"cfg_path": {
"description": "Path to directory containing .dockercfg for registry auth",
"type": "string"
}
},
"additionalProperties": false,
"required": ["cfg_path"]
}
},
"additionalProperties": false,
"required": ["url"]
},
"sources_command": {
"description": "Command to retrieve artifacts in lookaside cache",
"type": "string"
},
"required_secrets": {
"description": "List of OpenShift secrets required by this configuration",
"type": "array",
"items": {
"type": "string"
}
},
"worker_token_secrets": {
"description": "List of OpenShift secrets for worker clusters authentication",
"type": "array",
"items": {
"type": "string"
}
},
"build_image_override": {
"description": "Specify different build_image image for platforms",
"type": "object",
"additionalProperties": {"type": "string"}
},
"default_image_build_method": {
"description": "Specify different default buildstep plugin for worker builds",
"enum": ["docker_api", "imagebuilder", "buildah_bud"]
},
"buildstep_alias": {
"description": "Aliases for buildstep plugins",
"type": "object",
"patternProperties": {
"^[\\w_]+$": {
"type": "string",
"enum": ["docker_api", "imagebuilder"]
}
},
"additionalProperties": false
},
"flatpak": {
"description": "Flatpak specific properties",
"type": "object",
"properties": {
"base_image": {
"description": "host image used to install packages when creating a Flatpak",
"type": "string"
}
},
"additionalProperties": false
},
"package_comparison_exceptions": {
"description": "List of packages that are not compared across architectures",
"type": "array",
"items": {
"type": "string"
}
}
},
"definitions": {
"enable": {
"description": "Enable authentication",
"type": "boolean"
},
"proxyuser": {
"description": "Login as different user",
"type": "string"
},
"organization": {
"description": "Registry organization",
"type": "string"
}
},
"required": ["version"]
}
You can’t perform that action at this time.