# Copyright 2025 Splunk Inc. # # 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. # this file was originally created using go-swagger using the defined types and patched by hand for additional information # not supported by go-swagger generation. At this point, this file is the source of truth for the schema and must be # maintained by hand to reflect changes in the go model. swagger: "2.0" info: version: v1alpha1 title: Metadata definition for qbec.yaml paths: {} definitions: qbec.io.v1alpha1.EnvironmentMap: additionalProperties: false properties: apiVersion: description: requested API version type: string kind: description: object kind pattern: ^EnvironmentMap$ type: string spec: $ref: '#/definitions/qbec.io.v1alpha1.EnvironmentsSpec' required: - kind - apiVersion - spec qbec.io.v1alpha1.EnvironmentsSpec: additionalProperties: false properties: environments: additionalProperties: $ref: '#/definitions/qbec.io.v1alpha1.Environment' description: set of environments for the app minProperties: 1 type: object required: - environments qbec.io.v1alpha1.App: additionalProperties: false description: The list of all components for the app is derived as all the supported (jsonnet, json, yaml) files in the components subdirectory. properties: apiVersion: description: requested API version type: string kind: description: object kind pattern: ^App$ type: string metadata: $ref: '#/definitions/qbec.io.v1alpha1.AppMeta' spec: $ref: '#/definitions/qbec.io.v1alpha1.AppSpec' required: - kind - apiVersion - metadata - spec title: QbecApp is a set of components that can be applied to multiple environments with tweaked runtime configurations. type: object qbec.io.v1alpha1.AppMeta: additionalProperties: false properties: name: type: string pattern: '^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$' required: - name title: AppMeta is the simplified metadata object for a qbec app. type: object qbec.io.v1alpha1.AppSpec: additionalProperties: false properties: componentsDir: description: directory containing component files, default to components/ type: string envFiles: description: |- list of additional files containing environment definitions to load. environment definitions are merged in the order specified starting with any inline environments. An environment defined in a later file takes precedence over the the same environment already loaded and replaces it. items: type: string type: array environments: additionalProperties: $ref: '#/definitions/qbec.io.v1alpha1.Environment' description: set of environments for the app minProperties: 1 type: object excludes: description: list of components to exclude by default for every environment items: type: string type: array libPaths: description: list of library paths to add to the jsonnet VM at evaluation items: type: string type: array paramsFile: description: |- standard file containing parameters for all environments returning correct values based on qbec.io/env external variable, defaults to params.libsonnet type: string postProcessor: description: |- file containing jsonnet code that can be used to post-process all objects, typically adding metadata like annotations type: string baseProperties: description: properties for the baseline environment type: object clusterScopedLists: description: whether remote lists should use cluster scoped queries when multiple namespaces present type: boolean vars: $ref: "#/definitions/qbec.io.v1alpha1.Variables" namespaceTagSuffix: description: suffix default namespace when app-tag provided, with the supplied tag type: boolean addComponentLabel: description: add component name as label to Kubernetes objects type: boolean dataSources: description: a list of data sources to be defined for the qbec app. items: type: string type: array dsExamples: description: sample output for every datasource for use by the linter type: object title: AppSpec is the user-supplied configuration of the qbec app. type: object qbec.io.v1alpha1.Environment: additionalProperties: false properties: defaultNamespace: type: string excludes: items: type: string type: array includes: items: type: string type: array server: type: string context: type: string properties: description: open-ended object containing additional environment properties. type: object title: Environment points to a specific destination and has its own set of runtime parameters. type: object qbec.io.v1alpha1.ExternalVar: additionalProperties: false type: object properties: default: nullable: true name: type: string secret: type: boolean required: - name title: ExternalVar is a variable that is set as an extVar in the jsonnet VM qbec.io.v1alpha1.TopLevelVar: additionalProperties: false type: object properties: components: type: array items: type: string minItems: 1 name: type: string secret: type: boolean required: - name - components title: |- TopLevelVar is a variable that is set as a TLA in the jsonnet VM. Note that there is no provision to set a default value - default values should be set in the jsonnet code instead. qbec.io.v1alpha1.ComputedVar: additionalProperties: false type: object properties: name: type: string code: type: string secret: type: boolean required: - name - code title: |- ComputedVar is a named code variable that is computed using inline jsonnet code. The computation is allowed to refer to other external variables including those set by qbec for an environment as well as previously computed variables. Inline code is evaluated as though it were defined in a file in the qbec root. This means that relative references to imports will be resolved as expected. qbec.io.v1alpha1.Variables: additionalProperties: false type: object title: Variables is a collection of external and top-level variables. properties: external: type: array items: $ref: "#/definitions/qbec.io.v1alpha1.ExternalVar" topLevel: type: array items: $ref: "#/definitions/qbec.io.v1alpha1.TopLevelVar" computed: type: array items: $ref: "#/definitions/qbec.io.v1alpha1.ComputedVar"