apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.3.0 creationTimestamp: null name: workspaces.app.terraform.io spec: group: app.terraform.io names: kind: Workspace listKind: WorkspaceList plural: workspaces singular: workspace scope: Namespaced subresources: status: {} validation: openAPIV3Schema: description: Workspace is the Schema for the workspaces 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: WorkspaceSpec defines the desired state of Workspace properties: agentPoolID: description: Specifies the agent pool ID we wish to use. type: string module: description: Module source and version to use nullable: true properties: source: description: Any remote module source (version control, registry) type: string version: description: Module version for registry modules type: string required: - source type: object organization: description: Terraform Cloud organization type: string outputs: description: Outputs denote outputs wanted items: description: OutputSpec specifies which values need to be output properties: key: description: Output name type: string moduleOutputName: description: Attribute name in module type: string type: object type: array secretsMountPath: description: File path within operator pod to load workspace secrets type: string sshKeyID: description: SSH Key ID. This key must already exist in the TF Cloud organization. This can either be the user assigned name of the SSH Key, or the system assigned ID. type: string terraformVersion: description: Terraform version used for this workspace. The default is `latest`. type: string variables: description: Variables as inputs to module items: description: Variable denotes an input to the module properties: environmentVariable: description: EnvironmentVariable denotes if this variable should be created as environment variable type: boolean hcl: description: String input should be an HCL-formatted variable type: boolean key: description: Variable name type: string sensitive: description: Variable is a secret and should be retrieved from file type: boolean value: description: Variable value type: string valueFrom: description: Source for the 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 TODO: Add other useful fields. apiVersion, kind, uid?' type: string optional: description: Specify whether the ConfigMap or its key must be defined type: boolean required: - key type: object 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 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 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 TODO: Add other useful fields. apiVersion, kind, uid?' type: string optional: description: Specify whether the Secret or its key must be defined type: boolean required: - key type: object type: object required: - environmentVariable - key - sensitive type: object type: array vcs: description: Details of the VCS repository we want to connect to the workspace nullable: true properties: branch: description: The repository branch to use type: string ingress_submodules: description: Whether submodules should be fetched when cloning the VCS repository (Defaults to false) type: boolean repo_identifier: description: A reference to your VCS repository in the format org/repo type: string token_id: description: Token ID of the VCS Connection (OAuth Connection Token) to use https://www.terraform.io/docs/cloud/vcs type: string required: - repo_identifier - token_id type: object required: - organization - secretsMountPath type: object status: description: WorkspaceStatus defines the observed state of Workspace properties: configVersionID: description: Configuration Version ID type: string outputs: description: Outputs from state file items: description: OutputStatus outputs the values of Terraform output properties: key: description: Attribute name in module type: string value: description: Value type: string type: object type: array runID: description: Run ID type: string runStatus: description: Run Status gets the run status type: string workspaceID: description: Workspace ID type: string required: - configVersionID - runID - runStatus - workspaceID type: object type: object version: v1alpha1 versions: - name: v1alpha1 served: true storage: true status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []