Skip to main content

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.

FieldDescription

apiVersion
string

cloudresources.appvia.io/v2beta1

kind
string

CloudResourcePlan
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
CloudResourcePlanSpec
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.

status
CloudResourcePlanStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ProvisioningPolicy

ProvisioningPolicy allow the application of estimated cost and resource limits on the resources that workspaces can self-service.

FieldDescription

apiVersion
string

cloudresources.appvia.io/v2beta1

kind
string

ProvisioningPolicy
metadata
Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec
ProvisioningPolicySpec
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

status
ProvisioningPolicyStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

Internal Resource Types

CloudResourcePlanSpec

(Appears on: CloudResourcePlan)

CloudResourcePlanSpec defines a plan for a cloud resource.

FieldDescription
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.

FieldDescription
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).

FieldDescription
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.

FieldDescription
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).

FieldDescription
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.

FieldDescription
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)

ValueDescription
1
2
0
4
3

ProvisioningPolicyClusterLimits

(Appears on: ProvisioningPolicySpec)

ProvisioningPolicyClusterLimits defines the limits applied for policies of type cluster

FieldDescription
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)

FieldDescription
maxClusters

int

MaxClusters provides the maximum number of clusters in a workspace.

ProvisioningPolicyInstanceType

(Appears on: ProvisioningPolicyPerCluster)

FieldDescription
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)

FieldDescription
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

FieldDescription
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

FieldDescription
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.

FieldDescription
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.

FieldDescription
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