apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
name: applications.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: Application
listKind: ApplicationList
plural: applications
shortNames:
- hasapp
- ha
- app
singular: application
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.conditions[-1].status
name: Status
type: string
- jsonPath: .status.conditions[-1].reason
name: Reason
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: Application is the Schema for the applications API. For description,
refer to
Hybrid Application Service Kube API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ApplicationSpec defines the desired state of Application
properties:
appModelRepository:
description: |-
AppModelRepository refers to the git repository that will store the application model (a devfile)
Can be the same as GitOps repository.
A repository will be generated if this field is left blank.
Optional.
properties:
branch:
description: |-
Branch corresponds to the branch in the repository that should be used
Example: devel.
Optional.
type: string
context:
description: |-
Context corresponds to the context within the repository that should be used
Example: folderA/folderB/gitops.
Optional.
type: string
url:
description: |-
URL refers to the repository URL that should be used. If not specified, a GitOps repository under the
$GITHUB_ORG (defaults to redhat-appstudio-appdata) organization on GitHub will be generated by HAS.
Example: https://github.com/devfile-test/myrepo.
Required.
type: string
required:
- url
type: object
description:
description: |-
Description refers to a brief description of the application.
Optional.
type: string
displayName:
description: |-
DisplayName refers to the name that an application will be deployed with in App Studio.
Required.
type: string
gitOpsRepository:
description: |-
GitOpsRepository refers to the git repository that will store the gitops resources.
Can be the same as App Model Repository.
A repository will be generated if this field is left blank.
Optional.
properties:
branch:
description: |-
Branch corresponds to the branch in the repository that should be used
Example: devel.
Optional.
type: string
context:
description: |-
Context corresponds to the context within the repository that should be used
Example: folderA/folderB/gitops.
Optional.
type: string
url:
description: |-
URL refers to the repository URL that should be used. If not specified, a GitOps repository under the
$GITHUB_ORG (defaults to redhat-appstudio-appdata) organization on GitHub will be generated by HAS.
Example: https://github.com/devfile-test/myrepo.
Required.
type: string
required:
- url
type: object
required:
- displayName
type: object
status:
description: ApplicationStatus defines the observed state of Application
properties:
conditions:
description: Conditions is an array of the Application's status conditions
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
devfile:
description: Devfile corresponds to the devfile representation of
the Application resource
type: string
required:
- conditions
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
name: componentdetectionqueries.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: ComponentDetectionQuery
listKind: ComponentDetectionQueryList
plural: componentdetectionqueries
shortNames:
- hcdq
- compdetection
singular: componentdetectionquery
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.conditions[-1].status
name: Status
type: string
- jsonPath: .status.conditions[-1].reason
name: Reason
type: string
- jsonPath: .status.conditions[-1].type
name: Type
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ComponentDetectionQuery is the Schema for the componentdetectionqueries
API. For description, refer to
Hybrid Application Service Kube API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ComponentDetectionQuerySpec defines the desired state of
ComponentDetectionQuery
properties:
generateComponentName:
description: |-
It defines if should generate random characters at the end of the component name instead of a predicted default value
The default value is false.
If the value is set to true, component name will always have random characters appended
Optional.
type: boolean
git:
description: |-
Git Source for a Component.
Required.
properties:
context:
description: |-
A relative path inside the git repo containing the component
Example: folderA/folderB/gitops.
Optional.
type: string
devfileUrl:
description: |-
If specified, the devfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Example: https://raw.githubusercontent.com/devfile-samples/devfile-sample-java-springboot-basic/main/devfile.yaml.
Optional.
type: string
dockerfileUrl:
description: |-
If specified, the dockerfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Optional.
type: string
revision:
description: |-
Specify a branch/tag/commit id. If not specified, default is `main`/`master`.
Example: devel.
Optional.
type: string
url:
description: An HTTPS URL representing the git repository to create
the component from.
type: string
required:
- url
type: object
secret:
description: |-
Secret describes the name of an optional Kubernetes secret containing a Personal Access Token to access the git repostiory.
Optional.
type: string
required:
- git
type: object
status:
description: ComponentDetectionQueryStatus defines the observed state
of ComponentDetectionQuery
properties:
componentDetected:
additionalProperties:
description: ComponentDetectionDescription holds all the information
about the component being detected
properties:
componentStub:
description: ComponentStub is a stub of the component detected
with all the info gathered from the devfile or service detection
properties:
actions:
description: |-
Specific actions that will be processed by the controller and then removed from 'spec.actions'.
Used for triggering builds or creating pipeline configuration PRs.
Optional.
properties:
create-pipeline-configuration-pr:
description: |-
Send a PR with build pipeline configuration proposal for Component version(s).
If not set, version onboarding will be done without pipeline configuration PR.
Could be used after onboarding to create / renew build pipeline definition.
Optional.
properties:
all-versions:
description: |-
When specified it will send a PR with build pipeline configuration proposal for all Component versions.
Has precedence over 'version' and 'versions'.
Optional.
type: boolean
version:
description: |-
When specified it will send a PR with build pipeline configuration proposal for the Component version.
Can be specified together with 'versions' and any duplicates will be removed.
Optional.
type: string
versions:
description: |-
When specified it will send a PR with build pipeline configuration proposal for Component versions.
Can be specified together with 'version' and any duplicates will be removed.
Optional.
items:
type: string
type: array
type: object
trigger-push-build:
description: |-
Specify name of component version to restart the push build for.
Can be specified together with 'trigger-push-builds' and any duplicates will be removed.
Optional.
type: string
trigger-push-builds:
description: |-
Specify names of component versions to restart the push build for.
Can be specified together with 'trigger-push-build' and any duplicates will be removed.
Optional.
items:
type: string
type: array
type: object
application:
description: |-
Application is the name of the application resource that the component belongs to.
Optional.
!!! Will be removed when we remove old model
pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
build-nudges-ref:
description: |-
The list of components to be nudged by this components build upon a successful result.
Optional.
!!! Will be removed when we remove old model
items:
type: string
type: array
componentName:
description: |-
ComponentName is name of the component to be added to the Application. The name must adhere to DNS-1123 validation.
Optional.
!!! Will be removed when we remove old model
maxLength: 63
pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
containerImage:
description: |-
The container image repository to use for this component (without tag).
Either will be set by Image Repository, or explicitly specified with custom repo.
All versions of this component will use this single image repository.
Example: quay.io/org/tenant/component
Optional.
type: string
default-build-pipeline:
description: |-
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Pipeline used for all versions, unless explicitly specified for a specific version.
When omitted it has to be specified in all versions.
Optional.
properties:
pull:
description: |-
Pipeline used for pull pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
pull-and-push:
description: |-
Pipeline used for pull and push pipeline runs.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
push:
description: |-
Pipeline used for push pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
type: object
env:
description: |-
An array of environment variables to add to the component (ValueFrom not currently supported)
Optional
items:
description: EnvVar represents an environment variable
present in a Container.
properties:
name:
description: Name of the environment variable. Must
be a C_IDENTIFIER.
type: string
value:
description: |-
Variable references $(VAR_NAME) are expanded
using the previously defined environment variables in the container and
any service environment variables. If a variable cannot be resolved,
the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
Escaped references will never be expanded, regardless of whether the variable
exists or not.
Defaults to "".
type: string
valueFrom:
description: Source for the environment variable's
value. Cannot be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap
or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: |-
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`,
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
properties:
apiVersion:
description: Version of the schema the FieldPath
is written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in
the specified API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: |-
Selects a resource of the container: only resources limits and requests
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
properties:
containerName:
description: 'Container name: required for
volumes, optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of
the exposed resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the
pod's namespace
properties:
key:
description: The key of the secret to select
from. Must be a valid secret key.
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or
its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
type: array
replicas:
description: |-
The number of replicas to deploy the component with.
Optional.
!!! Will be removed when we remove old model
type: integer
repository-settings:
description: |-
Used for setting additional settings for the Repository CR.
Optional.
properties:
comment-strategy:
description: |-
When specified, will set value of `comment_strategy` in the Repository CR
Optional.
type: string
github-app-token-scope-repos:
description: |-
When specified, will add values to `github_app_token_scope_repos` in the Repository CR
Optional.
items:
type: string
type: array
type: object
resources:
description: |-
Compute Resources required by this component.
Optional.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
route:
description: |-
The route to expose the component with.
Optional.
!!! Will be removed when we remove old model
type: string
secret:
description: |-
Secret describes the name of a Kubernetes secret containing either:
1. A Personal Access Token to access the Component's git repostiory (if using a Git-source component) or
2. An Image Pull Secret to access the Component's container image (if using an Image-source component).
Optional.
!!! Will be removed when we remove old model
type: string
skip-offboarding-pr:
description: |-
When 'true', during offboarding a cleaning PR won't be created.
Default: false.
Optional.
type: boolean
skipGitOpsResourceGeneration:
description: |-
Whether or not to bypass the generation of GitOps resources for the Component. Defaults to false.
Optional.
!!! Will be removed when we remove old model
type: boolean
source:
description: |-
Source describes the Component source.
Required.
properties:
dockerfileUri:
description: |-
Dockerfile path for all versions, unless explicitly specified for a version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "Dockerfile"
Optional.
type: string
git:
description: |-
Git Source for a Component.
Optional.
!!! Will be removed when we remove old model
properties:
context:
description: |-
A relative path inside the git repo containing the component
Example: folderA/folderB/gitops.
Optional.
type: string
devfileUrl:
description: |-
If specified, the devfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Example: https://raw.githubusercontent.com/devfile-samples/devfile-sample-java-springboot-basic/main/devfile.yaml.
Optional.
type: string
dockerfileUrl:
description: |-
If specified, the dockerfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Optional.
type: string
revision:
description: |-
Specify a branch/tag/commit id. If not specified, default is `main`/`master`.
Example: devel.
Optional.
type: string
url:
description: An HTTPS URL representing the git repository
to create the component from.
type: string
required:
- url
type: object
url:
description: |-
Git repository URL for the component.
Optional.
!!! Will be required when we remove old model
type: string
versions:
description: |-
List of all versions for this component.
Optional.
!!! Will be required when we remove old model
items:
properties:
build-pipeline:
description: |-
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Pipeline used for the version; when omitted, the default pipeline will be used from 'spec.default-build-pipeline'.
Optional.
properties:
pull:
description: |-
Pipeline used for pull pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
pull-and-push:
description: |-
Pipeline used for pull and push pipeline runs.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
push:
description: |-
Pipeline used for push pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
type: object
context:
description: |-
Context directory for the version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "" (empty string, root of repository).
Optional.
type: string
dockerfileUri:
description: |-
Dockerfile path for the version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "Dockerfile".
Optional.
type: string
name:
description: |-
User defined name for the version.
After sanitization (lower case, removing spaces, etc) all version names must be unique.
Required.
type: string
revision:
description: |-
Git branch to use for the version.
Required.
type: string
skip-builds:
description: |-
When 'true' it will disable builds for a revision in the version.
Default: false.
Optional.
type: boolean
required:
- name
- revision
type: object
type: array
type: object
targetPort:
description: |-
The port to expose the component over.
Optional.
!!! Will be removed when we remove old model
type: integer
required:
- source
type: object
devfileFound:
description: DevfileFound tells if a devfile is found in the
component
type: boolean
language:
description: |-
Language specifies the language of the component detected
Example: JavaScript
type: string
projectType:
description: |-
ProjectType specifies the type of project for the component detected
Example Node.JS
type: string
type: object
description: ComponentDetected gives a list of components and the
info from detection
type: object
conditions:
description: Conditions is an array of the ComponentDetectionQuery's
status conditions
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
name: components.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: Component
listKind: ComponentList
plural: components
shortNames:
- cmp
- comp
singular: component
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.conditions[-1].status
name: Status
type: string
- jsonPath: .status.conditions[-1].reason
name: Reason
type: string
- jsonPath: .status.conditions[-1].type
name: Type
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: Component is the Schema for the components API. For description,
refer to
Hybrid Application Service Kube API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: ComponentSpec defines the desired state of Component
properties:
actions:
description: |-
Specific actions that will be processed by the controller and then removed from 'spec.actions'.
Used for triggering builds or creating pipeline configuration PRs.
Optional.
properties:
create-pipeline-configuration-pr:
description: |-
Send a PR with build pipeline configuration proposal for Component version(s).
If not set, version onboarding will be done without pipeline configuration PR.
Could be used after onboarding to create / renew build pipeline definition.
Optional.
properties:
all-versions:
description: |-
When specified it will send a PR with build pipeline configuration proposal for all Component versions.
Has precedence over 'version' and 'versions'.
Optional.
type: boolean
version:
description: |-
When specified it will send a PR with build pipeline configuration proposal for the Component version.
Can be specified together with 'versions' and any duplicates will be removed.
Optional.
type: string
versions:
description: |-
When specified it will send a PR with build pipeline configuration proposal for Component versions.
Can be specified together with 'version' and any duplicates will be removed.
Optional.
items:
type: string
type: array
type: object
trigger-push-build:
description: |-
Specify name of component version to restart the push build for.
Can be specified together with 'trigger-push-builds' and any duplicates will be removed.
Optional.
type: string
trigger-push-builds:
description: |-
Specify names of component versions to restart the push build for.
Can be specified together with 'trigger-push-build' and any duplicates will be removed.
Optional.
items:
type: string
type: array
type: object
application:
description: |-
Application is the name of the application resource that the component belongs to.
Optional.
!!! Will be removed when we remove old model
pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
build-nudges-ref:
description: |-
The list of components to be nudged by this components build upon a successful result.
Optional.
!!! Will be removed when we remove old model
items:
type: string
type: array
componentName:
description: |-
ComponentName is name of the component to be added to the Application. The name must adhere to DNS-1123 validation.
Optional.
!!! Will be removed when we remove old model
maxLength: 63
pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
type: string
containerImage:
description: |-
The container image repository to use for this component (without tag).
Either will be set by Image Repository, or explicitly specified with custom repo.
All versions of this component will use this single image repository.
Example: quay.io/org/tenant/component
Optional.
type: string
default-build-pipeline:
description: |-
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Pipeline used for all versions, unless explicitly specified for a specific version.
When omitted it has to be specified in all versions.
Optional.
properties:
pull:
description: |-
Pipeline used for pull pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
pull-and-push:
description: |-
Pipeline used for pull and push pipeline runs.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
push:
description: |-
Pipeline used for push pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
type: object
env:
description: |-
An array of environment variables to add to the component (ValueFrom not currently supported)
Optional
items:
description: EnvVar represents an environment variable present in
a Container.
properties:
name:
description: Name of the environment variable. Must be a C_IDENTIFIER.
type: string
value:
description: |-
Variable references $(VAR_NAME) are expanded
using the previously defined environment variables in the container and
any service environment variables. If a variable cannot be resolved,
the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
Escaped references will never be expanded, regardless of whether the variable
exists or not.
Defaults to "".
type: string
valueFrom:
description: Source for the environment variable's value. Cannot
be used if value is not empty.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
description: |-
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`,
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
properties:
apiVersion:
description: Version of the schema the FieldPath is
written in terms of, defaults to "v1".
type: string
fieldPath:
description: Path of the field to select in the specified
API version.
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
description: |-
Selects a resource of the container: only resources limits and requests
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
properties:
containerName:
description: 'Container name: required for volumes,
optional for env vars'
type: string
divisor:
anyOf:
- type: integer
- type: string
description: Specifies the output format of the exposed
resources, defaults to "1"
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
description: 'Required: resource to select'
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret in the pod's namespace
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
description: |-
Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
type: array
replicas:
description: |-
The number of replicas to deploy the component with.
Optional.
!!! Will be removed when we remove old model
type: integer
repository-settings:
description: |-
Used for setting additional settings for the Repository CR.
Optional.
properties:
comment-strategy:
description: |-
When specified, will set value of `comment_strategy` in the Repository CR
Optional.
type: string
github-app-token-scope-repos:
description: |-
When specified, will add values to `github_app_token_scope_repos` in the Repository CR
Optional.
items:
type: string
type: array
type: object
resources:
description: |-
Compute Resources required by this component.
Optional.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: |-
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
type: object
type: object
route:
description: |-
The route to expose the component with.
Optional.
!!! Will be removed when we remove old model
type: string
secret:
description: |-
Secret describes the name of a Kubernetes secret containing either:
1. A Personal Access Token to access the Component's git repostiory (if using a Git-source component) or
2. An Image Pull Secret to access the Component's container image (if using an Image-source component).
Optional.
!!! Will be removed when we remove old model
type: string
skip-offboarding-pr:
description: |-
When 'true', during offboarding a cleaning PR won't be created.
Default: false.
Optional.
type: boolean
skipGitOpsResourceGeneration:
description: |-
Whether or not to bypass the generation of GitOps resources for the Component. Defaults to false.
Optional.
!!! Will be removed when we remove old model
type: boolean
source:
description: |-
Source describes the Component source.
Required.
properties:
dockerfileUri:
description: |-
Dockerfile path for all versions, unless explicitly specified for a version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "Dockerfile"
Optional.
type: string
git:
description: |-
Git Source for a Component.
Optional.
!!! Will be removed when we remove old model
properties:
context:
description: |-
A relative path inside the git repo containing the component
Example: folderA/folderB/gitops.
Optional.
type: string
devfileUrl:
description: |-
If specified, the devfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Example: https://raw.githubusercontent.com/devfile-samples/devfile-sample-java-springboot-basic/main/devfile.yaml.
Optional.
type: string
dockerfileUrl:
description: |-
If specified, the dockerfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Optional.
type: string
revision:
description: |-
Specify a branch/tag/commit id. If not specified, default is `main`/`master`.
Example: devel.
Optional.
type: string
url:
description: An HTTPS URL representing the git repository
to create the component from.
type: string
required:
- url
type: object
url:
description: |-
Git repository URL for the component.
Optional.
!!! Will be required when we remove old model
type: string
versions:
description: |-
List of all versions for this component.
Optional.
!!! Will be required when we remove old model
items:
properties:
build-pipeline:
description: |-
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Pipeline used for the version; when omitted, the default pipeline will be used from 'spec.default-build-pipeline'.
Optional.
properties:
pull:
description: |-
Pipeline used for pull pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
pull-and-push:
description: |-
Pipeline used for pull and push pipeline runs.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
push:
description: |-
Pipeline used for push pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
type: object
context:
description: |-
Context directory for the version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "" (empty string, root of repository).
Optional.
type: string
dockerfileUri:
description: |-
Dockerfile path for the version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "Dockerfile".
Optional.
type: string
name:
description: |-
User defined name for the version.
After sanitization (lower case, removing spaces, etc) all version names must be unique.
Required.
type: string
revision:
description: |-
Git branch to use for the version.
Required.
type: string
skip-builds:
description: |-
When 'true' it will disable builds for a revision in the version.
Default: false.
Optional.
type: boolean
required:
- name
- revision
type: object
type: array
type: object
targetPort:
description: |-
The port to expose the component over.
Optional.
!!! Will be removed when we remove old model
type: integer
required:
- source
type: object
status:
description: ComponentStatus defines the observed state of Component
properties:
build-nudged-by:
description: |-
The list of names of Components whose builds nudge this resource (their spec.build-nudges-ref[] references this component)
!!! Will be removed when we remove old model
items:
type: string
type: array
conditions:
description: Conditions is an array of the Component's status conditions
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
devfile:
description: |-
The devfile model for the Component CR
!!! Will be removed when we remove old model
type: string
gitops:
description: |-
GitOps specific status for the Component CR
!!! Will be removed when we remove old model
properties:
branch:
description: Branch is the git branch used for the gitops repository
type: string
commitID:
description: CommitID is the most recent commit ID in the GitOps
repository for this component
type: string
context:
description: Context is the path within the gitops repository
used for the gitops resources
type: string
repositoryURL:
description: RepositoryURL is the gitops repository URL for the
component
type: string
resourceGenerationSkipped:
description: ResourceGenerationSkipped is whether or not GitOps
resource generation was skipped for the component
type: boolean
type: object
lastBuiltCommit:
description: |-
The last built commit id (SHA-1 checksum) from the latest component build.
Example: 41fbdb124775323f58fd5ce93c70bb7d79c20650.
!!! Will be removed when we remove old model SHOULD this be in version specific section??
type: string
lastPromotedImage:
description: |-
The last digest image component promoted with.
Example: quay.io/someorg/somerepository@sha256:5ca85b7f7b9da18a9c4101e81ee1d9bac35ac2b0b0221908ff7389204660a262.
!!! Will be removed when we remove old model SHOULD this be in version specific section??
type: string
message:
description: |-
General error message, not specific to any version (version-specific errors are in versions[].message).
Example: "Spec.ContainerImage is not set" or "GitHub App is not installed".
type: string
pac-repository:
description: Name of Repository CR for the component.
type: string
repository-settings:
description: Identifies which additional settings are used for the
Repository CR.
properties:
comment-strategy:
description: |-
When specified, will set value of `comment_strategy` in the Repository CR
Optional.
type: string
github-app-token-scope-repos:
description: |-
When specified, will add values to `github_app_token_scope_repos` in the Repository CR
Optional.
items:
type: string
type: array
type: object
versions:
description: |-
All versions which were processed by onboarding.
When version is removed from the spec, offboarding will remove it from the status.
items:
properties:
configuration-merge-url:
description: |-
Link with onboarding PR if requested by 'spec.actions.create-pipeline-configuration-pr'.
Only present if onboarding was successful.
Example: https://github.com/user/repo/pull/1
type: string
message:
description: |-
Version specific error message.
Example: "pipeline for this version doesn't exist"
type: string
name:
description: Name for the version.
type: string
onboarding-status:
description: Onboarding status will be either 'succeeded' or
'failed' ('disabled' won't be there because we will just remove
specific version section).
type: string
onboarding-time:
description: |-
Timestamp for when onboarding happened.
Only present if onboarding was successful.
Example: "29 May 2024 15:11:16 UTC"
type: string
revision:
description: Git revision (branch) for the version.
type: string
skip-builds:
description: Identifies that builds for the revision in the
version are disabled.
type: boolean
type: object
type: array
webhook:
description: |-
Webhook URL generated by Builds
!!! Will be removed when we remove old model
type: string
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
creationTimestamp: null
name: deploymenttargetclaims.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: DeploymentTargetClaim
listKind: DeploymentTargetClaimList
plural: deploymenttargetclaims
singular: deploymenttargetclaim
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: DeploymentTargetClaim is the Schema for the deploymenttargetclaims
API. It represents a request for a DeploymentTarget.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: DeploymentTargetClaimSpec defines the desired state of DeploymentTargetClaim
properties:
deploymentTargetClassName:
type: string
targetName:
type: string
required:
- deploymentTargetClassName
type: object
status:
description: DeploymentTargetClaimStatus defines the observed state of
DeploymentTargetClaim
properties:
conditions:
description: Conditions is an array of the DeploymentTargetClaim's
status conditions
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's
current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
phase:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
creationTimestamp: null
name: deploymenttargetclasses.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: DeploymentTargetClass
listKind: DeploymentTargetClassList
plural: deploymenttargetclasses
singular: deploymenttargetclass
scope: Cluster
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: DeploymentTargetClass is the Schema for the deploymenttargetclasses
API. Defines DeploymentTarget properties that should be abstracted from
the controller/user that creates a DTC and wants a DT to be provisioned
automatically for it.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: DeploymentTargetClassSpec defines the desired state of DeploymentTargetClass
properties:
parameters:
description: Parameters are used to forward additional information
to the provisioner.
type: object
provisioner:
type: string
reclaimPolicy:
description: The reclaimPolicy field will tell the provisioner what
to do with the DT once its corresponding DTC is deleted, the values
can be Retain or Delete.
type: string
required:
- provisioner
- reclaimPolicy
type: object
status:
description: DeploymentTargetClassStatus defines the observed state of
DeploymentTargetClass
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
creationTimestamp: null
name: deploymenttargets.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: DeploymentTarget
listKind: DeploymentTargetList
plural: deploymenttargets
singular: deploymenttarget
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: DeploymentTarget is the Schema for the deploymenttargets API.
A deployment target, usually a K8s api endpoint. The credentials for connecting
to the target will be stored in a secret which will be referenced in the
clusterCredentialsSecret field
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: DeploymentTargetSpec defines the desired state of DeploymentTarget
properties:
claimRef:
type: string
deploymentTargetClassName:
type: string
kubernetesCredentials:
description: DeploymentTargetKubernetesClusterCredentials defines
the K8s cluster credentials for the DeploymentTarget.
properties:
allowInsecureSkipTLSVerify:
description: Indicates that a Service should not check the TLS
certificate when connecting to this target.
type: boolean
apiURL:
description: APIURL is a reference to a cluster API url.
type: string
clusterCredentialsSecret:
description: ClusterCredentialsSecret is a reference to the name
of k8s Secret that contains a kubeconfig.
type: string
defaultNamespace:
type: string
required:
- allowInsecureSkipTLSVerify
- apiURL
- clusterCredentialsSecret
- defaultNamespace
type: object
required:
- deploymentTargetClassName
- kubernetesCredentials
type: object
status:
description: DeploymentTargetStatus defines the observed state of DeploymentTarget
properties:
conditions:
description: Conditions is an array of the DeploymentTarget's status
conditions
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's
current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
phase:
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
creationTimestamp: null
name: environments.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: Environment
listKind: EnvironmentList
plural: environments
shortNames:
- env
singular: environment
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: Environment is the Schema for the environments API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: EnvironmentSpec defines the desired state of Environment
properties:
configuration:
description: Configuration contains environment-specific details for
Applications/Components that are deployed to the Environment.
properties:
env:
description: Env is an array of standard environment vairables
items:
description: EnvVarPair describes environment variables to use
for the component
properties:
name:
description: Name is the environment variable name
type: string
value:
description: Value is the environment variable value
type: string
required:
- name
- value
type: object
type: array
target:
description: Target is used to reference a DeploymentTargetClaim
for a target Environment. The Environment controller uses the
referenced DeploymentTargetClaim to access its bounded DeploymentTarget
with cluster credential secret.
properties:
deploymentTargetClaim:
description: DeploymentTargetClaimConfig specifies the DeploymentTargetClaim
details for a given Environment.
properties:
claimName:
type: string
required:
- claimName
type: object
required:
- deploymentTargetClaim
type: object
type: object
deploymentStrategy:
description: DeploymentStrategy is the promotion strategy for the
Environment See Environment API doc for details.
type: string
displayName:
description: DisplayName is the user-visible, user-definable name
for the environment (but not used for functional requirements)
type: string
parentEnvironment:
description: 'ParentEnvironment references another Environment defined
in the namespace: when automated promotion is enabled, promotions
to the parent environment will cause this environment to be promoted
to. See Environment API doc for details.'
type: string
tags:
description: Tags are a user-visisble, user-definable set of tags
that can be applied to the environment
items:
type: string
type: array
type:
description: 'DEPRECATED: Type is whether the Environment is a POC
or non-POC environment - This field is deprecated, and should not
be used.'
type: string
unstableConfigurationFields:
description: 'UnstableConfigurationFields are experimental/prototype:
the API has not been finalized here, and is subject to breaking
changes. See comment on UnstableEnvironmentConfiguration for details.'
properties:
clusterType:
description: ClusterType indicates whether the target environment
is Kubernetes or OpenShift
type: string
kubernetesCredentials:
description: KubernetesClusterCredentials contains cluster credentials
for a target Kubernetes/OpenShift cluster.
properties:
allowInsecureSkipTLSVerify:
description: Indicates that ArgoCD/GitOps Service should not
check the TLS certificate.
type: boolean
apiURL:
description: APIURL is a reference to a cluster API url defined
within the kube config file of the cluster credentials secret.
type: string
clusterCredentialsSecret:
description: "ClusterCredentialsSecret is a reference to the
name of k8s Secret, defined within the same namespace as
the Environment resource, that contains a kubeconfig. The
Secret must be of type 'managed-gitops.redhat.com/managed-environment'
\n See this temporary URL for details: https://github.com/redhat-appstudio/managed-gitops/tree/main/examples/m6-demo#gitopsdeploymentmanagedenvironment-resource"
type: string
clusterResources:
description: "ClusterResources is used in conjuction with
the Namespace field. If the Namespaces field is non-empty,
this field will be used to determine whether Argo CD should
attempt to manage cluster-scoped resources. - If Namespaces
field is empty, this field is not used. - If you are familiar
with Argo CD: this field is equivalent to the field of the
same name in the Argo CD Cluster Secret. \n Optional, default
to false."
type: boolean
ingressDomain:
description: IngressDomain is the cluster's ingress domain.
For example, in minikube it would be $(minikube ip).nip.io
and in OCP it would look like apps.xyz.rhcloud.com. If clusterType
== "Kubernetes", ingressDomain is mandatory and is enforced
by the webhook validation
type: string
namespaces:
description: "Namespaces allows one to indicate which Namespaces
the Secret's ServiceAccount has access to. \n Optional,
defaults to empty. If empty, it is assumed that the ServiceAccount
has access to all Namespaces. \n The ServiceAccount that
GitOps Service/Argo CD uses to deploy may not have access
to all of the Namespaces on a cluster. If not specified,
it is assumed that the Argo CD ServiceAccount has read/write
at cluster-scope. - If you are familiar with Argo CD: this
field is equivalent to the field of the same name in the
Argo CD Cluster Secret."
items:
type: string
type: array
targetNamespace:
description: TargetNamespace is the default destination target
on the cluster for deployments. This Namespace will be used
for any GitOps repository K8s resources where the `.metadata.Namespace`
field is not specified.
type: string
required:
- allowInsecureSkipTLSVerify
- apiURL
- clusterCredentialsSecret
- targetNamespace
type: object
type: object
required:
- deploymentStrategy
- displayName
type: object
status:
description: EnvironmentStatus defines the observed state of Environment
properties:
conditions:
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's
current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
creationTimestamp: null
name: promotionruns.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: PromotionRun
listKind: PromotionRunList
plural: promotionruns
shortNames:
- apr
- promotion
singular: promotionrun
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: PromotionRun is the Schema for the promotionruns API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: PromotionRunSpec defines the desired state of PromotionRun
properties:
application:
description: Application is the name of an Application resource defined
within the namespaced, and which is the target of the promotion
type: string
automatedPromotion:
description: 'AutomatedPromotion is for fields specific to automated
promotion Only one field should be defined: either ''manualPromotion''
or ''automatedPromotion'', but not both.'
properties:
initialEnvironment:
description: 'InitialEnvironment: start iterating through the
digraph, beginning with the value specified in ''initialEnvironment'''
type: string
required:
- initialEnvironment
type: object
manualPromotion:
description: 'ManualPromotion is for fields specific to manual promotion.
Only one field should be defined: either ''manualPromotion'' or
''automatedPromotion'', but not both.'
properties:
targetEnvironment:
description: TargetEnvironment is the environment to promote to
type: string
required:
- targetEnvironment
type: object
snapshot:
description: Snapshot refers to the name of a Snapshot resource defined
within the namespace, used to promote container images between Environments.
type: string
required:
- application
- snapshot
type: object
status:
description: PromotionRunStatus defines the observed state of PromotionRun
properties:
activeBindings:
description: 'ActiveBindings is the list of active bindings currently
being promoted to: - For an automated promotion, there can be multiple
active bindings at a time (one for each env at a particular tree
depth) - For a manual promotion, there will be only one.'
items:
type: string
type: array
completionResult:
description: CompletionResult indicates success/failure once the promotion
has completed all work. CompletionResult will only have a value
if State field is 'Complete'.
type: string
conditions:
items:
description: PromotionRunCondition contains details about an PromotionRun
condition, which is usually an error or warning
properties:
lastProbeTime:
description: LastProbeTime is the last time the condition was
observed.
format: date-time
type: string
lastTransitionTime:
description: LastTransitionTime is the last time the condition
transitioned from one status to another.
format: date-time
type: string
message:
description: Message contains human-readable message indicating
details about the last condition.
type: string
reason:
description: Reason is a unique, one-word, CamelCase reason
for the condition's last transition.
type: string
status:
description: Status is the status of the condition.
type: string
type:
description: Type is a PromotionRun condition type
type: string
required:
- status
- type
type: object
type: array
environmentStatus:
description: EnvironmentStatus represents the set of steps taken during
the current promotion
items:
description: 'PromotionRunEnvironmentStatus represents the set of
steps taken during the current promotion: - manual promotions
will only have a single step. - automated promotions may have
one or more steps, depending on how many environments have been
promoted to.'
properties:
displayStatus:
description: DisplayStatus is human-readible description of
the current state/status.
type: string
environmentName:
description: EnvironmentName is the name of the environment
that was promoted to in this step
type: string
status:
description: Status is/was the result of promoting to that environment.
type: string
step:
description: Step is the sequential number of the step in the
array, starting with 1
type: integer
required:
- displayStatus
- environmentName
- status
- step
type: object
type: array
promotionStartTime:
description: PromotionStartTime is set to the value when the PromotionRun
Reconciler first started the promotion.
format: date-time
type: string
state:
description: State indicates whether or not the overall promotion
(either manual or automated is complete)
type: string
required:
- state
type: object
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.10.0
creationTimestamp: null
name: snapshotenvironmentbindings.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: SnapshotEnvironmentBinding
listKind: SnapshotEnvironmentBindingList
plural: snapshotenvironmentbindings
shortNames:
- aseb
- binding
singular: snapshotenvironmentbinding
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: "The `SnapshotEnvironmentBinding` resource specifies the deployment
relationship between (a single application, a single environment, and a
single snapshot) combination. \n It can be thought of as a 3-tuple that
defines what Application should be deployed to what Environment, and which
Snapshot should be deployed (Snapshot being the specific component container
image versions of that Aplication that should be deployed to that Environment).
\n **Note**: There should not exist multiple SnapshotEnvironmentBinding
CRs in a Namespace that share the same Application and Environment value.
For example: - Good: - SnapshotEnvironmentBinding A: (application=appA,
environment=dev, snapshot=my-snapshot) - SnapshotEnvironmentBinding B: (application=appA,
environment=staging, snapshot=my-snapshot) \n - Bad: - SnapshotEnvironmentBinding
A: (application=*appA*, environment=*staging*, snapshot=my-snapshot) - SnapshotEnvironmentBinding
B: (application=*appA*, environment=*staging*, snapshot=second-snapshot)"
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: See 'SnapshotEnvironmentBinding' resource for details of
this resource. SnapshotEnvironmentBindingSpec defines the desired state
of SnapshotEnvironmentBinding.
properties:
application:
description: Application is a reference to the Application resource
(defined in the same namespace) that we are deploying as part of
this SnapshotEnvironmentBinding. Required
type: string
components:
description: Component-specific configuration information, used when
generating GitOps repository resources. Required.
items:
description: BindingComponent contains individual component data
properties:
configuration:
description: Configuration describes GitOps repository customizations
that are specific to the the component-application-environment
combination. - Values defined in this struct will overwrite
values from Application/Environment/Component. Optional
properties:
env:
description: Env describes environment variables to use
for the component. Optional.
items:
description: EnvVarPair describes environment variables
to use for the component
properties:
name:
description: Name is the environment variable name
type: string
value:
description: Value is the environment variable value
type: string
required:
- name
- value
type: object
type: array
replicas:
description: Replicas defines the number of replicas to
use for the component Optional
type: integer
resources:
description: Resources defines the Compute Resources required
by the component. Optional.
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Limits describes the maximum amount of
compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
description: 'Requests describes the minimum amount
of compute resources required. If Requests is omitted
for a container, it defaults to Limits if that is
explicitly specified, otherwise to an implementation-defined
value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
type: object
type: object
type: object
name:
description: Name is the name of the component.
type: string
required:
- name
type: object
type: array
environment:
description: Environment is the environment resource (defined in the
namespace) that the binding will deploy to. Required
type: string
snapshot:
description: Snapshot is the Snapshot resource (defined in the namespace)
that contains the container image versions for the components of
the Application. Required
type: string
required:
- application
- components
- environment
- snapshot
type: object
status:
description: SnapshotEnvironmentBindingStatus defines the observed state
of SnapshotEnvironmentBinding
properties:
bindingConditions:
description: BindingConditions will contain user-oriented error messages
from the SnapshotEnvironmentBinding reconciler.
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's
current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
componentDeploymentConditions:
description: ComponentDeploymentConditions describes the deployment
status of all of the Components of the Application. This status
is updated by the Gitops Service's SnapshotEnvironmentBinding controller
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's
current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
components:
description: Components describes a component's GitOps repository
information. This status is updated by the Application Service controller.
items:
description: BindingComponentStatus contains the status of the components
properties:
generatedRouteName:
description: GeneratedRouteName is the name of the route that
was generated for the Component, if a Route was generated.
type: string
gitopsRepository:
description: GitOpsRepository contains the Git URL, path, branch,
and most recent commit id for the component
properties:
branch:
description: Branch is the branch to use when accessing
the GitOps repository
type: string
commitID:
description: CommitID contains the most recent commit ID
for which the Kubernetes resources of the Component were
modified.
type: string
generatedResources:
description: GeneratedResources contains the list of GitOps
repository resources generated by the application service
controller in the overlays/ dir, for example,
'deployment-patch.yaml'. This is stored to differentiate
between application-service controller generated resources
vs resources added by a user
items:
type: string
type: array
path:
description: 'Path is a pointer to a folder in the GitOps
repo, containing a kustomization.yaml NOTE: Each component-env
combination must have it''s own separate path'
type: string
url:
description: URL is the Git repository URL e.g. The Git
repository that contains the K8s resources to deployment
for the component of the application.
type: string
required:
- branch
- commitID
- generatedResources
- path
- url
type: object
name:
description: Name is the name of the component.
type: string
required:
- gitopsRepository
- name
type: object
type: array
gitopsDeployments:
description: GitOpsDeployments describes the set of GitOpsDeployment
resources that are owned by the SnapshotEnvironmentBinding, and
are deploying the Components of the Application to the target Environment.
To determine the health/sync status of a binding, you can look at
the GitOpsDeployments decribed here.
items:
description: "BindingStatusGitOpsDeployment describes an individual
reference to a GitOpsDeployment resources that is used to deploy
this binding. \n To determine the health/sync status of a binding,
you can look at the GitOpsDeployments decribed here."
properties:
commitID:
description: GitOpsDeploymentCommitID is the commit ID of the
GitOpsDeployment
type: string
componentName:
description: ComponentName is the name of the component in the
(component, gitopsdeployment) pair
type: string
gitopsDeployment:
description: GitOpsDeployment is a reference to the name of
a GitOpsDeployment resource which is used to deploy the binding.
The Health/sync status for the binding can thus be read from
the references GitOpsDeployment
type: string
health:
description: GitOpsDeploymentHealthStatus is the health status
of the deployment owned by the binding
type: string
syncStatus:
description: GitOpsDeploymentSyncStatus is the sync status of
the deployment owned by the binding
type: string
required:
- componentName
type: object
type: array
gitopsRepoConditions:
description: Condition describes operations on the GitOps repository,
for example, if there were issues with generating/processing the
repository. This status is updated by the Application Service controller.
items:
description: "Condition contains details for one aspect of the current
state of this API Resource. --- This struct is intended for direct
use as an array at the field path .status.conditions. For example,
type FooStatus struct{ // Represents the observations of a foo's
current state. // Known .status.conditions.type are: \"Available\",
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
// +listType=map // +listMapKey=type Conditions []metav1.Condition
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition
transitioned from one status to another. This should be when
the underlying condition changed. If that is not known, then
using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating
details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation
that the condition was set based upon. For instance, if .metadata.generation
is currently 12, but the .status.conditions[x].observedGeneration
is 9, the condition is out of date with respect to the current
state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating
the reason for the condition's last transition. Producers
of specific condition types may define expected values and
meanings for this field, and whether the values are considered
a guaranteed API. The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
--- Many .condition.type values are consistent across resources
like Available, but because arbitrary conditions can be useful
(see .node.status.conditions), the ability to deconflict is
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
name: snapshots.appstudio.redhat.com
spec:
group: appstudio.redhat.com
names:
kind: Snapshot
listKind: SnapshotList
plural: snapshots
shortNames:
- as
- snapshot
singular: snapshot
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: Snapshot is the Schema for the snapshots API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: SnapshotSpec defines the desired state of Snapshot
properties:
application:
description: Application is a reference to the name of an Application
resource within the same namespace, which defines the target application
for the Snapshot (when used with a Binding).
type: string
artifacts:
description: |-
Artifacts is a placeholder section for 'artifact links' we want to maintain to other AppStudio resources.
See Environment API doc for details.
properties:
unstableFields:
description: |-
NOTE: This field (and struct) are placeholders.
- Until this API is stabilized, consumers of the API may store any unstructured JSON/YAML data here,
but no backwards compatibility will be preserved.
x-kubernetes-preserve-unknown-fields: true
type: object
componentGroup:
description: ComponentGroup is a reference to the name of a ComponentGroup
resource within the same namespace, which defines the target ComponentGroup
for the Snapshot.
type: string
components:
description: Components field contains the sets of components to deploy
as part of this snapshot.
items:
description: SnapshotComponent
properties:
containerImage:
description: ContainerImage is the container image to use when
deploying the component, as part of a Snapshot
type: string
name:
description: Name is the name of the component
type: string
source:
description: |-
Source describes the Component source.
Optional.
properties:
dockerfileUri:
description: |-
Dockerfile path for all versions, unless explicitly specified for a version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "Dockerfile"
Optional.
type: string
git:
description: |-
Git Source for a Component.
Optional.
!!! Will be removed when we remove old model
properties:
context:
description: |-
A relative path inside the git repo containing the component
Example: folderA/folderB/gitops.
Optional.
type: string
devfileUrl:
description: |-
If specified, the devfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Example: https://raw.githubusercontent.com/devfile-samples/devfile-sample-java-springboot-basic/main/devfile.yaml.
Optional.
type: string
dockerfileUrl:
description: |-
If specified, the dockerfile at the URI will be used for the component. Can be a local path inside the repository, or an external URL.
Optional.
type: string
revision:
description: |-
Specify a branch/tag/commit id. If not specified, default is `main`/`master`.
Example: devel.
Optional.
type: string
url:
description: An HTTPS URL representing the git repository
to create the component from.
type: string
required:
- url
type: object
url:
description: |-
Git repository URL for the component.
Optional.
!!! Will be required when we remove old model
type: string
versions:
description: |-
List of all versions for this component.
Optional.
!!! Will be required when we remove old model
items:
properties:
build-pipeline:
description: |-
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Pipeline used for the version; when omitted, the default pipeline will be used from 'spec.default-build-pipeline'.
Optional.
properties:
pull:
description: |-
Pipeline used for pull pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
pull-and-push:
description: |-
Pipeline used for pull and push pipeline runs.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
push:
description: |-
Pipeline used for push pipeline run.
Can specify just one of: pipelinespec-from-bundle, pipelineref-by-name, pipelineref-by-git-resolver.
Optional.
properties:
pipelineref-by-git-resolver:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline via git resolver,
specifying repository with a pipeline definition.
Optional.
properties:
pathInRepo:
description: |-
Path to the pipeline definition file within the repository.
Example: pipeline/push.yaml
Required.
type: string
revision:
description: |-
Git revision (branch, tag, or commit) to use.
Example: main
Required.
type: string
url:
description: |-
Git repository URL containing the pipeline definition.
Example: https://github.com/custom-pipelines/pipelines.git
Required.
type: string
required:
- pathInRepo
- revision
- url
type: object
pipelineref-by-name:
description: |-
Will be used to fill out PipelineRef in pipeline runs to user specific pipeline.
Such pipeline definition has to be in .tekton.
Optional.
type: string
pipelinespec-from-bundle:
description: |-
Will be used to fetch bundle and fill out PipelineSpec in pipeline runs.
Pipeline name is based on build-pipeline-config CM in build-service NS.
When 'latest' bundle is specified, bundle image will be used from CM.
When bundle is specified to specific image bundle, then that one will be used
and pipeline name will be used to fetch pipeline from that bundle.
Optional.
properties:
bundle:
description: |-
Bundle image reference. Use 'latest' to get bundle from build-pipeline-config CM,
or specify a specific bundle image.
Required.
type: string
name:
description: |-
Pipeline name to fetch from the bundle, or from build-pipeline-config CM.
Required.
type: string
required:
- bundle
- name
type: object
type: object
type: object
context:
description: |-
Context directory for the version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "" (empty string, root of repository).
Optional.
type: string
dockerfileUri:
description: |-
Dockerfile path for the version.
Used only when sending a PR with build pipeline configuration was requested via 'spec.actions.create-pipeline-configuration-pr'.
Default: "Dockerfile".
Optional.
type: string
name:
description: |-
User defined name for the version.
After sanitization (lower case, removing spaces, etc) all version names must be unique.
Required.
type: string
revision:
description: |-
Git branch to use for the version.
Required.
type: string
skip-builds:
description: |-
When 'true' it will disable builds for a revision in the version.
Default: false.
Optional.
type: boolean
required:
- name
- revision
type: object
type: array
type: object
version:
description: |-
Version is the component verison. Only required if multiple versions of the same
Component are in the Snapshot
type: string
required:
- containerImage
- name
type: object
type: array
displayDescription:
description: DisplayDescription is a user-visible, user definable
description for the resource (and is not used for any functional
behaviour)
type: string
displayName:
description: DisplayName is a user-visible, user-definable name for
the resource (and is not used for any functional behaviour)
type: string
type: object
status:
description: SnapshotStatus defines the observed state of Snapshot
properties:
conditions:
description: Conditions represent the latest available observations
for the Snapshot
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}