Documentation
¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the app v1alpha2 API group +kubebuilder:object:generate=true +groupName=app.terraform.io
Index ¶
- Variables
- type AgentDeployment
- type AgentDeploymentAutoscaling
- type AgentDeploymentAutoscalingCooldownPeriod
- type AgentDeploymentAutoscalingStatus
- type AgentPool
- type AgentPoolList
- type AgentPoolSpec
- type AgentPoolStatus
- type AgentToken
- type ConfigurationVersionStatus
- type ConsumerWorkspace
- type CustomPermissions
- type CustomProjectPermissions
- type Module
- type ModuleList
- type ModuleOutput
- type ModuleSource
- type ModuleSpec
- type ModuleStatus
- type ModuleVariable
- type ModuleWorkspace
- type Notification
- type NotificationTrigger
- type OutputStatus
- type PlanStatus
- type Project
- type ProjectList
- type ProjectSpec
- type ProjectStatus
- type ProjectTeamAccess
- type RemoteStateSharing
- type RunStatus
- type RunTrigger
- type SSHKey
- type Tag
- type TargetWorkspace
- type Team
- type TeamAccess
- type Token
- type ValueFrom
- type Variable
- type VariableStatus
- type VersionControl
- type Workspace
- type WorkspaceAgentPool
- type WorkspaceList
- type WorkspaceProject
- type WorkspaceRunTask
- type WorkspaceSpec
- type WorkspaceStatus
- func (s *WorkspaceStatus) AddOrUpdateVariableStatus(variable VariableStatus)
- func (in *WorkspaceStatus) DeepCopy() *WorkspaceStatus
- func (in *WorkspaceStatus) DeepCopyInto(out *WorkspaceStatus)
- func (s *WorkspaceStatus) DeleteVariableStatus(variable VariableStatus)
- func (s *WorkspaceStatus) GetVariableStatus(variable VariableStatus) *VariableStatus
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "app.terraform.io", Version: "v1alpha2"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type AgentDeployment ¶
type AgentDeployment struct { Replicas *int32 `json:"replicas,omitempty"` Spec *v1.PodSpec `json:"spec,omitempty"` }
func (*AgentDeployment) DeepCopy ¶
func (in *AgentDeployment) DeepCopy() *AgentDeployment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentDeployment.
func (*AgentDeployment) DeepCopyInto ¶
func (in *AgentDeployment) DeepCopyInto(out *AgentDeployment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentDeploymentAutoscaling ¶
type AgentDeploymentAutoscaling struct { // MaxReplicas is the maximum number of replicas for the Agent deployment. MaxReplicas *int32 `json:"maxReplicas"` // MinReplicas is the minimum number of replicas for the Agent deployment. MinReplicas *int32 `json:"minReplicas"` // TargetWorkspaces is a list of HCP Terraform Workspaces which // the agent pool should scale up to meet demand. When this field // is ommited the autoscaler will target all workspaces that are // associated with the AgentPool. // //+optional TargetWorkspaces *[]TargetWorkspace `json:"targetWorkspaces"` // CooldownPeriodSeconds is the time to wait between scaling events. Defaults to 300. // //+optional //+kubebuilder:default:=300 CooldownPeriodSeconds *int32 `json:"cooldownPeriodSeconds,omitempty"` // CoolDownPeriod configures the period to wait between scaling up and scaling down //+optional CooldownPeriod *AgentDeploymentAutoscalingCooldownPeriod `json:"cooldownPeriod,omitempty"` }
AgentDeploymentAutoscaling allows you to configure the operator to scale the deployment for an AgentPool up and down to meet demand.
func (*AgentDeploymentAutoscaling) DeepCopy ¶
func (in *AgentDeploymentAutoscaling) DeepCopy() *AgentDeploymentAutoscaling
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentDeploymentAutoscaling.
func (*AgentDeploymentAutoscaling) DeepCopyInto ¶
func (in *AgentDeploymentAutoscaling) DeepCopyInto(out *AgentDeploymentAutoscaling)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentDeploymentAutoscalingCooldownPeriod ¶
type AgentDeploymentAutoscalingCooldownPeriod struct { // ScaleUpSeconds is the time to wait before scaling up. //+optional ScaleUpSeconds *int32 `json:"scaleUpSeconds,omitempty"` // ScaleDownSeconds is the time to wait before scaling down. //+optional ScaleDownSeconds *int32 `json:"scaleDownSeconds,omitempty"` }
AgentDeploymentAutoscalingCooldownPeriod configures the period to wait between scaling up and scaling down
func (*AgentDeploymentAutoscalingCooldownPeriod) DeepCopy ¶
func (in *AgentDeploymentAutoscalingCooldownPeriod) DeepCopy() *AgentDeploymentAutoscalingCooldownPeriod
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentDeploymentAutoscalingCooldownPeriod.
func (*AgentDeploymentAutoscalingCooldownPeriod) DeepCopyInto ¶
func (in *AgentDeploymentAutoscalingCooldownPeriod) DeepCopyInto(out *AgentDeploymentAutoscalingCooldownPeriod)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentDeploymentAutoscalingStatus ¶
type AgentDeploymentAutoscalingStatus struct { // Desired number of agent replicas //+optional DesiredReplicas *int32 `json:"desiredReplicas,omitempty"` // Last time the agent pool was scaledx //+optional LastScalingEvent *metav1.Time `json:"lastScalingEvent,omitempty"` }
AgentDeploymentAutoscalingStatus
func (*AgentDeploymentAutoscalingStatus) DeepCopy ¶
func (in *AgentDeploymentAutoscalingStatus) DeepCopy() *AgentDeploymentAutoscalingStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentDeploymentAutoscalingStatus.
func (*AgentDeploymentAutoscalingStatus) DeepCopyInto ¶
func (in *AgentDeploymentAutoscalingStatus) DeepCopyInto(out *AgentDeploymentAutoscalingStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentPool ¶
type AgentPool struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec AgentPoolSpec `json:"spec"` Status AgentPoolStatus `json:"status,omitempty"` }
AgentPool is the Schema for the agentpools API.
func (*AgentPool) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPool.
func (*AgentPool) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AgentPool) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*AgentPool) IsCreationCandidate ¶
func (*AgentPool) ValidateSpec ¶
type AgentPoolList ¶
type AgentPoolList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []AgentPool `json:"items"` }
AgentPoolList contains a list of AgentPool.
func (*AgentPoolList) DeepCopy ¶
func (in *AgentPoolList) DeepCopy() *AgentPoolList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolList.
func (*AgentPoolList) DeepCopyInto ¶
func (in *AgentPoolList) DeepCopyInto(out *AgentPoolList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AgentPoolList) DeepCopyObject ¶
func (in *AgentPoolList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AgentPoolSpec ¶
type AgentPoolSpec struct { // Agent Pool name. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/agents/agent-pools // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // Organization name where the Workspace will be created. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/organizations // //+kubebuilder:validation:MinLength:=1 Organization string `json:"organization"` // API Token to be used for API calls. Token Token `json:"token"` // List of the agent tokens to generate. // //+kubebuilder:validation:MinItems:=1 //+optional AgentTokens []*AgentToken `json:"agentTokens,omitempty"` // Agent deployment settings //+optional AgentDeployment *AgentDeployment `json:"agentDeployment,omitempty"` // Agent deployment settings //+optional AgentDeploymentAutoscaling *AgentDeploymentAutoscaling `json:"autoscaling,omitempty"` }
AgentPoolSpec defines the desired state of AgentPool.
func (*AgentPoolSpec) DeepCopy ¶
func (in *AgentPoolSpec) DeepCopy() *AgentPoolSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolSpec.
func (*AgentPoolSpec) DeepCopyInto ¶
func (in *AgentPoolSpec) DeepCopyInto(out *AgentPoolSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentPoolStatus ¶
type AgentPoolStatus struct { // Real world state generation. ObservedGeneration int64 `json:"observedGeneration"` // Agent Pool ID that is managed by the controller. AgentPoolID string `json:"agentPoolID"` // List of the agent tokens generated by the controller. // //+optional AgentTokens []*AgentToken `json:"agentTokens,omitempty"` // Name of the agent deployment generated by the controller. // //+optional AgentDeploymentName string `json:"agentDeploymentName,omitempty"` // Autoscaling Status // //+optional AgentDeploymentAutoscalingStatus *AgentDeploymentAutoscalingStatus `json:"autoscaling,omitempty"` }
AgentPoolStatus defines the observed state of AgentPool.
func (*AgentPoolStatus) DeepCopy ¶
func (in *AgentPoolStatus) DeepCopy() *AgentPoolStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolStatus.
func (*AgentPoolStatus) DeepCopyInto ¶
func (in *AgentPoolStatus) DeepCopyInto(out *AgentPoolStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AgentToken ¶
type AgentToken struct { // Agent Token name. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // Agent Token ID. // //+kubebuilder:validation:Pattern:="^at-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Timestamp of when the agent token was created. // //+optional CreatedAt *int64 `json:"createdAt,omitempty"` // Timestamp of when the agent token was last used. // //+optional LastUsedAt *int64 `json:"lastUsedAt,omitempty"` }
Agent Token is a secret token that a HCP Terraform Agent is used to connect to the HCP Terraform Agent Pool. In `spec` only the field `Name` is allowed, the rest are used in `status`. More infromation:
func (*AgentToken) DeepCopy ¶
func (in *AgentToken) DeepCopy() *AgentToken
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentToken.
func (*AgentToken) DeepCopyInto ¶
func (in *AgentToken) DeepCopyInto(out *AgentToken)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationVersionStatus ¶
type ConfigurationVersionStatus struct { // Configuration Version ID. ID string `json:"id"` // Configuration Version Status. Status string `json:"status"` }
A configuration version is a resource used to reference the uploaded configuration files. More information:
- https://developer.hashicorp.com/terraform/cloud-docs/api-docs/configuration-versions
- https://developer.hashicorp.com/terraform/cloud-docs/run/api
func (*ConfigurationVersionStatus) DeepCopy ¶
func (in *ConfigurationVersionStatus) DeepCopy() *ConfigurationVersionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationVersionStatus.
func (*ConfigurationVersionStatus) DeepCopyInto ¶
func (in *ConfigurationVersionStatus) DeepCopyInto(out *ConfigurationVersionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConsumerWorkspace ¶
type ConsumerWorkspace struct { // Consumer Workspace ID. // Must match pattern: `^ws-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^ws-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Consumer Workspace name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
ConsumerWorkspace allows access to the state for specific workspaces within the same organization. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*ConsumerWorkspace) DeepCopy ¶
func (in *ConsumerWorkspace) DeepCopy() *ConsumerWorkspace
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsumerWorkspace.
func (*ConsumerWorkspace) DeepCopyInto ¶
func (in *ConsumerWorkspace) DeepCopyInto(out *ConsumerWorkspace)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomPermissions ¶
type CustomPermissions struct { // Run access. // Must be one of the following values: `apply`, `plan`, `read`. // Default: `read`. // //+kubebuilder:validation:Pattern:="^(apply|plan|read)$" //+kubebuilder:default:=read //+optional Runs string `json:"runs,omitempty"` // Manage Workspace Run Tasks. // Default: `false`. // //+kubebuilder:validation:default:=false //+optional RunTasks bool `json:"runTasks,omitempty"` // Download Sentinel mocks. // Must be one of the following values: `none`, `read`. // Default: `none`. // //+kubebuilder:validation:Pattern:="^(none|read)$" //+kubebuilder:default:=none //+optional Sentinel string `json:"sentinel,omitempty"` // State access. // Must be one of the following values: `none`, `read`, `read-outputs`, `write`. // Default: `none`. // //+kubebuilder:validation:Pattern:="^(none|read|read-outputs|write)$" //+kubebuilder:default:=none //+optional StateVersions string `json:"stateVersions,omitempty"` // Variable access. // Must be one of the following values: `none`, `read`, `write`. // Default: `none`. // //+kubebuilder:validation:Pattern:="^(none|read|write)$" //+kubebuilder:default:=none //+optional Variables string `json:"variables,omitempty"` // Lock/unlock workspace. // Default: `false`. // //+kubebuilder:default:=false //+optional WorkspaceLocking bool `json:"workspaceLocking,omitempty"` }
Custom permissions let you assign specific, finer-grained permissions to a team than the broader fixed permission sets provide. More information:
func (*CustomPermissions) DeepCopy ¶
func (in *CustomPermissions) DeepCopy() *CustomPermissions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomPermissions.
func (*CustomPermissions) DeepCopyInto ¶
func (in *CustomPermissions) DeepCopyInto(out *CustomPermissions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CustomProjectPermissions ¶
type CustomProjectPermissions struct { // Project access. // Must be one of the following values: `delete`, `read`, `update`. // Default: `read`. // //+kubebuilder:validation:Enum:=delete;read;update //+kubebuilder:default:=read //+optional ProjectAccess tfc.ProjectSettingsPermissionType `json:"projectAccess,omitempty"` // Team management. // Must be one of the following values: `manage`, `none`, `read`. // Default: `none`. // //+kubebuilder:validation:Enum:=manage;none;read //+kubebuilder:default:=none //+optional TeamManagement tfc.ProjectTeamsPermissionType `json:"teamManagement,omitempty"` // Allow users to create workspaces in the project. // This grants read access to all workspaces in the project. // Default: `false`. // //+kubebuilder:default:=false //+optional CreateWorkspace bool `json:"createWorkspace,omitempty"` // Allows users to delete workspaces in the project. // Default: `false`. // //+kubebuilder:default:=false //+optional DeleteWorkspace bool `json:"deleteWorkspace,omitempty"` // Allows users to move workspaces out of the project. // A user must have this permission on both the source and destination project to successfully move a workspace from one project to another. // Default: `false`. // //+kubebuilder:default:=false //+optional MoveWorkspace bool `json:"moveWorkspace,omitempty"` // Allows users to manually lock the workspace to temporarily prevent runs. // When a workspace's execution mode is set to "local", users must have this permission to perform local CLI runs using the workspace's state. // Default: `false`. // //+kubebuilder:default:=false //+optional LockWorkspace bool `json:"lockWorkspace,omitempty"` // Run access. // Must be one of the following values: `apply`, `plan`, `read`. // Default: `read`. // //+kubebuilder:validation:Enum:=apply;plan;read //+kubebuilder:default:=read //+optional Runs tfc.WorkspaceRunsPermissionType `json:"runs,omitempty"` // Manage Workspace Run Tasks. // Default: `false`. // //+kubebuilder:validation:default:=false //+optional RunTasks bool `json:"runTasks,omitempty"` // Download Sentinel mocks. // Must be one of the following values: `none`, `read`. // Default: `none`. // //+kubebuilder:validation:Enum:=none;read //+kubebuilder:default:=none //+optional SentinelMocks tfc.WorkspaceSentinelMocksPermissionType `json:"sentinelMocks,omitempty"` // State access. // Must be one of the following values: `none`, `read`, `read-outputs`, `write`. // Default: `none`. // //+kubebuilder:validation:Enum:=none;read;read-outputs;write //+kubebuilder:default:=none //+optional StateVersions tfc.WorkspaceStateVersionsPermissionType `json:"stateVersions,omitempty"` // Variable access. // Must be one of the following values: `none`, `read`, `write`. // Default: `none`. // //+kubebuilder:validation:Enum:=none;read;write //+kubebuilder:default:=none //+optional Variables tfc.WorkspaceVariablesPermissionType `json:"variables,omitempty"` }
Custom permissions let you assign specific, finer-grained permissions to a team than the broader fixed permission sets provide. More information:
- https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#custom-project-permissions
- https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#general-workspace-permissions
func (*CustomProjectPermissions) DeepCopy ¶
func (in *CustomProjectPermissions) DeepCopy() *CustomProjectPermissions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomProjectPermissions.
func (*CustomProjectPermissions) DeepCopyInto ¶
func (in *CustomProjectPermissions) DeepCopyInto(out *CustomProjectPermissions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Module ¶
type Module struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ModuleSpec `json:"spec"` Status ModuleStatus `json:"status,omitempty"` }
Module is the Schema for the modules API Module implements the API-driven Run Workflow More information:
func (*Module) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Module.
func (*Module) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Module) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Module) ValidateSpec ¶
type ModuleList ¶
type ModuleList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Module `json:"items"` }
ModuleList contains a list of Module
func (*ModuleList) DeepCopy ¶
func (in *ModuleList) DeepCopy() *ModuleList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleList.
func (*ModuleList) DeepCopyInto ¶
func (in *ModuleList) DeepCopyInto(out *ModuleList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ModuleList) DeepCopyObject ¶
func (in *ModuleList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ModuleOutput ¶
type ModuleOutput struct { // Output name must match with the module output. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // Specify whether or not the output is sensitive. // Default: `false`. // //+kubebuilder:default:=false //+optional Sensitive bool `json:"sensitive,omitempty"` }
Module outputs to store in ConfigMap(non-sensitive) or Secret(sensitive).
func (*ModuleOutput) DeepCopy ¶
func (in *ModuleOutput) DeepCopy() *ModuleOutput
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleOutput.
func (*ModuleOutput) DeepCopyInto ¶
func (in *ModuleOutput) DeepCopyInto(out *ModuleOutput)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleSource ¶
type ModuleSource struct { // Non local Terraform module source. // More information: // - https://developer.hashicorp.com/terraform/language/modules/sources // //+kubebuilder:validation:MinLength:=1 Source string `json:"source"` // Terraform module version. // //+kubebuilder:validation:MinLength:=1 //+optional Version string `json:"version,omitempty"` }
Module source and version to execute.
func (*ModuleSource) DeepCopy ¶
func (in *ModuleSource) DeepCopy() *ModuleSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleSource.
func (*ModuleSource) DeepCopyInto ¶
func (in *ModuleSource) DeepCopyInto(out *ModuleSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleSpec ¶
type ModuleSpec struct { // Organization name where the Workspace will be created. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/organizations // //+kubebuilder:validation:MinLength:=1 Organization string `json:"organization"` // API Token to be used for API calls. Token Token `json:"token"` // Module source and version to execute. Module *ModuleSource `json:"module"` // Workspace to execute the module. Workspace *ModuleWorkspace `json:"workspace"` // Name of the module that will be uploaded and executed. // Default: `this`. // //+kubebuilder:validation:MinLength:=1 //+kubebuilder:default:=this //+optional Name string `json:"name,omitempty"` // Variables to pass to the module, they must exist in the Workspace. // //+kubebuilder:validation:MinItems:=1 // +optional Variables []ModuleVariable `json:"variables,omitempty"` // Module outputs to store in ConfigMap(non-sensitive) or Secret(sensitive). // //+kubebuilder:validation:MinItems:=1 //+optional Outputs []ModuleOutput `json:"outputs,omitempty"` // Specify whether or not to execute a Destroy run when the object is deleted from the Kubernetes. // Default: `false`. // //+kubebuilder:default:=false //+optional DestroyOnDeletion bool `json:"destroyOnDeletion,omitempty"` // Allows executing a new Run without changing any Workspace or Module attributes. // Example: kubectl patch <KIND> <NAME> --type=merge --patch '{"spec": {"restartedAt": "'\`date -u -Iseconds\`'"}}' // //+kubebuilder:validation:MinLength:=1 //+optional RestartedAt string `json:"restartedAt,omitempty"` }
ModuleSpec defines the desired state of Module.
func (*ModuleSpec) DeepCopy ¶
func (in *ModuleSpec) DeepCopy() *ModuleSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleSpec.
func (*ModuleSpec) DeepCopyInto ¶
func (in *ModuleSpec) DeepCopyInto(out *ModuleSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleStatus ¶
type ModuleStatus struct { // Real world state generation. ObservedGeneration int64 `json:"observedGeneration"` // Workspace ID where the module is running. WorkspaceID string `json:"workspaceID"` // A configuration version is a resource used to reference the uploaded configuration files. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/api-docs/configuration-versions // - https://developer.hashicorp.com/terraform/cloud-docs/run/api ConfigurationVersion *ConfigurationVersionStatus `json:"configurationVersion,omitempty"` // Workspace Runs status. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/run/states Run *RunStatus `json:"run,omitempty"` // Module Outputs status. Output *OutputStatus `json:"output,omitempty"` // Workspace Destroy Run status. // //+optional DestroyRunID string `json:"destroyRunID,omitempty"` }
ModuleStatus defines the observed state of Module.
func (*ModuleStatus) DeepCopy ¶
func (in *ModuleStatus) DeepCopy() *ModuleStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleStatus.
func (*ModuleStatus) DeepCopyInto ¶
func (in *ModuleStatus) DeepCopyInto(out *ModuleStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleVariable ¶
type ModuleVariable struct { // Variable name must exist in the Workspace. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` }
Variables to pass to the module.
func (*ModuleVariable) DeepCopy ¶
func (in *ModuleVariable) DeepCopy() *ModuleVariable
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleVariable.
func (*ModuleVariable) DeepCopyInto ¶
func (in *ModuleVariable) DeepCopyInto(out *ModuleVariable)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ModuleWorkspace ¶
type ModuleWorkspace struct { // Module Workspace ID. // Must match pattern: `^ws-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^ws-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Module Workspace Name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
Workspace to execute the module. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory.
func (*ModuleWorkspace) DeepCopy ¶
func (in *ModuleWorkspace) DeepCopy() *ModuleWorkspace
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModuleWorkspace.
func (*ModuleWorkspace) DeepCopyInto ¶
func (in *ModuleWorkspace) DeepCopyInto(out *ModuleWorkspace)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Notification ¶
type Notification struct { // Notification name. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // The type of the notification. // Must be one of the following values: `email`, `generic`, `microsoft-teams`, `slack`. // //+kubebuilder:validation:Enum:=email;generic;microsoft-teams;slack Type tfc.NotificationDestinationType `json:"type"` // Whether the notification configuration should be enabled or not. // Default: `true`. // //+kubebuilder:default=true //+optional Enabled bool `json:"enabled,omitempty"` // The token of the notification. // //+kubebuilder:validation:MinLength:=1 //+optional Token string `json:"token,omitempty"` // The list of run events that will trigger notifications. // Trigger represents the different TFC notifications that can be sent as a run's progress transitions between different states. // There are two categories of triggers: // - Health Events: `assessment:check_failure`, `assessment:drifted`, `assessment:failed`. // - Run Events: `run:applying`, `run:completed`, `run:created`, `run:errored`, `run:needs_attention`, `run:planning`. // //+kubebuilder:validation:MinItems:=1 //+optional Triggers []NotificationTrigger `json:"triggers,omitempty"` // The URL of the notification. // Must match pattern: `^https?://.*` // //+kubebuilder:validation:Pattern:="^https?://.*" //+optional URL string `json:"url,omitempty"` // The list of email addresses that will receive notification emails. // It is only available for Terraform Enterprise users. It is not available in HCP Terraform. // //+kubebuilder:validation:MinItems:=1 //+optional EmailAddresses []string `json:"emailAddresses,omitempty"` // The list of users belonging to the organization that will receive notification emails. // //+kubebuilder:validation:MinItems:=1 //+optional EmailUsers []string `json:"emailUsers,omitempty"` }
Notifications allow you to send messages to other applications based on run and workspace events. More information:
func (*Notification) DeepCopy ¶
func (in *Notification) DeepCopy() *Notification
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Notification.
func (*Notification) DeepCopyInto ¶
func (in *Notification) DeepCopyInto(out *Notification)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NotificationTrigger ¶
type NotificationTrigger string
NotificationTrigger represents the different TFC notifications that can be sent as a run's progress transitions between different states. This must be aligned with go-tfe type `NotificationTriggerType`. Must be one of the following values: `run:applying`, `assessment:check_failure`, `run:completed`, `run:created`, `assessment:drifted`, `run:errored`, `assessment:failed`, `run:needs_attention`, `run:planning`.
+kubebuilder:validation:Enum:="run:applying";"assessment:check_failure";"run:completed";"run:created";"assessment:drifted";"run:errored";"assessment:failed";"run:needs_attention";"run:planning"
type OutputStatus ¶
type OutputStatus struct { // Run ID of the latest run that updated the outputs. RunID string `json:"runID"` }
Outputs status.
func (*OutputStatus) DeepCopy ¶
func (in *OutputStatus) DeepCopy() *OutputStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutputStatus.
func (*OutputStatus) DeepCopyInto ¶
func (in *OutputStatus) DeepCopyInto(out *OutputStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PlanStatus ¶
type PlanStatus struct { // Latest plan-only/speculative plan HCP Terraform run ID. // //+optional ID string `json:"id,omitempty"` // Latest plan-only/speculative plan HCP Terraform run status. // //+optional Status string `json:"status,omitempty"` // The version of Terraform to use for this run. // //+kubebuilder:validation:Pattern:="^\\d{1}\\.\\d{1,2}\\.\\d{1,2}$" //+optional TerraformVersion string `json:"terraformVersion,omitempty"` }
func (*PlanStatus) DeepCopy ¶
func (in *PlanStatus) DeepCopy() *PlanStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanStatus.
func (*PlanStatus) DeepCopyInto ¶
func (in *PlanStatus) DeepCopyInto(out *PlanStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*PlanStatus) RunCompleted ¶
func (rs *PlanStatus) RunCompleted() bool
type Project ¶
type Project struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ProjectSpec `json:"spec"` Status ProjectStatus `json:"status,omitempty"` }
Project is the Schema for the projects API
func (*Project) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Project.
func (*Project) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Project) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Project) IsCreationCandidate ¶
func (*Project) ValidateSpec ¶
type ProjectList ¶
type ProjectList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Project `json:"items"` }
ProjectList contains a list of Project
func (*ProjectList) DeepCopy ¶
func (in *ProjectList) DeepCopy() *ProjectList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectList.
func (*ProjectList) DeepCopyInto ¶
func (in *ProjectList) DeepCopyInto(out *ProjectList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProjectList) DeepCopyObject ¶
func (in *ProjectList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProjectSpec ¶
type ProjectSpec struct { // Organization name where the Workspace will be created. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/organizations // //+kubebuilder:validation:MinLength:=1 Organization string `json:"organization"` // API Token to be used for API calls. Token Token `json:"token"` // Name of the Project. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // HCP Terraform's access model is team-based. In order to perform an action within a HCP Terraform organization, // users must belong to a team that has been granted the appropriate permissions. // You can assign project-specific permissions to teams. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/organize-workspaces-with-projects#permissions // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#project-permissions // //+kubebuilder:validation:MinItems:=1 //+optional TeamAccess []*ProjectTeamAccess `json:"teamAccess,omitempty"` }
ProjectSpec defines the desired state of Project. More information:
func (*ProjectSpec) DeepCopy ¶
func (in *ProjectSpec) DeepCopy() *ProjectSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectSpec.
func (*ProjectSpec) DeepCopyInto ¶
func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectStatus ¶
type ProjectStatus struct { // Real world state generation. ObservedGeneration int64 `json:"observedGeneration"` // Project ID. ID string `json:"id"` // Project name. Name string `json:"name"` }
ProjectStatus defines the observed state of Project.
func (*ProjectStatus) DeepCopy ¶
func (in *ProjectStatus) DeepCopy() *ProjectStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectStatus.
func (*ProjectStatus) DeepCopyInto ¶
func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ProjectTeamAccess ¶
type ProjectTeamAccess struct { // Team to grant access. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/teams Team Team `json:"team"` // There are two ways to choose which permissions a given team has on a project: fixed permission sets, and custom permissions. // Must be one of the following values: `admin`, `custom`, `maintain`, `read`, `write`. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#project-permissions // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#general-project-permissions // //+kubebuilder:validation:Enum:=admin;custom;maintain;read;write Access tfc.TeamProjectAccessType `json:"access"` // Custom permissions let you assign specific, finer-grained permissions to a team than the broader fixed permission sets provide. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#custom-project-permissions // //+optional Custom *CustomProjectPermissions `json:"custom,omitempty"` }
HCP Terraform's access model is team-based. In order to perform an action within a HCP Terraform organization, users must belong to a team that has been granted the appropriate permissions. You can assign project-specific permissions to teams. More information:
- https://developer.hashicorp.com/terraform/cloud-docs/workspaces/organize-workspaces-with-projects#permissions
- https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#project-permissions
func (*ProjectTeamAccess) DeepCopy ¶
func (in *ProjectTeamAccess) DeepCopy() *ProjectTeamAccess
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectTeamAccess.
func (*ProjectTeamAccess) DeepCopyInto ¶
func (in *ProjectTeamAccess) DeepCopyInto(out *ProjectTeamAccess)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RemoteStateSharing ¶
type RemoteStateSharing struct { // Allow access to the state for all workspaces within the same organization. // Default: `false`. // //+kubebuilder:default:=false //+optional AllWorkspaces bool `json:"allWorkspaces,omitempty"` // Allow access to the state for specific workspaces within the same organization. // //+kubebuilder:validation:MinItems:=1 //+optional Workspaces []*ConsumerWorkspace `json:"workspaces,omitempty"` }
RemoteStateSharing allows remote state access between workspaces. By default, new workspaces in HCP Terraform do not allow other workspaces to access their state. More information:
func (*RemoteStateSharing) DeepCopy ¶
func (in *RemoteStateSharing) DeepCopy() *RemoteStateSharing
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteStateSharing.
func (*RemoteStateSharing) DeepCopyInto ¶
func (in *RemoteStateSharing) DeepCopyInto(out *RemoteStateSharing)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RunStatus ¶
type RunStatus struct { // Current(both active and finished) HCP Terraform run ID. // //+optional ID string `json:"id,omitempty"` // Current(both active and finished) HCP Terraform run status. // //+optional Status string `json:"status,omitempty"` // The configuration version of this run. // //+optional ConfigurationVersion string `json:"configurationVersion,omitempty"` // Run ID of the latest run that could update the outputs. // //+optional OutputRunID string `json:"outputRunID,omitempty"` }
func (*RunStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunStatus.
func (*RunStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RunStatus) RunApplied ¶
func (*RunStatus) RunCompleted ¶
type RunTrigger ¶
type RunTrigger struct { // Source Workspace ID. // Must match pattern: `^ws-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^ws-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Source Workspace Name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
RunTrigger allows you to connect this workspace to one or more source workspaces. These connections allow runs to queue automatically in this workspace on successful apply of runs in any of the source workspaces. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*RunTrigger) DeepCopy ¶
func (in *RunTrigger) DeepCopy() *RunTrigger
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RunTrigger.
func (*RunTrigger) DeepCopyInto ¶
func (in *RunTrigger) DeepCopyInto(out *RunTrigger)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SSHKey ¶
type SSHKey struct { // SSH key ID. // Must match pattern: `^sshkey-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^sshkey-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // SSH key name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
SSH key used to clone Terraform modules. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*SSHKey) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKey.
func (*SSHKey) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tag ¶
type Tag string
Tags allows you to correlate, organize, and even filter workspaces based on the assigned tags. Tags must be one or more characters; can include letters, numbers, colons, hyphens, and underscores; and must begin and end with a letter or number. Must match pattern: `^[A-Za-z0-9][A-Za-z0-9:_-]*$`
+kubebuilder:validation:Pattern:="^[A-Za-z0-9][A-Za-z0-9:_-]*$"
type TargetWorkspace ¶
type TargetWorkspace struct { // Workspace ID // //+optional ID string `json:"id,omitempty"` // Workspace Name // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` // Wildcard Name to match match workspace names using `*` on name suffix, prefix, or both. // //+kubebuilder:validation:MinLength:=1 //+optional WildcardName string `json:"wildcardName,omitempty"` }
TargetWorkspace is the name or ID of the workspace you want autoscale against.
func (*TargetWorkspace) DeepCopy ¶
func (in *TargetWorkspace) DeepCopy() *TargetWorkspace
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetWorkspace.
func (*TargetWorkspace) DeepCopyInto ¶
func (in *TargetWorkspace) DeepCopyInto(out *TargetWorkspace)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Team ¶
type Team struct { // Team ID. // Must match pattern: `^team-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^team-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Team name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
Teams are groups of HCP Terraform users within an organization. If a user belongs to at least one team in an organization, they are considered a member of that organization. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*Team) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Team.
func (*Team) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TeamAccess ¶
type TeamAccess struct { // Team to grant access. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/teams Team Team `json:"team"` // There are two ways to choose which permissions a given team has on a workspace: fixed permission sets, and custom permissions. // Must be one of the following values: `admin`, `custom`, `plan`, `read`, `write`. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#workspace-permissions // //+kubebuilder:validation:Pattern:="^(admin|custom|plan|read|write)$" Access string `json:"access"` // Custom permissions let you assign specific, finer-grained permissions to a team than the broader fixed permission sets provide. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/permissions#custom-workspace-permissions // //+optional Custom CustomPermissions `json:"custom,omitempty"` }
HCP Terraform workspaces can only be accessed by users with the correct permissions. You can manage permissions for a workspace on a per-team basis. When a workspace is created, only the owners team and teams with the "manage workspaces" permission can access it, with full admin permissions. These teams' access can't be removed from a workspace. More information:
func (*TeamAccess) DeepCopy ¶
func (in *TeamAccess) DeepCopy() *TeamAccess
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TeamAccess.
func (*TeamAccess) DeepCopyInto ¶
func (in *TeamAccess) DeepCopyInto(out *TeamAccess)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Token ¶
type Token struct { // Selects a key of a secret in the workspace's namespace SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef"` }
Token refers to a Kubernetes Secret object within the same namespace as the Workspace object
func (*Token) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Token.
func (*Token) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ValueFrom ¶
type ValueFrom struct { // Selects a key of a ConfigMap. // //+optional ConfigMapKeyRef *corev1.ConfigMapKeySelector `json:"configMapKeyRef,omitempty"` // Selects a key of a Secret. // //+optional SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"` }
ValueFrom source for the variable's value. Cannot be used if value is not empty.
func (*ValueFrom) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValueFrom.
func (*ValueFrom) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Variable ¶
type Variable struct { // Name of the variable. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // Description of the variable. // //+kubebuilder:validation:MinLength:=1 //+optional Description string `json:"description,omitempty"` // Parse this field as HashiCorp Configuration Language (HCL). This allows you to interpolate values at runtime. // Default: `false`. // //+kubebuilder:default:=false //+optional HCL bool `json:"hcl,omitempty"` // Sensitive variables are never shown in the UI or API. // They may appear in Terraform logs if your configuration is designed to output them. // Default: `false`. // //+kubebuilder:default:=false //+optional Sensitive bool `json:"sensitive,omitempty"` // Value of the variable. // //+kubebuilder:validation:MinLength:=1 //+optional Value string `json:"value,omitempty"` // Source for the variable's value. Cannot be used if value is not empty. // //+optional ValueFrom *ValueFrom `json:"valueFrom,omitempty"` }
Variables let you customize configurations, modify Terraform's behavior, and store information like provider credentials. More information:
func (*Variable) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Variable.
func (*Variable) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VariableStatus ¶
type VariableStatus struct { // Name of the variable. Name string `json:"name"` // ID of the variable. ID string `json:"id"` // VersionID is a hash of the variable on the TFC end. VersionID string `json:"versionID"` // ValueID is a hash of the variable on the CRD end. ValueID string `json:"valueID"` // Category of the variable. Category string `json:"category"` }
func (*VariableStatus) DeepCopy ¶
func (in *VariableStatus) DeepCopy() *VariableStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VariableStatus.
func (*VariableStatus) DeepCopyInto ¶
func (in *VariableStatus) DeepCopyInto(out *VariableStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VersionControl ¶
type VersionControl struct { // The VCS Connection (OAuth Connection + Token) to use. // Must match pattern: `^ot-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^ot-[a-zA-Z0-9]+$" OAuthTokenID string `json:"oAuthTokenID,omitempty"` // A reference to your VCS repository in the format `<organization>/<repository>` where `<organization>` and `<repository>` refer to the organization and repository in your VCS provider. // //+kubebuilder:validation:MinLength:=1 Repository string `json:"repository,omitempty"` // The repository branch that Run will execute from. This defaults to the repository's default branch (e.g. main). // //+kubebuilder:validation:MinLength:=1 //+optional Branch string `json:"branch,omitempty"` // Whether this workspace allows automatic speculative plans on PR. // Default: `true`. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/run/ui#speculative-plans-on-pull-requests // - https://developer.hashicorp.com/terraform/cloud-docs/run/remote-operations#speculative-plans // //+kubebuilder:default=true //+optional SpeculativePlans bool `json:"speculativePlans"` }
VersionControl settings for the workspace's VCS repository, enabling the UI/VCS-driven run workflow. Omit this argument to utilize the CLI-driven and API-driven workflows, where runs are not driven by webhooks on your VCS provider. More information:
- https://developer.hashicorp.com/terraform/cloud-docs/run/ui
- https://developer.hashicorp.com/terraform/cloud-docs/vcs
func (*VersionControl) DeepCopy ¶
func (in *VersionControl) DeepCopy() *VersionControl
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionControl.
func (*VersionControl) DeepCopyInto ¶
func (in *VersionControl) DeepCopyInto(out *VersionControl)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Workspace ¶
type Workspace struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec WorkspaceSpec `json:"spec"` Status WorkspaceStatus `json:"status,omitempty"` }
Workspace is the Schema for the workspaces API
func (*Workspace) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Workspace.
func (*Workspace) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Workspace) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Workspace) IsCreationCandidate ¶
func (*Workspace) ValidateSpec ¶
type WorkspaceAgentPool ¶
type WorkspaceAgentPool struct { // Agent Pool ID. // Must match pattern: `^apool-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^apool-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Agent Pool name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
AgentPool allows HCP Terraform to communicate with isolated, private, or on-premises infrastructure. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*WorkspaceAgentPool) DeepCopy ¶
func (in *WorkspaceAgentPool) DeepCopy() *WorkspaceAgentPool
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceAgentPool.
func (*WorkspaceAgentPool) DeepCopyInto ¶
func (in *WorkspaceAgentPool) DeepCopyInto(out *WorkspaceAgentPool)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkspaceList ¶
type WorkspaceList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Workspace `json:"items"` }
WorkspaceList contains a list of Workspace
func (*WorkspaceList) DeepCopy ¶
func (in *WorkspaceList) DeepCopy() *WorkspaceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceList.
func (*WorkspaceList) DeepCopyInto ¶
func (in *WorkspaceList) DeepCopyInto(out *WorkspaceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkspaceList) DeepCopyObject ¶
func (in *WorkspaceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type WorkspaceProject ¶
type WorkspaceProject struct { // Project ID. // Must match pattern: `^prj-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^prj-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Project name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` }
Projects let you organize your workspaces into groups. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*WorkspaceProject) DeepCopy ¶
func (in *WorkspaceProject) DeepCopy() *WorkspaceProject
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceProject.
func (*WorkspaceProject) DeepCopyInto ¶
func (in *WorkspaceProject) DeepCopyInto(out *WorkspaceProject)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkspaceRunTask ¶
type WorkspaceRunTask struct { // Run Task ID. // Must match pattern: `^task-[a-zA-Z0-9]+$` // //+kubebuilder:validation:Pattern:="^task-[a-zA-Z0-9]+$" //+optional ID string `json:"id,omitempty"` // Run Task Name. // //+kubebuilder:validation:MinLength:=1 //+optional Name string `json:"name,omitempty"` // Run Task Enforcement Level. Can be one of `advisory` or `mandatory`. Default: `advisory`. // Must be one of the following values: `advisory`, `mandatory` // Default: `advisory`. // //+kubebuilder:validation:Pattern:="^(advisory|mandatory)$" //+kubebuilder:default:=advisory //+optional EnforcementLevel string `json:"enforcementLevel"` // Run Task Stage. // Must be one of the following values: `pre_apply`, `pre_plan`, `post_plan`. // Default: `post_plan`. // //+kubebuilder:validation:Pattern:="^(pre_apply|pre_plan|post_plan)$" //+kubebuilder:default:=post_plan //+optional Stage string `json:"stage,omitempty"` }
Run tasks allow HCP Terraform to interact with external systems at specific points in the HCP Terraform run lifecycle. Only one of the fields `ID` or `Name` is allowed. At least one of the fields `ID` or `Name` is mandatory. More information:
func (*WorkspaceRunTask) DeepCopy ¶
func (in *WorkspaceRunTask) DeepCopy() *WorkspaceRunTask
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceRunTask.
func (*WorkspaceRunTask) DeepCopyInto ¶
func (in *WorkspaceRunTask) DeepCopyInto(out *WorkspaceRunTask)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkspaceSpec ¶
type WorkspaceSpec struct { // Workspace name. // //+kubebuilder:validation:MinLength:=1 Name string `json:"name"` // Organization name where the Workspace will be created. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/users-teams-organizations/organizations // //+kubebuilder:validation:MinLength:=1 Organization string `json:"organization"` // API Token to be used for API calls. Token Token `json:"token"` // Define either change will be applied automatically(auto) or require an operator to confirm(manual). // Must be one of the following values: `auto`, `manual`. // Default: `manual`. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings#auto-apply-and-manual-apply // //+kubebuilder:validation:Pattern:="^(auto|manual)$" //+kubebuilder:default=manual //+optional ApplyMethod string `json:"applyMethod,omitempty"` // Allows a destroy plan to be created and applied. // Default: `true`. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings#destruction-and-deletion // //+kubebuilder:default=true //+optional AllowDestroyPlan bool `json:"allowDestroyPlan"` // Workspace description. // //+kubebuilder:validation:MinLength:=1 //+optional Description string `json:"description,omitempty"` // HCP Terraform Agents allow HCP Terraform to communicate with isolated, private, or on-premises infrastructure. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/agents // //+optional AgentPool *WorkspaceAgentPool `json:"agentPool,omitempty"` // Define where the Terraform code will be executed. // Must be one of the following values: `agent`, `local`, `remote`. // Default: `remote`. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings#execution-mode // //+kubebuilder:validation:Pattern:="^(agent|local|remote)$" //+kubebuilder:default=remote //+optional ExecutionMode string `json:"executionMode,omitempty"` // Run tasks allow HCP Terraform to interact with external systems at specific points in the HCP Terraform run lifecycle. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/run-tasks // //+kubebuilder:validation:MinItems:=1 //+optional RunTasks []WorkspaceRunTask `json:"runTasks,omitempty"` // Workspace tags are used to help identify and group together workspaces. // Tags must be one or more characters; can include letters, numbers, colons, hyphens, and underscores; and must begin and end with a letter or number. // //+kubebuilder:validation:MinItems:=1 //+optional Tags []Tag `json:"tags,omitempty"` // HCP Terraform workspaces can only be accessed by users with the correct permissions. // You can manage permissions for a workspace on a per-team basis. // When a workspace is created, only the owners team and teams with the "manage workspaces" permission can access it, // with full admin permissions. These teams' access can't be removed from a workspace. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/access // //+kubebuilder:validation:MinItems:=1 //+optional TeamAccess []*TeamAccess `json:"teamAccess,omitempty"` // The version of Terraform to use for this workspace. // If not specified, the latest available version will be used. // Must match pattern: `^\\d{1}\\.\\d{1,2}\\.\\d{1,2}$` // More information: // - https://www.terraform.io/cloud-docs/workspaces/settings#terraform-version // //+kubebuilder:validation:Pattern:="^\\d{1}\\.\\d{1,2}\\.\\d{1,2}$" //+optional TerraformVersion string `json:"terraformVersion,omitempty"` // The directory where Terraform will execute, specified as a relative path from the root of the configuration directory. // More information: // - https://www.terraform.io/cloud-docs/workspaces/settings#terraform-working-directory // //+kubebuilder:validation:MinLength:=1 //+optional WorkingDirectory string `json:"workingDirectory,omitempty"` // Terraform Environment variables for all plans and applies in this workspace. // Variables defined within a workspace always overwrite variables from variable sets that have the same type and the same key. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/variables // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/variables#environment-variables // //+kubebuilder:validation:MinItems:=1 //+optional EnvironmentVariables []Variable `json:"environmentVariables,omitempty"` // Terraform variables for all plans and applies in this workspace. // Variables defined within a workspace always overwrite variables from variable sets that have the same type and the same key. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/variables // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/variables#terraform-variables // //+kubebuilder:validation:MinItems:=1 //+optional TerraformVariables []Variable `json:"terraformVariables,omitempty"` // Remote state access between workspaces. // By default, new workspaces in HCP Terraform do not allow other workspaces to access their state. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/state#accessing-state-from-other-workspaces // //+optional RemoteStateSharing *RemoteStateSharing `json:"remoteStateSharing,omitempty"` // Run triggers allow you to connect this workspace to one or more source workspaces. // These connections allow runs to queue automatically in this workspace on successful apply of runs in any of the source workspaces. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/run-triggers // //+kubebuilder:validation:MinItems:=1 //+optional RunTriggers []RunTrigger `json:"runTriggers,omitempty"` // Settings for the workspace's VCS repository, enabling the UI/VCS-driven run workflow. // Omit this argument to utilize the CLI-driven and API-driven workflows, where runs are not driven by webhooks on your VCS provider. // More information: // - https://www.terraform.io/cloud-docs/run/ui // - https://www.terraform.io/cloud-docs/vcs // //+optional VersionControl *VersionControl `json:"versionControl,omitempty"` // SSH key used to clone Terraform modules. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/ssh-keys // //+optional SSHKey *SSHKey `json:"sshKey,omitempty"` // Notifications allow you to send messages to other applications based on run and workspace events. // More information: // - https://developer.hashicorp.com/terraform/cloud-docs/workspaces/settings/notifications // //+kubebuilder:validation:MinItems:=1 //+optional Notifications []Notification `json:"notifications,omitempty"` // Projects let you organize your workspaces into groups. // Default: default organization project. // More information: // - https://developer.hashicorp.com/terraform/tutorials/cloud/projects // //+optional Project *WorkspaceProject `json:"project,omitempty"` }
WorkspaceSpec defines the desired state of Workspace.
func (*WorkspaceSpec) DeepCopy ¶
func (in *WorkspaceSpec) DeepCopy() *WorkspaceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceSpec.
func (*WorkspaceSpec) DeepCopyInto ¶
func (in *WorkspaceSpec) DeepCopyInto(out *WorkspaceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkspaceStatus ¶
type WorkspaceStatus struct { // Workspace ID that is managed by the controller. WorkspaceID string `json:"workspaceID"` // Real world state generation. // //+optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` // Workspace last update timestamp. // //+optional UpdateAt int64 `json:"updateAt,omitempty"` // Workspace Runs status. // //+optional Run *RunStatus `json:"runStatus,omitempty"` // Run status of plan-only/speculative plan that was triggered manually. // //+optional Plan *PlanStatus `json:"plan,omitempty"` // Workspace Terraform version. // //+kubebuilder:validation:Pattern:="^\\d{1}\\.\\d{1,2}\\.\\d{1,2}$" //+optional TerraformVersion string `json:"terraformVersion,omitempty"` // Workspace variables. // //+optional Variables []VariableStatus `json:"variables,omitempty"` }
WorkspaceStatus defines the observed state of Workspace.
func (*WorkspaceStatus) AddOrUpdateVariableStatus ¶
func (s *WorkspaceStatus) AddOrUpdateVariableStatus(variable VariableStatus)
AddOrUpdateVariableStatus adds a given variable to the status if it does not exist there; otherwise, it updates it.
func (*WorkspaceStatus) DeepCopy ¶
func (in *WorkspaceStatus) DeepCopy() *WorkspaceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkspaceStatus.
func (*WorkspaceStatus) DeepCopyInto ¶
func (in *WorkspaceStatus) DeepCopyInto(out *WorkspaceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkspaceStatus) DeleteVariableStatus ¶
func (s *WorkspaceStatus) DeleteVariableStatus(variable VariableStatus)
DeleteVariableStatus deletes a given variable from the status.
func (*WorkspaceStatus) GetVariableStatus ¶
func (s *WorkspaceStatus) GetVariableStatus(variable VariableStatus) *VariableStatus
GetVariableStatus returns a given variable from the status if it exists there; otherwise, nil.