cloudresources.appvia.io/v2beta1
Package v2beta1 contains API Schema definitions for the cloudresources v2beta1 API group
Exported Resource Types
CloudResourcePlan
CloudResourcePlan represents a deployable cloud resource for an application, such as a database or storage bucket.
Field | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | cloudresources.appvia.io/v2beta1 | ||||||||||||||||||
kind | CloudResourcePlan | ||||||||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||||||||
spec CloudResourcePlanSpec |
| ||||||||||||||||||
status CloudResourcePlanStatus |
|
ProvisioningPolicy
ProvisioningPolicy allow the application of estimated cost and resource limits on the resources that workspaces can self-service.
Field | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | cloudresources.appvia.io/v2beta1 | ||||||||||||
kind | ProvisioningPolicy | ||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||
spec ProvisioningPolicySpec |
| ||||||||||||
status ProvisioningPolicyStatus |
|
Internal Resource Types
- CloudResourcePlanSpec
- CloudResourcePlanStatus
- Configuration
- InputDefinition
- InputValue
- Output
- PolicySpecificity
- ProvisioningPolicyClusterLimits
- ProvisioningPolicyClusterPerWorkspace
- ProvisioningPolicyInstanceType
- ProvisioningPolicyPerCluster
- ProvisioningPolicySpec
- ProvisioningPolicyStatus
- ResourceValuesFrom
- RevisionInfo
CloudResourcePlanSpec
(Appears on: CloudResourcePlan)
CloudResourcePlanSpec defines a plan for a cloud resource.
Field | Description |
---|---|
PlanSpec PlanSpec | (Members of PlanSpec are embedded into this type.) |
description string | Description provides a short summary for the cloud resource plan. |
cloud string | Cloud refers to the cloud provider of the resource (azure, gcp, aws). |
enableWatch bool | EnableWatch indicates whether wayfinder will watch for updates to the associated resource. |
enableTemplateAutoUpgrade bool | EnableTemplateAutoUpgrade indicates whether the resource’s associated template should automatically update when new versions are available |
template Configuration | Template represents the configuration values for a specific revision of the cloud resource. |
inputDefinitions []InputDefinition | InoutDefinitions provides more detail about the inputs that the terraform module represented by this plan has. |
inputsFrom []InputValue | InputsFrom is a optional collection of values which are injected into the rendered output of the resource. |
outputs []Output | Outputs is a list of available outputs from the revision of the terraform module represented by this plan. |
CloudResourcePlanStatus
(Appears on: CloudResourcePlan)
CloudResourcePlanStatus defines the status of a cloud resource plan.
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
Configuration
(Appears on: CloudResourcePlanSpec)
Configuration defines the configuration elements required to properly render a terraform plan. It represents a cloud resource plan’s set Inputs (allowed input fields, along with values), and outputs, tied to a specific revision of a cloud resource (terraform module).
Field | Description |
---|---|
source string | Source is the URL of the terraform module to apply |
revision string | Revision is the version of the terraform module to apply. |
secretRef PlatformSecretRef | SecretRef is a reference to a platform secret that contains the credentials required to access the terraform module source. |
variables k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON | Variables is the set of values to pass as input variables to the Terraform module when applied. These can be augmented and edited when the plan is consumed, according to the policies defined on this plan. |
InputDefinition
(Appears on: CloudResourcePlanSpec, RevisionInfo)
InputDefinition defines an input to a terraform plan.
Field | Description |
---|---|
default k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON | Default is the default value of the variable |
description string | Description is the description of the variable |
name string | Name is the name of the variable |
required bool | Required is true if the variable is required |
sensitive bool | Sensitive indicates if the output is sensitive |
type string | Type is the type of the variable |
InputValue
(Appears on: CloudResourcePlanSpec)
InputValue represents a single named input and maps a path in a resource to a destination (in this case a Terraform plan).
Field | Description |
---|---|
name string | Name represents the name of the input/variable for the terraform plan. |
kind string | Kind represents the kind of resource the source information is coming from. Callers should use this to switch bahviour based on the kind. |
resource ResourceValuesFrom | Resource is used to filter on and extract the details from a managed resource in Wayfinder. |
Output
(Appears on: CloudResourcePlanSpec, RevisionInfo)
Output defines a required output from a terraform plan once applied.
Field | Description |
---|---|
name string | Name is the name of the output |
description string | Description is the description of the output |
sensitive bool | Sensitive indicates if the output is sensitive |
userFacing bool | UserFacing identifies this output as a key output to make downstream users of this resource plan aware of. It has no functional impact other than conveying that intention. |
PolicySpecificity
(int
alias)
Value | Description |
---|---|
1 | |
2 | |
0 | |
4 | |
3 |
ProvisioningPolicyClusterLimits
(Appears on: ProvisioningPolicySpec)
ProvisioningPolicyClusterLimits defines the limits applied for policies of type cluster
Field | Description |
---|---|
perWorkspace ProvisioningPolicyClusterPerWorkspace | PerWorkspace provides limits that apply across the total set of clusters of the given cloud provider in a workspace. |
perCluster ProvisioningPolicyPerCluster | PerCluster provides limits that apply to each cluster individually. |
ProvisioningPolicyClusterPerWorkspace
(Appears on: ProvisioningPolicyClusterLimits)
Field | Description |
---|---|
maxClusters int | MaxClusters provides the maximum number of clusters in a workspace. |
ProvisioningPolicyInstanceType
(Appears on: ProvisioningPolicyPerCluster)
Field | Description |
---|---|
instanceType string | InstanceType is the cloud-provide-specific name of the instance type this limit applies to. |
maxNodes int64 | MaxNodes provides an optional maximum number of nodes of this type across all clusters in a workspace. Where auto-scaling is enabled, this applies to the maximum size of that auto-scaling configuration. |
ProvisioningPolicyPerCluster
(Appears on: ProvisioningPolicyClusterLimits)
Field | Description |
---|---|
costPerMonth int | CostPerMonth limits the maximum estimated cost (in USD) for each individual cluster under the scope of this policy. A standard of 30 days / 720 hours per month is assumed when validating this limit against hourly infrastructure costs. |
totalNodes int64 | TotalNodes is a limit on the total number of nodes that a cluster is allowed to be configured with. Where auto-scaling is enabled, this applies to the maximum size of that auto-scaling configuration. |
allowedInstanceTypes []ProvisioningPolicyInstanceType | AllowedInstanceTypes provides the list of instance types allowed for clusters. If empty, all instance types are allowed. |
ProvisioningPolicySpec
(Appears on: ProvisioningPolicy)
ProvisioningPolicySpec defines the desired state of a ProvisioningPolicy
Field | Description |
---|---|
description string | Description provides a short description of this policy, i.e. why it exists. |
resourceType string | ResourceType is the type of cloud resource this policy applies to. |
cloud string | Cloud refers to the cloud provider this policy applies to type (e.g. aws, azure, gcp) |
scope Scope | Scope allows targeting of this policy to a specific or all workspaces and/or stages. If multiple policies are applicable, the most specific scoped policy that defines a limit is used. The order of specificity is as follows: 1. Any policy with the specific stage and workspace 2. Any policy with the specific workspace and all stages 3. Any policy with the specific stage and all workspaces 4. Any policy with all stages and all workspaces Where multiple policies are found at the same level of specificity, the least restrictive intersection of those will apply. |
allowedRegions []string | AllowedRegions provides a list of regions in which provisioning can be done. If empty, all regions are allowed. |
clusterLimits ProvisioningPolicyClusterLimits | ClusterLimits provide specific limits for provisiong policies of resource type Cluster |
ProvisioningPolicyStatus
(Appears on: ProvisioningPolicy)
ProvisioningPolicyStatus defines the observed state of ProvisioningPolicy
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
ResourceValuesFrom
(Appears on: InputValue)
ResourceValuesFrom is used to define a reference to a resource. It maps the source path (where the value comes from, given a resource) and where it will be applied (in the resulting Terraform). Prefixes and suffixes can be added as required on the resulting destination value if required.
Field | Description |
---|---|
Ownership Ownership | (Members of Ownership are embedded into this type.) |
srcPath string | SrcPath is a JSON path into the resource data (where to get the value from). Its value will be applied against the parent InputValue’s Name. |
valuePrefix string | ValuePrefix is a prefix which will be prepended to the value patched into the Terraform value. If specified, this means the value from the key will be coerced to a string. |
valueSuffix string | ValueSuffix is a suffix which will be appended to the value patched into the Terraform value. If specified, this means the value from the key will be coerced to a string. |
RevisionInfo
RevisionInfo is an information struct about a revision of a terraform module. This is only used by the Wayfinder API to inform about known revisions.
Field | Description |
---|---|
outputs []Output | Outputs is a list of outputs to extract from the terraform module |
revision string | Revision is the revision of the cloud resource |
source string | Source is a human readable link to the revision source - this could be a url to the github release, a tag etc |
variables []InputDefinition | Variables is a list of variables to pass to the terraform module |