Documentation ¶
Overview ¶
Package v1beta2 contains API Schema definitions for the terraform v1beta2 API group +kubebuilder:object:generate=true +groupName=terraform.core.oam.dev
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "terraform.core.oam.dev", Version: "v1beta2"} // 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 Backend ¶
type Backend struct { // SecretSuffix used when creating secrets. Secrets will be named in the format: tfstate-{workspace}-{secretSuffix} SecretSuffix string `json:"secretSuffix,omitempty"` // InClusterConfig Used to authenticate to the cluster from inside a pod. Only `true` is allowed InClusterConfig bool `json:"inClusterConfig,omitempty"` // Inline allows users to use raw hcl code to specify their Terraform backend Inline string `json:"inline,omitempty"` // BackendType indicates which backend type to use. This field is needed for custom backend configuration. // +kubebuilder:validation:Enum=kubernetes;s3 BackendType string `json:"backendType,omitempty"` // Kubernetes is needed for the Terraform `kubernetes` backend type. Kubernetes *KubernetesBackendConf `json:"kubernetes,omitempty"` // S3 is needed for the Terraform `s3` backend type. S3 *S3BackendConf `json:"s3,omitempty"` }
Backend describes the Terraform backend configuration
func (*Backend) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend.
func (*Backend) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Configuration ¶
type Configuration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ConfigurationSpec `json:"spec,omitempty"` Status ConfigurationStatus `json:"status,omitempty"` }
Configuration is the Schema for the configurations API +kubebuilder:storageversion +kubebuilder:subresource:status +kubebuilder:printcolumn:name="APPLY",type="string",JSONPath=".status.apply.state" +kubebuilder:printcolumn:name="DESTROY",type="string",JSONPath=".status.destroy.state" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
func (*Configuration) DeepCopy ¶
func (in *Configuration) DeepCopy() *Configuration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration.
func (*Configuration) DeepCopyInto ¶
func (in *Configuration) DeepCopyInto(out *Configuration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Configuration) DeepCopyObject ¶
func (in *Configuration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigurationApplyStatus ¶
type ConfigurationApplyStatus struct { State apitypes.ConfigurationState `json:"state,omitempty"` Message string `json:"message,omitempty"` Outputs map[string]Property `json:"outputs,omitempty"` // Region is the region for the cloud resources created by this Configuration. If spec.region is not empty, it's the // value of it. Otherwise, it's the value of spec.providerReference.region. Region string `json:"region,omitempty"` }
ConfigurationApplyStatus is the status for Configuration apply
func (*ConfigurationApplyStatus) DeepCopy ¶
func (in *ConfigurationApplyStatus) DeepCopy() *ConfigurationApplyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationApplyStatus.
func (*ConfigurationApplyStatus) DeepCopyInto ¶
func (in *ConfigurationApplyStatus) DeepCopyInto(out *ConfigurationApplyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationDestroyStatus ¶
type ConfigurationDestroyStatus struct { State apitypes.ConfigurationState `json:"state,omitempty"` Message string `json:"message,omitempty"` }
ConfigurationDestroyStatus is the status for Configuration destroy
func (*ConfigurationDestroyStatus) DeepCopy ¶
func (in *ConfigurationDestroyStatus) DeepCopy() *ConfigurationDestroyStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationDestroyStatus.
func (*ConfigurationDestroyStatus) DeepCopyInto ¶
func (in *ConfigurationDestroyStatus) DeepCopyInto(out *ConfigurationDestroyStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationList ¶
type ConfigurationList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Configuration `json:"items"` }
ConfigurationList contains a list of Configuration
func (*ConfigurationList) DeepCopy ¶
func (in *ConfigurationList) DeepCopy() *ConfigurationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationList.
func (*ConfigurationList) DeepCopyInto ¶
func (in *ConfigurationList) DeepCopyInto(out *ConfigurationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigurationList) DeepCopyObject ¶
func (in *ConfigurationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ConfigurationSpec ¶
type ConfigurationSpec struct { // HCL is the Terraform HCL type configuration HCL string `json:"hcl,omitempty"` // Remote is a git repo which contains hcl files. Currently, only public git repos are supported. Remote string `json:"remote,omitempty"` // GitRef is the git branch or tag or commit hash to checkout. Only used when Remote is specified. GitRef apitypes.GitRef `json:"gitRef,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields Variable *runtime.RawExtension `json:"variable,omitempty"` // Backend describes the Terraform backend configuration. // This field is needed if the users use a git repo to provide the hcl files or // want to use their custom Terraform backend (instead of the default kubernetes backend type). // Notice: This field may cause two backend blocks in the final Terraform module and make the executor job failed. // So, please make sure that there are no backend configurations in your inline hcl code or the git repo. Backend *Backend `json:"backend,omitempty"` // Path is the sub-directory of remote git repository. Path string `json:"path,omitempty"` // WriteConnectionSecretToReference specifies the namespace and name of a // Secret to which any connection details for this managed resource should // be written. Connection details frequently include the endpoint, username, // and password required to connect to the managed resource. // +optional WriteConnectionSecretToReference *types.SecretReference `json:"writeConnectionSecretToRef,omitempty"` // ProviderReference specifies the reference to Provider ProviderReference *types.Reference `json:"providerRef,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields JobEnv *runtime.RawExtension `json:"JobEnv,omitempty"` // InlineCredentials specifies the credentials in spec.HCl field as below. // provider "aws" { // region = "us-west-2" // access_key = "my-access-key" // secret_key = "my-secret-key" // } // Or indicates a Terraform module or configuration don't need credentials at all, like provider `random` InlineCredentials bool `json:"inlineCredentials,omitempty"` // DeleteResource will determine whether provisioned cloud resources will be deleted when CR is deleted // +kubebuilder:default:=true DeleteResource *bool `json:"deleteResource,omitempty"` // Region is cloud provider's region. It will override the region in the region field of ProviderReference Region string `json:"customRegion,omitempty"` // ForceDelete will force delete Configuration no matter which state it is or whether it has provisioned some resources // It will help delete Configuration in unexpected cases. ForceDelete *bool `json:"forceDelete,omitempty"` // GitCredentialsSecretReference specifies the reference to the secret containing the git credentials GitCredentialsSecretReference *v1.SecretReference `json:"gitCredentialsSecretReference,omitempty"` // TerraformCredentialsSecretReference specifies the reference to the secret containing the terraform credentials and terraform registry details TerraformCredentialsSecretReference *v1.SecretReference `json:"terraformCredentialsSecretReference,omitempty"` // TerraformRCConfigMapReference specifies the reference to a config map containing the terraform registry configuration TerraformRCConfigMapReference *v1.SecretReference `json:"terraformRCConfigMapReference,omitempty"` // TerraformCredentialsHelperConfigMapReference specifies the reference to a configmap containing the terraform registry credentials helper TerraformCredentialsHelperConfigMapReference *v1.SecretReference `json:"terraformCredentialsHelperConfigMapReference,omitempty"` }
ConfigurationSpec defines the desired state of Configuration
func (*ConfigurationSpec) DeepCopy ¶
func (in *ConfigurationSpec) DeepCopy() *ConfigurationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationSpec.
func (*ConfigurationSpec) DeepCopyInto ¶
func (in *ConfigurationSpec) DeepCopyInto(out *ConfigurationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigurationStatus ¶
type ConfigurationStatus struct { // observedGeneration is the most recent generation observed for this Configuration. It corresponds to the // Configuration's generation, which is updated on mutation by the API Server. // If ObservedGeneration equals Generation, and State is Available, the value of Outputs is latest // +optional ObservedGeneration int64 `json:"observedGeneration,omitempty"` Apply ConfigurationApplyStatus `json:"apply,omitempty"` Destroy ConfigurationDestroyStatus `json:"destroy,omitempty"` }
ConfigurationStatus defines the observed state of Configuration
func (*ConfigurationStatus) DeepCopy ¶
func (in *ConfigurationStatus) DeepCopy() *ConfigurationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationStatus.
func (*ConfigurationStatus) DeepCopyInto ¶
func (in *ConfigurationStatus) DeepCopyInto(out *ConfigurationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubernetesBackendConf ¶ added in v0.7.1
type KubernetesBackendConf struct { SecretSuffix string `json:"secret_suffix" hcl:"secret_suffix"` Namespace *string `json:"namespace,omitempty" hcl:"namespace"` }
KubernetesBackendConf defines all options supported by the Terraform `kubernetes` backend type. You can refer to https://www.terraform.io/language/settings/backends/kubernetes for the usage of each option.
func (*KubernetesBackendConf) DeepCopy ¶ added in v0.7.1
func (in *KubernetesBackendConf) DeepCopy() *KubernetesBackendConf
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesBackendConf.
func (*KubernetesBackendConf) DeepCopyInto ¶ added in v0.7.1
func (in *KubernetesBackendConf) DeepCopyInto(out *KubernetesBackendConf)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Property ¶
type Property struct {
Value string `json:"value,omitempty"`
}
Property is the property for an output
func (*Property) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Property.
func (*Property) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type S3BackendConf ¶ added in v0.7.4
type S3BackendConf struct { // Region is optional, default to the AWS_DEFAULT_REGION in the credentials of the provider Region *string `json:"region,omitempty" hcl:"region"` Bucket string `json:"bucket" hcl:"bucket"` Key string `json:"key" hcl:"key"` }
S3BackendConf defines all options supported by the Terraform `s3` backend type. You can refer to https://www.terraform.io/language/settings/backends/s3 for the usage of each option.
func (*S3BackendConf) DeepCopy ¶ added in v0.7.4
func (in *S3BackendConf) DeepCopy() *S3BackendConf
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3BackendConf.
func (*S3BackendConf) DeepCopyInto ¶ added in v0.7.4
func (in *S3BackendConf) DeepCopyInto(out *S3BackendConf)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.