Skip to main content
Version: 2.3

Custom Resource Definitions

Packages

accountfactory.appvia.io/v2beta1

Package v2beta1 contains API Schema definitions for the cloud account factory API group

Resource Types:

CloudOrg

CloudOrg represents a cloud organisation to use for cloud account factorying

FieldDescription
apiVersion
string
accountfactory.appvia.io/v2beta1
kind
string
CloudOrg
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CloudOrgSpec
name
string

Name is a unique human-readable name for this organisation

cloud
string

Cloud defines which cloud provider this account is for

orgIdentifier
string

OrgIdentifier must be populated with the identifier for the organization - for example, AWS Master Account ID, Azure Tenant ID, GCP Organization ID.

accountIdentifier
string

The account ID/subscription ID/project ID to place shared org-wide resources such as DNS root zones, etc. For AWS this must be the same AWS Master Account ID used for OrgIdentifier.

identityCred
CloudIdentityReference

IdentityCred is a reference to the credential for Wayfinder to identify itself to this cloud provider when using this organization.

Will be populated by Wayfinder with the default identity cred for this cloud if unspecified on entry.

roles
[]CloudAccessConfigRole

Roles defines a set of identities which Wayfinder should assume in order to perform account management functionality.

defaultRegion
string

DefaultRegion is an optional default region to use for API access in this account when no region is specified for the operation. This is used to determine, for example, which region to use to talk to global services such as Route53 in AWS. E.g. eu-west-2, europe-west2, uksouth

providerDetails
CloudOrgProviderDetails

ProviderDetails provides additional fields which can be used for cloud-provider specific data, such as a GCP billing account ID.

stages
[]string

Stages lists the stages that this org may be used for

namingRules
[]CloudAccountNamingRule

NamingRules describes how to name child accounts based on the plan chosen. account.

allocation
ResourceAllocation

Allocation describes which workspaces can use this cloud org.

status
CloudOrgStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ManagedCloudAccount

ManagedCloudAccount represents a request for a cloud account to come into existence for a workspace

FieldDescription
apiVersion
string
accountfactory.appvia.io/v2beta1
kind
string
ManagedCloudAccount
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ManagedCloudAccountSpec
name
string

Name is the unique name of the account to create.

Populate to set a custom name, will be derived from the organization naming rules if unspecified.

cloud
string

Cloud defines which cloud provider the account is being requested for. Must be specified and must match the cloud of the specified CloudOrg.

stage
string

Stage is the lifecycle stage to create the cloud account for.

cloudOrg
string

CloudOrg is a reference to the cloud organization in which to create the cloud account

features
[]string

Features is the set of features to enable on the managed cloud account

status
ManagedCloudAccountStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is the reference to the generated cloud access configuration

identifier
string

Identifier is the assigned account ID / project ID / subscription ID

providerStatus
ProviderStatus

ProviderStatus can be populated with provider-specific status information, particularly relevant on accounts of type managed.

AWSAccountStatus

(Appears on: ProviderStatus)

AWSAccountStatus provides status specific to AWS accounts

FieldDescription
serviceCatalogProvisioningID
string

ServiceCatalogProvisioningID is the Control Tower Account Factory Service Catalog provisioning record ID. If set, creation is being tracked. Relevant only to managed AWS accounts

AWSOrganizationParameters

(Appears on: CloudOrgProviderDetails)

AWSOrganizationParameters provides the specific parameters for an AWS organisation account

FieldDescription
ssoUser
AWSSSOUser

SSOUser is the user who will be the organisational account owner for all accounts. Required before this organization can be used

ouName
string

OUName is the name of the parent Organizational Unit (OU) to use for provisioning accounts Required before this organization can be used

region
string

Region is the region where control tower is enabled in the master account Required before this organization can be used

userRoles
map[string]string

UserRoles contains the ARNs of stacksets to create instances of in each managed account

AWSSSOUser

(Appears on: AWSOrganizationParameters)

AWSSSOUser describes the details required to identify an AWS SSO user to user for all accounts

FieldDescription
email
string

Email is the unique user email address specified for the AWS SSO user Required before this organization can be used

firstName
string

FirstName is the firstname(s) field for an AWS SSO user Required before this organization can be used

lastName
string

LastName is the last name of an SSO user Required before this organization can be used

AzureTenantParameters

(Appears on: CloudOrgProviderDetails)

AzureTenantParameters provides the specific parameters for an Azure tenant (organisation) account

FieldDescription
agreementType
string

AgreementType defines whether we’re building subscriptions in an MCA or Enterprise Agreement backed Azure setup

ownerObjectID
string

OwnerObjectID specifies the Object ID of an Azure AD group, user or service principal to grant Owner privilege on all created subscriptions. This is required to ensure that generated subscriptions are owned by an object controlled by your company.

Example: 8bf96a8f-abcd-ef12-a389-883d6116a5da

contributorObjectID
string

ContributorObjectID specifies an optional object ID of an Azure AD group, user or service principal to grant Contributor privilege on all created subscriptions.

Example: 8bf96a8f-dcef-abc1-a389-883d6116a5da

managementGroupID
string

ManagementGroupID specifies an optional ID of an Azure Management Group in which subscriptions created by Wayfinder should be placed.

Example: wf-subscription-mgt-group

billingAccount
string

BillingAccount is the billing account identifier. Required for both agreement types.

Example (super-catchy, isn’t it): aaa111b-abcd-ef01-2345-bcdabc123fed:1234aaab-0100-1234-abcd-abcd0123abcd_2019-05-31

enrollmentAccount
string

EnrollmentAccount defines for an Enterprise Agreement agreement type which enrollment account to create subscriptions within. Required for EA.

Example: 7654321

billingProfile
string

BillingProfile defined for an MCA agreement type which billing profile contains the invoice section you wish subscriptions to be created in. Required for MCA.

Example: AW4F-APQW-0AH-ABC

invoiceSection
string

InvoiceSection defines for an MCA agreement type which invoice section to create subscriptions within inside the selected BillingProfile. Required for MCA.

Example: PQRS-ALDS-012-DEF

CloudAccountNamingRule

(Appears on: CloudOrgSpec)

CloudAccountNamingRule describes the rules for naming a child account based on the selected plan

FieldDescription
name
string

Name is the given name of the rule

description
string

Description provides an optional description for the account rule

stages
[]string

Stages is a list of stages permitted

suffix
string

Suffix is the applied suffix

prefix
string

Prefix is a prefix for the account name

CloudOrgProviderDetails

(Appears on: CloudOrgSpec)

CloudOrgProviderDetails provides parameters that are specific to a particular type of cloud account

FieldDescription
type
ProviderType
gcp
GCPOrganizationParameters
(Optional)

GCP holds parameters specific to GCP organization accounts. Present only if type is GCP.

aws
AWSOrganizationParameters
(Optional)

AWS holds parameters specific to AWS organization accounts. Present only if type is AWS.

azure
AzureTenantParameters
(Optional)

Azure holds parameters specific to Azure tenant accounts. Present only if type is Azure.

CloudOrgSpec

(Appears on: CloudOrg)

CloudOrgSpec defines the specification of an org to use for factorying cloud accounts

FieldDescription
name
string

Name is a unique human-readable name for this organisation

cloud
string

Cloud defines which cloud provider this account is for

orgIdentifier
string

OrgIdentifier must be populated with the identifier for the organization - for example, AWS Master Account ID, Azure Tenant ID, GCP Organization ID.

accountIdentifier
string

The account ID/subscription ID/project ID to place shared org-wide resources such as DNS root zones, etc. For AWS this must be the same AWS Master Account ID used for OrgIdentifier.

identityCred
CloudIdentityReference

IdentityCred is a reference to the credential for Wayfinder to identify itself to this cloud provider when using this organization.

Will be populated by Wayfinder with the default identity cred for this cloud if unspecified on entry.

roles
[]CloudAccessConfigRole

Roles defines a set of identities which Wayfinder should assume in order to perform account management functionality.

defaultRegion
string

DefaultRegion is an optional default region to use for API access in this account when no region is specified for the operation. This is used to determine, for example, which region to use to talk to global services such as Route53 in AWS. E.g. eu-west-2, europe-west2, uksouth

providerDetails
CloudOrgProviderDetails

ProviderDetails provides additional fields which can be used for cloud-provider specific data, such as a GCP billing account ID.

stages
[]string

Stages lists the stages that this org may be used for

namingRules
[]CloudAccountNamingRule

NamingRules describes how to name child accounts based on the plan chosen. account.

allocation
ResourceAllocation

Allocation describes which workspaces can use this cloud org.

CloudOrgStatus

(Appears on: CloudOrg)

CloudOrgStatus defines the status of a cloud org

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

GCPOrganizationParameters

(Appears on: CloudOrgProviderDetails)

GCPOrganizationParameters provides the specific parameters for a GCP organisation account

FieldDescription
parentType
string

ParentType is the type of parent this project has Valid types are: “organization”, “folder”, and “project”

billingAccount
string

BillingAccountName is the resource name of the billing account associated with the project e.g. ‘012345-567890-ABCDEF’

ManagedCloudAccountSpec

(Appears on: ManagedCloudAccount)

ManagedCloudAccountSpec defines a request for a cloud account to exist

FieldDescription
name
string

Name is the unique name of the account to create.

Populate to set a custom name, will be derived from the organization naming rules if unspecified.

cloud
string

Cloud defines which cloud provider the account is being requested for. Must be specified and must match the cloud of the specified CloudOrg.

stage
string

Stage is the lifecycle stage to create the cloud account for.

cloudOrg
string

CloudOrg is a reference to the cloud organization in which to create the cloud account

features
[]string

Features is the set of features to enable on the managed cloud account

ManagedCloudAccountStatus

(Appears on: ManagedCloudAccount)

ManagedCloudAccountStatus defines the observed state of the provisioned account

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is the reference to the generated cloud access configuration

identifier
string

Identifier is the assigned account ID / project ID / subscription ID

providerStatus
ProviderStatus

ProviderStatus can be populated with provider-specific status information, particularly relevant on accounts of type managed.

ProviderStatus

(Appears on: ManagedCloudAccountStatus)

ProviderStatus provides status fields specific to a cloud provider

FieldDescription
type
ProviderType
awsAccount
AWSAccountStatus
(Optional)

AWS holds status specific to AWS accounts.

ProviderType (string)

(Appears on: CloudOrgProviderDetails, ProviderStatus)

ProviderType represents the concrete type of organization that a CloudOrg represents

ValueDescription

"AWS"

ProviderTypeAWS is a root organization master account for AWS account management

"Azure"

ProviderTypeAzure is a root organization tenant for Azure subscription management

"GCP"

ProviderTypeGCP is a root organization for GCP project management

app.appvia.io/v2beta1

Package v1alpha1 contains API Schema definitions for the CloudAccess API group

Resource Types:

AppEnv

AppEnv represents a deployable environment for an application - i.e. a namespace for the application’s usage.

FieldDescription
apiVersion
string
app.appvia.io/v2beta1
kind
string
AppEnv
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
AppEnvSpec
cloud
string

Cloud defines which cloud provider this application is being developed for.

application
string

Application is the name of the application that this environment belongs to.

name
string

Name is the unique (within the application) human-readable name for this environment.

key
string

Key is a unique (within the appliction), short DNS-compatible name for this environment. If unspecified on creation a suitable value will be derived from the name. If specified, it will be validated for uniqueness on entry.

clusterRef
Ownership

ClusterRef defines the cluster on which this application environment should be hosted. Either ClusterPlan or ClusterRef must be specified. If unspecified, the reference to the created cluster will be set by Wayfinder.

plan
string

Plan is the name of the plan to use to build a new cluster for this environment. This cannot be changed after the AppEnv is requested. One of ClusterRef or Plan must be set to create an app environment.

region
string

Region is the cloud region in which to place this appenv. Only applicable when using a plan, will be ignored if ClusterRef points to an existing cluster.

namespace
string

Namespace is the requested name for the environment’s namespace on the specified cluster. If unpopulated, Wayfinder will auto-populate this with a sensible name on entry.

stage
string

Stage is the infrastructure stage to which this environment belongs

order
int

Order gives a numeric ordering of this environment, used to sort environments in a logical sequence. If two environments for an app have the same order, their display order is undefined and may change.

status
AppEnvStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

clusterDomain
string

ClusterDomain is the full domain delegated to the host cluster of this environment. This is useful to understand how wildcard certificates and DNS entries can be generated. Application components should use DNSZone, not ClusterDomain, as their suffix.

dnsZone
string

DNSZone is the DNS zone which should be used for this environment.

dnsZoneDedicated
bool

DNSZoneDedicated will be true if the DNS zone provided is dedicated to this specific appenv.

certIssuers
[]string

CertIssuers are the certificate issuers which can be used in this app env

ingressClasses
[]IngressClass

IngressClasses are the ingress classes which can be used in the app env

deployment
AppEnvDeploymentStatus

Deployment shows the deployed status of the app to this environment. The deployment status will be updated approximately once per minute, to get up to date status, call the deploystatus subresource API of the appenv.

deploymentLastChecked
Kubernetes meta/v1.Time

DeploymentLastChecked identifies when the deployment status of this app was last checked.

Application

Application represents an application you are planning to use Wayfinder to serve environments for.

FieldDescription
apiVersion
string
app.appvia.io/v2beta1
kind
string
Application
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ApplicationSpec
name
string

Name is the human-readable name for this application.

key
string

Key is a system-wide unique DNS-compatible name for this application. If unspecified on creation a suitable value will be derived from the name. If specified, it will be validated for uniqueness on entry.

description
string

Description is an optional longer human-readable description of this application to help users understand a bit about it.

cloud
string

Cloud defines which cloud provider this application is being developed for.

components
[]ApplicationComponent

Components are the definition of the components that make up this application. These are optional, but if specified, Wayfinder can generate example manifests for your application with the components wired together.

status
ApplicationStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

AppEnvCloudResourceStatus

(Appears on: AppEnvDeployedComponentStatus)

FieldDescription
plan
string

Plan identifies the cloud resource plan used for this cloud resource

ready
bool

Ready indicates whether the cloud resource represented by this component is in sync with the definition last deployed - i.e. the actual cloud resource is present and correct.

moduleVersion
string

ModuleVersion identifies which Terraform version of the module was used to build this cloud resource.

AppEnvDeployedComponentStatus

(Appears on: AppEnvDeploymentStatus)

AppEnvDeployedComponentStatus defines the status of a specific app component in the environment

FieldDescription
component
string

Component identifies which component this status is about.

componentType
ApplicationComponentType

ComponentType defines what type of component this is.

exposed
bool

Exposed will be true if this component is accessible outside the cluster, i.e. has an ingress.

tls
bool

TLS will be true if this component has TLS enabled (only relevant if exposed is true)

deployed
bool

Deployed will be true if this component is deployed in this environment.

pods
[]AppEnvPodStatus

Pods gives a detailed status for each pod for this component in the environment.

podsReady
int

PodsReady shows how many pods are in a ready state for this component in the environment.

podsTotal
int

PodsTotal shows how many pods are present for this component in the environment.

endpoint
string

Endpoint identifies the DNS endpoint for this component, if exposed.

certReady
bool

CertReady indicates if the HTTPS certificate is ready, if exposed and TLS is enabled.

cloudResource
AppEnvCloudResourceStatus

CloudResource identifies the status of the cloud resource associated with this component, when the component type is CloudResource.

AppEnvDeploymentStatus

(Appears on: AppEnvStatus)

FieldDescription
deployed
bool

Deployed will be true if one or more components are deployed to this environment

components
[]AppEnvDeployedComponentStatus

Components describes the status of the deployed components

AppEnvPodStatus

(Appears on: AppEnvDeployedComponentStatus)

AppEnvPodStatus is a cut-down version of a full pod status

FieldDescription
phase
Kubernetes core/v1.PodPhase

The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod’s status. There are five possible phase values:

Pending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.

More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase

conditions
[]Kubernetes core/v1.PodCondition

Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

message
string

A human readable message indicating details about why the pod is in this condition.

reason
string

A brief CamelCase message indicating details about why the pod is in this state. e.g. ‘Evicted’

initContainerStatuses
[]Kubernetes core/v1.ContainerStatus

The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

containerStatuses
[]Kubernetes core/v1.ContainerStatus

The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

AppEnvSpec

(Appears on: AppEnv)

AppEnvSpec defines an environment for an application

FieldDescription
cloud
string

Cloud defines which cloud provider this application is being developed for.

application
string

Application is the name of the application that this environment belongs to.

name
string

Name is the unique (within the application) human-readable name for this environment.

key
string

Key is a unique (within the appliction), short DNS-compatible name for this environment. If unspecified on creation a suitable value will be derived from the name. If specified, it will be validated for uniqueness on entry.

clusterRef
Ownership

ClusterRef defines the cluster on which this application environment should be hosted. Either ClusterPlan or ClusterRef must be specified. If unspecified, the reference to the created cluster will be set by Wayfinder.

plan
string

Plan is the name of the plan to use to build a new cluster for this environment. This cannot be changed after the AppEnv is requested. One of ClusterRef or Plan must be set to create an app environment.

region
string

Region is the cloud region in which to place this appenv. Only applicable when using a plan, will be ignored if ClusterRef points to an existing cluster.

namespace
string

Namespace is the requested name for the environment’s namespace on the specified cluster. If unpopulated, Wayfinder will auto-populate this with a sensible name on entry.

stage
string

Stage is the infrastructure stage to which this environment belongs

order
int

Order gives a numeric ordering of this environment, used to sort environments in a logical sequence. If two environments for an app have the same order, their display order is undefined and may change.

AppEnvStatus

(Appears on: AppEnv)

AppEnvStatus defines the status of an application environment

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

clusterDomain
string

ClusterDomain is the full domain delegated to the host cluster of this environment. This is useful to understand how wildcard certificates and DNS entries can be generated. Application components should use DNSZone, not ClusterDomain, as their suffix.

dnsZone
string

DNSZone is the DNS zone which should be used for this environment.

dnsZoneDedicated
bool

DNSZoneDedicated will be true if the DNS zone provided is dedicated to this specific appenv.

certIssuers
[]string

CertIssuers are the certificate issuers which can be used in this app env

ingressClasses
[]IngressClass

IngressClasses are the ingress classes which can be used in the app env

deployment
AppEnvDeploymentStatus

Deployment shows the deployed status of the app to this environment. The deployment status will be updated approximately once per minute, to get up to date status, call the deploystatus subresource API of the appenv.

deploymentLastChecked
Kubernetes meta/v1.Time

DeploymentLastChecked identifies when the deployment status of this app was last checked.

ApplicationComponent

(Appears on: ApplicationSpec)

ApplicationComponent defines a component of an application

FieldDescription
name
string

Name is the unique name for this component within the application.

key
string

Key is a unique (within the app) DNS-compatible name for this component. If unspecified on creation a suitable value will be derived from the name. If specified, it will be validated for uniqueness on entry.

type
ApplicationComponentType

Type is the component type

container
ApplicationComponentContainer

Container defines the settings for a container component, required if Type is Container

cloudResource
ApplicationComponentCloudResource

CloudResource defines the settings for a cloud resource component, required if Type is CloudResource

dependsOn
[]string

DependsOn is a list of other components that this component depends on - e.g. if this is a container component and needs access to the outputs of a cloud resource, place the name of the cloud resource component here.

ApplicationComponentCloudResource

(Appears on: ApplicationComponent)

ApplicationComponentCloudResource defines the specification of a dependency component.

FieldDescription
plan
string

Plan identifies the cloud resource plan to use for this cloud resource

variables
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1.JSON

Variables is a set of variables to provide to the associated Terraform module when applying. This will be validated against the policy on the specified plan, and override any values provided in that plan.

ApplicationComponentContainer

(Appears on: ApplicationComponent)

ApplicationComponentContainer defines the specification of a container component

FieldDescription
image
string

Image is the fully-specified container image to use for this component

port
int

Port is the primary port this component exposes to other components or for external traffic

expose
bool

Expose makes this component available outside the cluster by creating an ingress for it

tls
bool

TLS ensures that the component is exposed with an HTTPS TLS certificate (only relevant if expose is true)

whitelist
[]string

Whitelist, if set, will restrict access to the specified IP ranges, specified in CIDR notation (only relevant if expose is true)

env
[]ContainerEnvVariable

Env is a set of environment variables to expose in this container

ApplicationComponentType (string)

(Appears on: AppEnvDeployedComponentStatus, ApplicationComponent)

ApplicationComponentType defines the type of a component

ValueDescription

"CloudResource"

ApplicationComponentTypeCloudResource defines a component which provides a cloud resource to your other components, such as a database, key-value store or messaging system. These will be serviced by cloud resource plans.

"Container"

ApplicationComponentTypeContainer defines a component served by a single container, typically this would be for your own application components.

"OwnManifests"

ApplicationComponentTypeOwnManifests defines a component served by a set of Kubernetes manifests, Helm charts, or other native Kubernetes tooling provided by the user. Wayfinder will not provide deployment manifests for this component.

ApplicationSpec

(Appears on: Application)

ApplicationSpec defines the specification of the app

FieldDescription
name
string

Name is the human-readable name for this application.

key
string

Key is a system-wide unique DNS-compatible name for this application. If unspecified on creation a suitable value will be derived from the name. If specified, it will be validated for uniqueness on entry.

description
string

Description is an optional longer human-readable description of this application to help users understand a bit about it.

cloud
string

Cloud defines which cloud provider this application is being developed for.

components
[]ApplicationComponent

Components are the definition of the components that make up this application. These are optional, but if specified, Wayfinder can generate example manifests for your application with the components wired together.

ApplicationStatus

(Appears on: Application)

ApplicationStatus defines the status of an application

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ContainerEnvVariable

(Appears on: ApplicationComponentContainer)

FieldDescription
name
string

Name is the name of the environment variable to set in the container

value
string

Value is a hard-coded value that this environment variable should always have

fromCloudResourceOutput
VariableFromCloudResource

FromCloudResourceOutput gets the value from a dependent cloud resource component’s outputs

IngressClass

(Appears on: AppEnvStatus)

FieldDescription
class
string

Class is the name of the ingress class

namespace
string

Namespace is the namespace the ingress controller is in

VariableFromCloudResource

(Appears on: ContainerEnvVariable)

FieldDescription
componentName
string

ComponentName is the name of another component in this application representing the value

output
string

Output is the name of the environment variable in the cloud resource outputs that you want as the value of the environment variable

cloudaccess.appvia.io/v2beta1

Package v1alpha1 contains API Schema definitions for the CloudAccess API group

Resource Types:

CloudAccessConfig

(Appears on: CloudAccessConfigAndIAM)

CloudAccessConfig represents an account/project/subscription in a cloud provider which Wayfinder has access to

FieldDescription
apiVersion
string
cloudaccess.appvia.io/v2beta1
kind
string
CloudAccessConfig
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CloudAccessConfigSpec
name
string

Name is the unique logical name for this cloud access config

description
string

Description is an optional longer human-readable description of this cloud access config to help users understand which cloud access configuration to choose.

cloud
string

Cloud defines which cloud provider this account is for

identifier
string

Identifier is the unique identifier for this account with the cloud provider, i.e. AWS account ID, GCP project ID, Azure subscription, etc.

orgIdentifier
string

OrgIdentifier is an identifier for the cloud organization, i.e. AWS master account ID, Azure tenant, GCP organization ID, etc. May be required for certain functionality on some clouds.

defaultRegion
string

DefaultRegion is an optional default region to use for API access in this account when no region is specified for the operation. This is used to determine, for example, which region to use to talk to global services such as Route53 in AWS. E.g. eu-west-2, europe-west2, uksouth

stage
string

Stage defines the stage this cloud access config will be used for in the workspace. Optional for ‘admin’ cloud access configs, required for workspace cloud access configs.

identityCred
CloudIdentityReference

IdentityCred is a reference to the credential for Wayfinder to identify itself to this cloud provider when using this configuration.

Will be populated by Wayfinder with the default identity cred for this cloud if unspecified on entry.

features
[]string

Features lists the ways in which it is intended for this cloud access config to be used. This will allow the relevant set of roles to be determined.

roles
[]CloudAccessConfigRole

Roles defines the possible ways in which Wayfinder can use this cloud, along with details of how Wayfinder should identify itself (or provider-specific roles that need to be assumed) to use this account in the specified way. The set of roles required for a cloud is defined by the enabled features.

status
CloudAccessConfigStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

providerStatus
ProviderStatus

ProviderStatus can be populated with provider-specific status information, particularly relevant on accounts of type managed.

features
map[string]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/cloudaccess/v2beta1.CloudFeatureStatus

Features describes the status of any features specified on this cloud access config.

roles
map[string]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/cloudaccess/v2beta1.CloudAccessConfigRoleStatus

Roles provides the status of each underlying required role. The keys of the map are the role names.

CloudIdentity

CloudIdentity represents an identity that Wayfinder can use to access a cloud. This represents the initial identity Wayfinder uses - it will assume into various roles from this identity as dictated by the relevant CloudAccessConfig role.

FieldDescription
apiVersion
string
cloudaccess.appvia.io/v2beta1
kind
string
CloudIdentity
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CloudIdentitySpec
name
string

Name is a human-understandable name for this credential

cloud
string

Cloud defines which cloud provider this credential is for

implicitIdentity
bool

ImplicitIdentity specifies that any credentials are provided by the run time process environment and NOT a secret reference. Typically this means that workload identity is to be used.

implicitIdentityID
string

ImplicitIdentityID specifies any ID that the run time process environment needs to authenticate to a specific identity where more than one can be assigned to a process

credentialsInputData
map[string]string

CredentialsInputData can be used to populate the secret when creating/updating a credential. This will never be populated when the credential is returned from the API.

If specified, this must include the correct set of keys for credentials for the cloud provider that CloudAccount references.

secretRef
Kubernetes core/v1.SecretReference

SecretRef is a reference to the Kubernetes secret containing the actual key data for this credential. If the secret does not exist but CredentialsInputData is populated, this secret will be created. This can also be a reference to an existing secret managed outside Wayfinder.

Where CredentialsInputData is specified but this is left blank, Wayfinder will assign this value.

credentialsUpdated
Kubernetes meta/v1.Time

CredentialsUpdated should be set to the current time when an underlying secret is updated. This will be automatically set to the current time if CredentialsInputData is set. If you manually change the secret outside Wayfinder, update this field to trigger re-verification of this credential.

status
CloudIdentityStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

verified
bool

Verified checks that the credentials are ok and valid

identity
string

Identity is the unique reference to the cloud principle e.g. aws role, gcp service-account etc.

WorkloadIdentity

WorkloadIdentity represents an identity for a kubernetes workload in a specific cloud provider / cloud account

FieldDescription
apiVersion
string
cloudaccess.appvia.io/v2beta1
kind
string
WorkloadIdentity
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
WorkloadIdentitySpec
cloud
string

Cloud defines which cloud provider this workload identity is for

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef defines which cloud access configuration to use to build this workload identity in

cluster
Ownership

Cluster is a reference to the cluster which this workload identity will be used in.

clusterServiceAccount
ClusterServiceAccount

ClusterServiceAccount is the name and namespace of the service account which will use this identity in the target cluster. Required on AWS and GCP, optional (and unused) on Azure at this time.

providerDetails
WorkloadIdentityProviderDetails

ProviderDetails provides additional fields which can be used for cloud-provider specific data needed to provision a workload identity

role
WorkloadIdentityRole

Role must be the name of a valid workload identity role known to Wayfinder Can optionally be None to indicate that no specific permissions are defined with the identity

identityOnly
bool

IdentityOnly will create an identity associated with a cluster with no specific permissions Must specify Role=None if this is true. In AWS: - An IAM role is created and associated with a specific Kubernetes service account - no inline or attached policies are managed (post creation of the IAM role) - It is a “user” responsibility to attach policies to the IAM role In Azure: - The user defined managed identity is created - No role definitions or role assignments are created - It is a “user” responsibility to create relevant role assignments

roleParameters
map[string]string

RoleParameters are any parameters required for the specified role

cloudResourceName
string

CloudResourceName specifies the name of the workload identity in the cloudaccount Can be left blank so that the name is derived from the cluster name + resource name

status
WorkloadIdentityStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

identity
string

Identity contains a cloud-provider specific reference to the identity created for this resource, e.g. an AWS ARN or GCP service account email

AWSAccountStatus

(Appears on: ProviderStatus)

AWSAccountStatus provides status specific to AWS accounts

FieldDescription
serviceCatalogProvisioningID
string

ServiceCatalogProvisioningID is the Control Tower Account Factory Service Catalog provisioning record ID. If set, creation is being tracked. Relevant only to managed AWS accounts

AWSIAM

(Appears on: IAMRoles)

AWSIAM is a collection of AWS roles and policies

FieldDescription
accountID
string
features
[]string
iam
[]AWSRoleWithPolicies

AWSPolicy

(Appears on: AWSRoleWithPolicies)

FieldDescription
description
string
path
string
policyName
string
policyDocument
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

AWSRole

(Appears on: AWSRoleWithPolicies)

FieldDescription
assumeRolePolicyDocument
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON
description
string
path
string
roleName
string

AWSRolePolicyAttachments

(Appears on: AWSRoleWithPolicies)

FieldDescription
roleName
string
policyArn
string

AWSRoleWithPolicies

(Appears on: AWSIAM)

AWSRoleWithPolicies is a collection of AWS roles and policies

FieldDescription
wayfinderRoleName
string
role
AWSRole
policies
[]AWSPolicy
rolePolicyAttachments
[]AWSRolePolicyAttachments

AWSWorkloadIdentityParameters

(Appears on: WorkloadIdentityProviderDetails)

AWSWorkloadIdentityParameters is the parameters for an AWS workload identity

FieldDescription
iamPolicies
[]string
(Optional)

IAMPolicies defines a list of (additional) IAM policies to bind to the workload identity role It is assumed that these will exist in the target AWS account for the cluster, therefore use either built-in AWS-managed policies or make sure that your process for managing policies in your accounts will always ensure these policies exist in any account this package may be deployed into. For AWS-managed policies, specify the full ARN (e.g. arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess) For self-managed policies, specify the ARN without an account ID (e.g. arn:aws:iam:::policy/myorg-policy-s3-write)

customIAMPolicy
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

CustomIAMPolicy defines an additional dedicated IAM policy to create and bind to this workload identity.

AzureApplication

(Appears on: AzureServicePrincipal)

FieldDescription
tenantID
string
displayName
string

AzureIAM

(Appears on: IAMRoles)

AzureIAM is a collection of Azure role definitions and role assignments

FieldDescription
subscriptionID
string
features
[]string
iam
[]AzureIdentityAndRoleDefinitions

AzureIdentity

FieldDescription
name
string
spec
struct{ResourceID string "json:\"resourceID\""; ClientID string "json:\"clientID\""}
resourceID
string
clientID
string

AzureIdentityAndRoleDefinitions

(Appears on: AzureIAM)

AzureIdentityAndRoleDefinitions is an Azure Identity with a role definition and assignment

FieldDescription
wayfinderRoleName
string
managedIdentity
AzureManagedIdentity
servicePrincipal
AzureServicePrincipal
roleDefinition
AzureRoleDefinition

AzureIdentityBinding

FieldDescription
name
string
spec
struct{Selector string "json:\"selector\""; AzureIdentity string "json:\"azureIdentity\""}
selector
string
azureIdentity
string

AzureManagedIdentity

(Appears on: AzureIdentityAndRoleDefinitions)

FieldDescription
identityName
string

AzureRoleAssignment

FieldDescription
subscriptionID
string
roleName
string
identityName
string
assignmentScopes
[]string

AssignmentScopes are the scopes to which the role assignment applies.

AzureRoleDefinition

(Appears on: AzureIdentityAndRoleDefinitions)

FieldDescription
roleName
string
description
string
permissions
k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON
assignableScopes
[]string

AzureServicePrincipal

(Appears on: AzureIdentityAndRoleDefinitions)

FieldDescription
name
string
application
AzureApplication

AzureWorkloadIdentityParameters

(Appears on: WorkloadIdentityProviderDetails)

AzureWorkloadIdentityParameters is the parameters for an Azure workload identity

FieldDescription
podSelector
string

PodSelector specifies the unique string that will be set on the Identity This allows AAD Pod Identity to find the pods that are associated with it.

Binding

(Appears on: GCPOrgBindings, GCPProjectBindings, GCPServiceAccountBinding)

FieldDescription
role
string
members
[]string

CloudAccessConfigAndIAM

CloudAccessConfigAndIAM represents any updates to a cloud access config required and IAM roles

FieldDescription
cloudAccessConfig
CloudAccessConfig

CloudAccessConfig is the cloud access config with updates for roles required for the features requested

iam
IAMRoles

IAM represents the IAM objects required to provide access for Wayfinder roles

CloudAccessConfigReference

(Appears on: ManagedCloudAccountStatus, WorkloadIdentitySpec, ClusterSpec, CostImportSpec, DNSZoneSpec, NetworkFabricSpec, PeeringRuleSpec, PeeringSpec)

FieldDescription
namespace
string
name
string

CloudAccessConfigRole

(Appears on: CloudOrgSpec, CloudAccessConfigSpec)

FieldDescription
role
string

Role is the Wayfinder cloud role that this access configuration can be used for

cloudResourceName
string

CloudResourceName is the name of the object in the cloud provider that represents this role. This should be left empty, Wayfinder will populate this on entry with an appropriate value.

assumeProviderRole
string

AssumeProviderRole contains a reference to the identifier that should be assumed by Wayfinder when using this account for this role, i.e. AWS ARN, GCP Service Account, Azure Role, etc.

deployedResourceHash
string

DeployedResourceHash is a checksum calculated from the role definition when created - This is set by the cli when creating the cloud resources for the role - It is used by the controller to indicate if the role setup needs to be repeated

CloudAccessConfigRoleStatus

(Appears on: CloudAccessConfigStatus)

CloudAccessConfigRoleStatus is the status of a role on a cloud access config

FieldDescription
status
RoleStatus
message
string

CloudAccessConfigSpec

(Appears on: CloudAccessConfig)

CloudAccessConfigSpec defines the specification of an account known to wayfinder

FieldDescription
name
string

Name is the unique logical name for this cloud access config

description
string

Description is an optional longer human-readable description of this cloud access config to help users understand which cloud access configuration to choose.

cloud
string

Cloud defines which cloud provider this account is for

identifier
string

Identifier is the unique identifier for this account with the cloud provider, i.e. AWS account ID, GCP project ID, Azure subscription, etc.

orgIdentifier
string

OrgIdentifier is an identifier for the cloud organization, i.e. AWS master account ID, Azure tenant, GCP organization ID, etc. May be required for certain functionality on some clouds.

defaultRegion
string

DefaultRegion is an optional default region to use for API access in this account when no region is specified for the operation. This is used to determine, for example, which region to use to talk to global services such as Route53 in AWS. E.g. eu-west-2, europe-west2, uksouth

stage
string

Stage defines the stage this cloud access config will be used for in the workspace. Optional for ‘admin’ cloud access configs, required for workspace cloud access configs.

identityCred
CloudIdentityReference

IdentityCred is a reference to the credential for Wayfinder to identify itself to this cloud provider when using this configuration.

Will be populated by Wayfinder with the default identity cred for this cloud if unspecified on entry.

features
[]string

Features lists the ways in which it is intended for this cloud access config to be used. This will allow the relevant set of roles to be determined.

roles
[]CloudAccessConfigRole

Roles defines the possible ways in which Wayfinder can use this cloud, along with details of how Wayfinder should identify itself (or provider-specific roles that need to be assumed) to use this account in the specified way. The set of roles required for a cloud is defined by the enabled features.

CloudAccessConfigStatus

(Appears on: CloudAccessConfig)

CloudAccessConfigStatus defines the status of a cloud access configuration

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

providerStatus
ProviderStatus

ProviderStatus can be populated with provider-specific status information, particularly relevant on accounts of type managed.

features
map[string]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/cloudaccess/v2beta1.CloudFeatureStatus

Features describes the status of any features specified on this cloud access config.

roles
map[string]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/cloudaccess/v2beta1.CloudAccessConfigRoleStatus

Roles provides the status of each underlying required role. The keys of the map are the role names.

CloudAccountOrOrg

CloudAccountOrOrg allows the role management functionality to operate for both cloud orgs and cloud access configs without worry

CloudFeatureStatus

(Appears on: CloudAccessConfigStatus)

CloudFeatureStatus describes the status of a cloud access feature

FieldDescription
ready
bool

Ready indicates whether this feature is ready to use.

setupRequired
bool

SetupRequired indicates this feature needs wf setup cloudaccessconfig to sort it out (i.e. one or more roles is missing, requires a provider role specifying, or requires updating). This will be false if a role is correct and specified but somehow not valid.

requiredRoles
[]string

RequiredRoles indicates the list of roles that this cloud access config needs working in order for this feature to work. Each role identified here will have an entry in status.Roles to understand the status of these underlying roles.

CloudIdentityReference

(Appears on: CloudOrgSpec, CloudAccessConfigSpec, CostImportSpec)

CloudIdentityReference is a reference specifically to a cloud identity

FieldDescription
namespace
string

Namespace for the identity, specify empty for implicit credentials

name
string

Name for the credential, specify empty for implicit credentials

CloudIdentitySpec

(Appears on: CloudIdentity)

CloudIdentitySpec defines the metadata about the identity When required it will have a reference to kubernetes secret containing the credentials

FieldDescription
name
string

Name is a human-understandable name for this credential

cloud
string

Cloud defines which cloud provider this credential is for

implicitIdentity
bool

ImplicitIdentity specifies that any credentials are provided by the run time process environment and NOT a secret reference. Typically this means that workload identity is to be used.

implicitIdentityID
string

ImplicitIdentityID specifies any ID that the run time process environment needs to authenticate to a specific identity where more than one can be assigned to a process

credentialsInputData
map[string]string

CredentialsInputData can be used to populate the secret when creating/updating a credential. This will never be populated when the credential is returned from the API.

If specified, this must include the correct set of keys for credentials for the cloud provider that CloudAccount references.

secretRef
Kubernetes core/v1.SecretReference

SecretRef is a reference to the Kubernetes secret containing the actual key data for this credential. If the secret does not exist but CredentialsInputData is populated, this secret will be created. This can also be a reference to an existing secret managed outside Wayfinder.

Where CredentialsInputData is specified but this is left blank, Wayfinder will assign this value.

credentialsUpdated
Kubernetes meta/v1.Time

CredentialsUpdated should be set to the current time when an underlying secret is updated. This will be automatically set to the current time if CredentialsInputData is set. If you manually change the secret outside Wayfinder, update this field to trigger re-verification of this credential.

CloudIdentityStatus

(Appears on: CloudIdentity)

CloudIdentityStatus represents the status of a cloud identity for account access

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

verified
bool

Verified checks that the credentials are ok and valid

identity
string

Identity is the unique reference to the cloud principle e.g. aws role, gcp service-account etc.

ClusterServiceAccount

(Appears on: WorkloadIdentitySpec, WorkloadIdentity)

ClusterServiceAccount represents the identity inside the cluster that will use the workload identity

FieldDescription
namespace
string
name
string

GCPIAM

(Appears on: IAMRoles)

GCPIAM is a collection of GCP roles

FieldDescription
projectID
string
features
[]string
iam
[]GCPServiceAccountAndBindings

GCPOrgBindings

(Appears on: GCPServiceAccountAndBindings)

FieldDescription
orgID
string
binding
[]Binding

GCPProjectBindings

(Appears on: GCPServiceAccountAndBindings)

FieldDescription
projectID
string
binding
[]Binding

GCPServiceAccount

(Appears on: GCPServiceAccountAndBindings)

FieldDescription
displayName
string
email
string

GCPServiceAccountAndBindings

(Appears on: GCPIAM)

FieldDescription
wayfinderRoleName
string
serviceAccount
GCPServiceAccount
bindings
GCPServiceAccountBinding
projectBindings
GCPProjectBindings
orgBindings
GCPOrgBindings

GCPServiceAccountBinding

(Appears on: GCPServiceAccountAndBindings)

FieldDescription
displayName
string
binding
[]Binding

GCPWorkloadIdentityParameters

(Appears on: WorkloadIdentityProviderDetails)

GCPWorkloadIdentityParameters is the parameters for a GCP workload identity

GetRolesIAMRequest

GetRolesIAMRequest is the input for getting cloud IAM objects Used before a cloud access config exists

FieldDescription
name
string

Name is the name of the cloud access config to template the roles for

workspace
WorkspaceKey

Workspace is the workspace to template the roles for

provider
string

Cloud is the cloud provider

roleNameOverrides
map[string]string

RoleNameOverrides is a list of custom names to use for cloud IAM objects For AWS, must start with wf- at this time

defaultRegion
string

DefaultRegion is the default region for accessing the cloud provider

identifier
string

Identifier is the AWS account ID, Azure subscription ID or GCP project ID is used to specify the scope of the IAM permissions

orgIdentifier
string

OrgIdentifier for the CloudAccessResource Required on Azure. Set to the Azure Tenant ID

features
[]string

Features is a list of features that the IAM roles should support

stage
string

Stage is the stage of the cloud access config. Only used for naming the CloudAccessConfig resource

IAMRoles

(Appears on: CloudAccessConfigAndIAM)

IAMRoles is a collection of IAM objects required to provide access for Wayfinder roles

FieldDescription
name
string
provider
string
features
[]string
gcp
GCPIAM
aws
AWSIAM
azure
AzureIAM

ProviderAccountType (string)

(Appears on: ProviderStatus)

ProviderAccountType represents the concrete type of account that a CloudAccessConfiguration represents

ValueDescription

"AWSAccount"

ProviderAccountTypeAWSAccount is an AWS account for running workloads

"AzureSubscription"

ProviderAccountTypeAzureSubscription is an Azure subscription for running workloads

"GCPProject"

ProviderAccountTypeGCPProject is a GCP project for running workloads

ProviderStatus

(Appears on: CloudAccessConfigStatus)

ProviderStatus provides status fields specific to a cloud provider

FieldDescription
type
ProviderAccountType
awsAccount
AWSAccountStatus
(Optional)

AWSAccount holds status specific to AWS accounts.

RoleStatus (string)

(Appears on: CloudAccessConfigRoleStatus)

RoleStatus is a possible status of a role on a cloud access configuration

ValueDescription

"Invalid"

RoleInvalid indicates that a specified role is not usable, for example it cannot be accessed from the identity associated with this cloud access config or does not exist

"Missing"

RoleMissing indicates that a required role for a specified feature is not set for this cloud configuration

"Pending"

RolePending indicates that the role has not yet been checked

"RequiresProviderRole"

RoleRequiresProviderRole indicates that a specified role requires an AssumeProviderRole but none has been provided

"RequiresUpdate"

RoleRequiresUpdate indicates that the permissions required for the role are not correct in the cloud provider so this role needs to be updated

"Valid"

RoleValid indicates this cloud role is ready to use

WorkloadIdentityProviderDetails

(Appears on: WorkloadIdentitySpec)

WorkloadIdentityProviderDetails provides parameters that are specific to a particular type of workload identity

FieldDescription
type
WorkloadIdentityType
aws
AWSWorkloadIdentityParameters
(Optional)

AWS holds parameters specific to AWS workload identities. Present only if type is AWS.

gcp
GCPWorkloadIdentityParameters
(Optional)

GCP holds parameters specific to GCP workload identity. Present only if type is GCP.

azure
AzureWorkloadIdentityParameters
(Optional)

Azure holds parameters specific to Azure workload identity. Present only if type is Azure.

WorkloadIdentityRole (string)

(Appears on: WorkloadIdentitySpec, WorkloadIdentity)

ValueDescription

"CertManager"

WorkloadIdentityRoleExternalDNS defines the required permissions for CertManager to function in a given cloud

"ClusterAutoscaler"

WorkloadIdentityRoleClusterAutoscaler defines the required permissions for the cluster autoscaler to function in a given cloud (only needed on AWS)

"ExternalDNS"

WorkloadIdentityRoleExternalDNS defines the required permissions for ExternalDNS to function in a given cloud

"None"

WorkloadIdentityRoleNone defines the “minimal” cloud permissions - For AWS the identity IS a role which we will add simply sts:GetCallerIdentity - For Azure no permissions are required

"TerraformExecutor"

WorkloadIdentityRoleTerraformExecutor defines the required permissions for the Terranetes controller to create and manage cloud resources

WorkloadIdentitySpec

(Appears on: WorkloadIdentity)

WorkloadIdentitySpec defines the specification of a workload identity which should be provisioned

FieldDescription
cloud
string

Cloud defines which cloud provider this workload identity is for

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef defines which cloud access configuration to use to build this workload identity in

cluster
Ownership

Cluster is a reference to the cluster which this workload identity will be used in.

clusterServiceAccount
ClusterServiceAccount

ClusterServiceAccount is the name and namespace of the service account which will use this identity in the target cluster. Required on AWS and GCP, optional (and unused) on Azure at this time.

providerDetails
WorkloadIdentityProviderDetails

ProviderDetails provides additional fields which can be used for cloud-provider specific data needed to provision a workload identity

role
WorkloadIdentityRole

Role must be the name of a valid workload identity role known to Wayfinder Can optionally be None to indicate that no specific permissions are defined with the identity

identityOnly
bool

IdentityOnly will create an identity associated with a cluster with no specific permissions Must specify Role=None if this is true. In AWS: - An IAM role is created and associated with a specific Kubernetes service account - no inline or attached policies are managed (post creation of the IAM role) - It is a “user” responsibility to attach policies to the IAM role In Azure: - The user defined managed identity is created - No role definitions or role assignments are created - It is a “user” responsibility to create relevant role assignments

roleParameters
map[string]string

RoleParameters are any parameters required for the specified role

cloudResourceName
string

CloudResourceName specifies the name of the workload identity in the cloudaccount Can be left blank so that the name is derived from the cluster name + resource name

WorkloadIdentityStatus

(Appears on: WorkloadIdentity)

WorkloadIdentityStatus defines the status of a cloud account

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

identity
string

Identity contains a cloud-provider specific reference to the identity created for this resource, e.g. an AWS ARN or GCP service account email

WorkloadIdentityType (string)

(Appears on: WorkloadIdentityProviderDetails)

WorkloadIdentityType represents the concrete type of a workload identity to provide

ValueDescription

"AWS"

WorkloadIdentityTypeAWS is for AWS managed workload identity

"Azure"

WorkloadIdentityTypeAzure is for Azure managed workload identity

"GCP"

WorkloadIdentityTypeGCP is for GCP managed workload identity

cloudresources.appvia.io/v2beta1

Package v2beta1 contains API Schema definitions for the cloudresources v2beta1 API group

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

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.

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.

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

compute.appvia.io/v2beta1

Package v1alpha1 contains API Schema definitions for the compute v1alpha1 API group

Resource Types:

Cluster

Cluster is the schema for cluster definitions in Wayfinder

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
Cluster
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ClusterSpec
allocation
ResourceAllocation

Allocation describes which workspaces can use this cluster.

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is a reference to the cloud access configuration to use when building the cluster

cloudResourceName
string

CloudResourceName specifies the name of the cluster in the cloud Can be left blank so that the name is derived from the wayfinder workspace and resource name

plan
string

Plan refers to the original plan the cluster was created from

stage
string

Stage is the name of the stage for this cluster

secretRef
Kubernetes core/v1.SecretReference

SecretRef is a reference to an existing secret containing an administrative access token for this cluster. Required only for clusters which are not created by Wayfinder.

ClusterShared
ClusterShared

(Members of ClusterShared are embedded into this type.)

status
ClusterStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

authProxyEndpoint
string

AuthProxyEndpoint is the endpoint of the authentication proxy for this cluster

authProxyCertificate
string

AuthProxyCertificate is the certificate of the auth proxy endpoint

caCertificate
string

CaCertificate is the base64 encoded cluster certificate

kubeApiEndpoint
string

KubeAPIEndpoint is the kubernetes API endpoint url

networkFabric
NetworkFabricStatus

Network contains the network configuration used by this cluster

providerStatus
ProviderStatus

ProviderStatus is provider specific data with types

version
string

Version is the kubernetes version of the cluster

dnsZones
[]string

DNSZones is a list of Wayfinder-managed DNS zones which are currently available in this cluster with ExternalDNS. This will be populated if the DNSReady condition is true.

expires
Kubernetes meta/v1.Time

Expires is the timestamp after which the cluster should automatically be removed. The populated value should be time at which the cluster is created, plus duration defined in Spec.Expires

deployedChartsImage
string

DeployedChartsImage will be set, once the cluster is in condition HelmReady, to indicate which version of the charts image is deployed and active in this cluster

deployedAuthProxyImage
string

DeployedAuthProxyImage will be set, once the cluster is in condition AuthProxyReady, to indicate which version of the auth proxy image is deployed and active in this cluster

deployedResourceHashes
[]DeployedResourceHash

DeployedResourceHashes is set to a hash of the resources deployed into the cluster so we can re-apply if the resources change but quickly no-op if they have not.

metrics
Metrics

Metrics is a list of metrics for this cluster

ClusterPlan

ClusterPlan is the Schema for the plans API

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
ClusterPlan
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ClusterPlanSpec
PlanSpec
PlanSpec

(Members of PlanSpec are embedded into this type.)

summary
string

Summary provides a short title summary for the cluster plan It should describe a cluster in terms that are meaningful for developers: e.g. a cluster with very large nodes suitable for memory intensive applications

template
ClusterTemplate

Template are the key+value pairs describing a cluster configuration

status
ClusterPlanStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ContainerRegistry

ContainerRegistry is the container registry type

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
ContainerRegistry
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ContainerRegistrySpec
target
ContainerRegistryTarget

Target contains targeting information for this registry

provider
string

Provider defines which provider to use to create this registry

providerDetails
ContainerRegistryProviderDetails

ProviderDetails provides additional fields which can be used for provider specific data needed to provision this registry

status
ContainerRegistryStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

RoutingStatus
RoutingStatus

(Members of RoutingStatus are embedded into this type.)

pullSecret
Kubernetes core/v1.SecretReference

PullSecret is a reference to the imagePullSecret

GlobalContainerRegistry

GlobalContainerRegistry is the global container registry type

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
GlobalContainerRegistry
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
ContainerRegistrySpec
target
ContainerRegistryTarget

Target contains targeting information for this registry

provider
string

Provider defines which provider to use to create this registry

providerDetails
ContainerRegistryProviderDetails

ProviderDetails provides additional fields which can be used for provider specific data needed to provision this registry

status
ContainerRegistryStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

RoutingStatus
RoutingStatus

(Members of RoutingStatus are embedded into this type.)

pullSecret
Kubernetes core/v1.SecretReference

PullSecret is a reference to the imagePullSecret

KubernetesUpdate

KubernetesUpdate is the schema for Kubernetes version updates to clusters

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
KubernetesUpdate
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
KubernetesUpdateSpec
UpdateSpec
UpdateSpec

(Members of UpdateSpec are embedded into this type.)

targetKubernetesVersion
string

TargetKubernetesVersion is the specific Kubernetes version to use for the new node pool spec - Normally be an increment of the current, existing Kubernetes version - should satisfy the rules of the Kubernetes versioning scheme as per https://kubernetes.io/docs/setup/release/version-skew-policy/

status
KubernetesUpdateStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

startTime
Kubernetes meta/v1.Time

StartTime is the time the update was started Is used to estimate the percentage complete time

estimatedPercentageComplete
int

EstimatedPercentageComplete is the estimated percentage complete of the update - Based on the time from StartTime and a test of actual updates

NamespaceClaim

NamespaceClaim is the Schema for the namespaceclaims API

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
NamespaceClaim
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
NamespaceClaimSpec
cluster
Ownership

Cluster is the cluster the namespace resides

name
string

Name is the name of the namespace to create

annotations
map[string]string

Annotations is a series of annotations on the namespace

labels
map[string]string

Labels is a series of labels for the namespace

resourceDefaults
[]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.LimitRangeDefault

ResourceDefaults provide defaults for workloads (to prevent initial constraint violations) Not set directly or managed by owners (as only maximum values taken so should not conflict)

status
NamespaceClaimStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

Status is the status of the namespace

appliedConstraints
Constraints

AppliedConstraints details any applicable constraints applied to this namespace by the cluster owner

packageValues
[]PackageValue

PackageValues are values present in packages that a user may need to construct manifests.

dnsZones
[]string

DNSZones are the zones associated with the namespace

NodePool

Nodepool is the schema for cluster nodepool definitions in Wayfinder

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
NodePool
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
NodePoolSpec
logicalName
string

LogicalName is the internally unique name of the NodePool (not in cloud) - Should always be consistent with a single name entry in a Cluster or NodePoolUpdate - Has to be unique across all nodepools on the Cluster spec - Will NOT always match the name of the NodePool in cloud - Should be treated as an immutable field

cloudResourceName
string

CloudResourceName is the name of the cloud resource - should not be set by the client - set by the NodePool mutate if empty - set by the NodePoolUpdate controller depending on the update type

description
string

Description provides an optional description to the node pool

diskSize
int64

DiskSize is the amount of disk space to assign to the nodes in MBs

autoscaling
AutoScalingOptions

Autoscaling indicates the node pool should autoscale

expires
Kubernetes meta/v1.Time

Expires provides a time for automatic expiration of the cluster

image
string

Image is the image we should use on the instances of this pool

labels
map[string]string

Labels is a collection of label placed on to the nodepool

maxPodsPerNode
int64

MaxPodsPerNode controls how many pods can be scheduled onto each node in this pool

machine
string

Machine is the instance type of the nodes in the poll

providerDetails
NodePoolProviderDetails

ProviderDetails provides any cloud specific options for this nodepool

size
int64

Size is initial size if autoscaling defined - or the effective size if no autoscaling is enabled

spot
SpotInstancesOptions

Spot if defines enables nodepool to use spot instances

taints
[]NodeTaint

Taints defines a collection scheduling taints placed on the nodepool

channel
string

Channel describes the channel a NodePool follows If specified on a cluster, must be identical to the channel on the cluster

version
string

Version is the specified version of kubernetes on the node pool This cannot be set by a client if a channel is also specified Will be set by the NodePoolUpdate controller on actual nodepools if a channel is specified

zones
[]string

Zones defines a list of cloud specific availability zones where the nodes are permitted to run

defaultUpdateOptions
NodePoolUpdateOptions

DefaultUpdateOptions defines how this nodepool can be upgraded - Used by the cluster controller to generate NodePoolUpdates based on spec changes - Ignored when a NodePoolUpdate is created directly

status
NodePoolStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

name
string

Name is the name of the node pool

details
string

Details is message from the provider about the node pool

providerStatus
ProvisioningState

ProvisioningState is provisioning state of the nodePool

nodeCount
int

NodeCount is the number of nodes in the node pool

nodeCountReady
int

NodeCountReady is the number of nodes in the node pool which are ready

NodePoolUpdate

NodePoolUpdate is the schema for cluster nodepool replacement definitions in Wayfinder

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
NodePoolUpdate
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
NodePoolUpdateSpec
UpdateSpec
UpdateSpec

(Members of UpdateSpec are embedded into this type.)

newSpec
NodePoolSpec

NewSpec is the desired spec of the existing (if updated) or new node pool (if replaced)

options
NodePoolUpdateOptions

Options are the options for the update or replacement strategy

nodePoolToUpdate
string

NodePoolToUpdate is the reference to the NodePool metadata.Name to be updated / replaced

targetKubernetesVersion
string

TargetKubernetesVersion is the specific Kubernetes version to use for the new node pool spec - Only valid when a channel is also specified - Normally be an increment of the current, existing NodePool version - Not be greater than the cluster version

status
NodePoolUpdateStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

originalNodePool
OriginalNodePoolStatus

OriginalNodePool is the status of the node pool being updated / replaced

estimatedPercentageComplete
int

EstimatedPercentageComplete is the estimated percentage complete of the node pool update This will vary per provider and update strategy and cluster usage

QuotaLimit

QuotaLimit is the schema for QuotaLimit

FieldDescription
apiVersion
string
compute.appvia.io/v2beta1
kind
string
QuotaLimit
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
QuotaLimitSpec
name
string

TemplateName is the immutable name to track the tempate that was used Would normally specify a QuotaLimit “size” for a tenant

constraints
Constraints

Constraints are for providing management of resource constraints to workloads - Typically only managed by cluster owners to provide hard resource constraints - Used to prevent noisy neigbor issues in a multi-tenanted environment

namespaceClaim
Ownership

NamespaceClaim is the reference for a specific namespace claim that resulted in this object

status
QuotaLimitStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

Status is the status of the QuotaLimit

AKSClusterStatus

(Appears on: ProviderStatus)

AKSClusterStatus is used to hold any thing related to the AKS clusters

FieldDescription
infraResourceGroupName
string

InfraResourceGroupName is the resource group that AKS manages

clusterPrincipalId
string

ClusterPrincipalID is the cluster principal in Azure This is required for assigning permission to the AKS cluster in Azure

AKSNodePoolSpec

(Appears on: NodePoolProviderDetails)

AKSNodePoolSpec represents a node pool within a AKS cluster

FieldDescription
mode
string

Mode is the type of the node pool. System node pools serve the primary purpose of hosting critical system pods such as CoreDNS and tunnelfront. User node pools serve the primary purpose of hosting your application pods.

AKSNodePoolSpotInstances

(Appears on: SpotInstancesOptions)

AKSNodePoolSpotInstances are the options for spot instances in Azure

FieldDescription
maxSpotPrice
string

MaxSpotPrice is the maximum price willing to pay for an spot instance billed in microdollars. The figure is optional and needless to say only relevant when the nodepool is made of spot instances

AKSSpec

(Appears on: ClusterProviderDetails)

AKSSpec defines the desired state of an AKS cluster

FieldDescription
linuxProfile
LinuxProfile

LinuxProfile is the configuration for Linux VMs

skuTier
string

SKUTier is the Uptime SLA that should be used for the AKS cluster. “Free” or “Paid”

windowsProfile
WindowsProfile

WindowsProfile is the configuration for Windows VMs

resourceGroupOverride
string

ResourceGroupOverride will specify a resource group when required

infraResourceGroupOverride
string

InfraResourceGroupOverride will specify a resource group to use for nodes useful when we want to reclaim a cluster

Authentication

Authentication provides options to the authentication module

FieldDescription
disableInline
bool

DisableInline indicates if we disable inline authorization

AuthorizedNetwork

AuthorizedNetwork provides a definition for the authorized networks

FieldDescription
name
string

Name provides a descriptive name for this network

cidr
string

CIDR is the network range associated to this network

AutoScalingOptions

(Appears on: NodePoolSpec, OriginalNodePoolStatus)

AutoScalingOptions define the options per cloud provider for autoscaling

FieldDescription
enabled
bool

Enabled indicates the node pool to use autoscaling

minSize
int64

MinSize is minimum number of nodes if autoscaling is enabled

maxSize
int64

MaxSize is the maximum number of nodes if autoscaling is enabled

CloudWatchLogging

(Appears on: EKSSpec)

CloudWatchLogging defines the control plane logging options

FieldDescription
api
bool

API will enable logging for the Kubernetes API server

audit
bool

Audit will enable logging for the Kubernetes audit

authenticator
bool

Authenticator will enable logging for the Kubernetes authentication

controllerManager
bool

ControllerManager will enable logging for the Kubernetes controller manager

scheduler
bool

Scheduler will enable logging for the Kubernetes scheduler component

ClusterMetric

(Appears on: Metrics)

ClusterMetric defines a metric for a cluster

FieldDescription
name
string

Name is the name of the metric

cpu
string

CPU is the CPU usage

memory
string

Memory is the memory usage

pods
string

Pods is the number of pods

ClusterPlanSpec

(Appears on: ClusterPlan)

ClusterPlanSpec defines the desired state of Plan

FieldDescription
PlanSpec
PlanSpec

(Members of PlanSpec are embedded into this type.)

summary
string

Summary provides a short title summary for the cluster plan It should describe a cluster in terms that are meaningful for developers: e.g. a cluster with very large nodes suitable for memory intensive applications

template
ClusterTemplate

Template are the key+value pairs describing a cluster configuration

ClusterPlanStatus

(Appears on: ClusterPlan)

ClusterPlanStatus defines the observed state of Plan

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

ClusterProviderDetails

(Appears on: ClusterShared)

ClusterProviderDetails defines the parameters for cloud specific options - i.e options which cannot be consolidated as they are too specific to the chosen cloud vendor

FieldDescription
type
ProviderType
aks
AKSSpec

AKS defines the cloud specific options for AKS clusters

eks
EKSSpec

EKS defines a cloud specific options for EKS clusters

gke
GKESpec

GKE is the provider specification for their clusters

unmanaged
UnmanagedSpec

Unmanaged provides the specification for unmanagement cluster

ClusterQuotaLimits

(Appears on: ClusterShared)

ClusterQuotaLimits defines templates for QuotaLimits for a cluster

FieldDescription
templates
[]QuotaLimitTemplate

Templates provide initial defaults for Quotas and Limits for allocated namespaces used when a cluster is allocated to other workspaces to control ResourceQuotas and LimitRanges These values will result in a one time creation of: - a new cluster workspace QuotaLimit object for “constraints” per workspace (with a namespace claim) - a tenant workspace QuotaLimit object for namespace defaults per workspace Required if a cluster is allocated for any tenant workspaces

default
string

Default specifies the default template name to use e.g. “Small” A specific template can be specified with labels on NamespaceClaim objects Required if a cluster is allocated for any tenant workspaces

ClusterShared

(Appears on: ClusterSpec, ClusterTemplate)

ClusterShared provides the fields that exist on both the ClusterPlan and Cluster spec

FieldDescription
channel
string

Channel describes the channel a cluster follows. On create, you must populate either channel or version, but not both.

description
string

Description provides a short summary to the use of the cluster

enableAutoUpgrade
bool

EnableAutoUpgrade indicates wayfinder should handle any upgrades for the clusters

enablePrivateCluster
bool

EnablePrivateCluster indicates the cluster should be made private

expires
Kubernetes meta/v1.Duration

Expires provides the duration (TTL) before automatic expiration of the cluster

maintenance
MaintenanceWindow

Maintenance provides the details around the maintenance window

networking
Networking

Networking provides the details around the cluster networking options

nodePools
[]*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.NodePoolSpec

NodePools is a collection of node pools associated to the cluster

provider
string

Provider refers to the cluster type (e.g. AKS, GKE, EKS)

providerDetails
ClusterProviderDetails

ProviderDetails defines cloud specific cluster options

security
Security

Security contains security settings for the cluster

region
string

Region is the region you want the cluster to reside

quotaLimits
ClusterQuotaLimits

QuotaLimits provide defaults for quotas and limits which are critical for multi-tenancy

version
string

Version is the kubernetes version to use. On create, you must populate either Channel or Version, but not both.

ClusterSpec

(Appears on: Cluster)

ClusterSpec defines the desired state of a cluster

FieldDescription
allocation
ResourceAllocation

Allocation describes which workspaces can use this cluster.

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef is a reference to the cloud access configuration to use when building the cluster

cloudResourceName
string

CloudResourceName specifies the name of the cluster in the cloud Can be left blank so that the name is derived from the wayfinder workspace and resource name

plan
string

Plan refers to the original plan the cluster was created from

stage
string

Stage is the name of the stage for this cluster

secretRef
Kubernetes core/v1.SecretReference

SecretRef is a reference to an existing secret containing an administrative access token for this cluster. Required only for clusters which are not created by Wayfinder.

ClusterShared
ClusterShared

(Members of ClusterShared are embedded into this type.)

ClusterStatus

(Appears on: Cluster)

ClusterStatus defines the observed state of a cluster

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

authProxyEndpoint
string

AuthProxyEndpoint is the endpoint of the authentication proxy for this cluster

authProxyCertificate
string

AuthProxyCertificate is the certificate of the auth proxy endpoint

caCertificate
string

CaCertificate is the base64 encoded cluster certificate

kubeApiEndpoint
string

KubeAPIEndpoint is the kubernetes API endpoint url

networkFabric
NetworkFabricStatus

Network contains the network configuration used by this cluster

providerStatus
ProviderStatus

ProviderStatus is provider specific data with types

version
string

Version is the kubernetes version of the cluster

dnsZones
[]string

DNSZones is a list of Wayfinder-managed DNS zones which are currently available in this cluster with ExternalDNS. This will be populated if the DNSReady condition is true.

expires
Kubernetes meta/v1.Time

Expires is the timestamp after which the cluster should automatically be removed. The populated value should be time at which the cluster is created, plus duration defined in Spec.Expires

deployedChartsImage
string

DeployedChartsImage will be set, once the cluster is in condition HelmReady, to indicate which version of the charts image is deployed and active in this cluster

deployedAuthProxyImage
string

DeployedAuthProxyImage will be set, once the cluster is in condition AuthProxyReady, to indicate which version of the auth proxy image is deployed and active in this cluster

deployedResourceHashes
[]DeployedResourceHash

DeployedResourceHashes is set to a hash of the resources deployed into the cluster so we can re-apply if the resources change but quickly no-op if they have not.

metrics
Metrics

Metrics is a list of metrics for this cluster

ClusterTemplate

(Appears on: ClusterPlanSpec)

FieldDescription
ClusterShared
ClusterShared

(Members of ClusterShared are embedded into this type.)

clusterLabels
map[string]string

ClusterLabels provide a set of labels which will be set on any cluster built from this plan

Constraints

(Appears on: NamespaceClaimStatus, QuotaLimitSpec, QuotaLimitTemplate)

Constraints controlling a namespace by an owner

FieldDescription
hardQuota
ResourceList

QuotaHard are applied as ResourceQuota objects to all namespaces for a tenant of that type There are the maximun resource usage in total for a namespace e.g.: hardQuota: requests.cpu: “1” requests.memory: “1Gi” limit.cpu: “2”

limitRanges
[]LimitRangeConstraint

LimitRanges (in the context of constraints) are applied as LimitRanges (using Max) These are the largest values that can be used by a single resource in a namespace They will prevent workloads from using up all resources on a single node

ContainerRegistryProviderDetails

(Appears on: ContainerRegistrySpec)

ContainerRegistryProviderDetails provides parameters that are specific to a particular type of Container Registry

FieldDescription
type
ContainerRegistryType
unmanaged
UnmanagedContainerRegistryParameters
(Optional)

Unmanaged holds parameters specific to an Unmanaged container registries.

ContainerRegistrySpec

(Appears on: ContainerRegistry, GlobalContainerRegistry)

ContainerRegistrySpec defines the specification of a container registry

FieldDescription
target
ContainerRegistryTarget

Target contains targeting information for this registry

provider
string

Provider defines which provider to use to create this registry

providerDetails
ContainerRegistryProviderDetails

ProviderDetails provides additional fields which can be used for provider specific data needed to provision this registry

ContainerRegistryStatus

(Appears on: ContainerRegistry, GlobalContainerRegistry)

ContainerRegistryStatus defines the status of a container registry

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

RoutingStatus
RoutingStatus

(Members of RoutingStatus are embedded into this type.)

pullSecret
Kubernetes core/v1.SecretReference

PullSecret is a reference to the imagePullSecret

ContainerRegistryTarget

(Appears on: ContainerRegistrySpec)

ContainerRegistryTarget is the targeting specification for this registry

FieldDescription
cluster
Kubernetes meta/v1.LabelSelector

Cluster specifies the cluster(s) this registry should be made available to

namespace
Kubernetes meta/v1.LabelSelector

Namespace specifies the Namespace(s) this registry should be made available to

ContainerRegistryType (string)

(Appears on: ContainerRegistryProviderDetails)

ContainerRegistryType represents the concrete type of a Container Registry to provide

ValueDescription

"Unmanaged"

ContainerRegistryTypeUnmanaged is the type for unmanaged registries

DeployedResourceHash

(Appears on: ClusterStatus)

DeployedResourceHash provides a hash for a deployed resource (e.g. the auth proxy or helm controller) so we can quickly no-op if the hash is unchanged

FieldDescription
name
string

Name is the name of the resource

hash
string

Hash is the computed hash of the resources last applied

EKSClusterStatus

(Appears on: ProviderStatus)

EKSClusterStatus is used to hold any thing related to the EKS clusters

FieldDescription
oidc
string

OIDC is the url for the OIDC endpoint

EKSNodePoolSpec

(Appears on: NodePoolProviderDetails)

EKSNodePoolSpec defines the desired state of EKSCluster

FieldDescription
ami
string

AMI is a custom image we should use for this nodepool

eC2SSHKey
string

EC2SSHKey is the Amazon EC2 SSH key that provides access for SSH communication with the worker nodes in the managed node grouphttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

sshSourceSecurityGroups
[]string

SSHSourceSecurityGroups is the security groups that are allowed SSH access (port 22) to the worker nodes

userData
string

UserData for the launch configuration

EKSNodePoolSpotInstances

(Appears on: SpotInstancesOptions)

EKSNodePoolSpotInstances defined the options for EKS spot instances

FieldDescription
additionalInstanceTypes
[]string

AdditionalInstanceTypes provides an additional list of instances to use when spot instances is enabled

EKSSpec

(Appears on: ClusterProviderDetails)

EKSSpec defines the desired state of EKSCluster

FieldDescription
adminARNs
[]string

AdminARNs is the list of roles or users to be granted access to the EKS K8s API

cloudWatchLogging
CloudWatchLogging

CloudWatchLogging allows all control plane logging to be enabled

enableEndpointPrivate
bool

EnableEndpointPrivate indicates the EKS endpoint should be private and non-public facing

securityGroupIDs
[]string

SecurityGroupIds is a list of security group IDs

GKENodePoolSpec

(Appears on: NodePoolProviderDetails)

GKENodePoolSpec defines a the cloud specific options for a GKE nodepool

FieldDescription
enableAutorepair
bool

EnableAutorepair indicates if the node pool should automatically repair failed nodes

enableAutoupgrade
bool

EnableAutoUpgrade indicates if the node group should be configured with auto-upgrading enabled. This must be true if the cluster has ReleaseChannel set.

GKESpec

(Appears on: ClusterProviderDetails)

GKESpec defines the additional options for a GKE cluster

FieldDescription
enableHorizontalPodAutoscaler
bool

The Horizontal Pod Autoscaler changes the shape of your Kubernetes workload by automatically increasing or decreasing the number of Pods in response to the workload’s CPU or memory consumption, or in response to custom metrics reported from within Kubernetes or external metrics from sources outside of your cluster.

enableHTTPLoadBalancer
bool

EnableHTTPLoadBalancer indicates if the cluster should be configured with the GKE ingress controller. When enabled GKE will autodiscover your ingress resources and provision load balancer on your behalf.

enableShieldedNodes
bool

EnableShieldedNodes indicates we should enable the shielded nodes options in GKE. This protects against a variety of attacks by hardening the underlying GKE node against rootkits and bootkits.

enableStackDriverLogging
bool

EnableStackDriverLogging indicates if Stackdriver logging should be enabled for the cluster

enableStackDriverMetrics
bool

EnableStackDriverMetrics indicates if Stackdriver metrics should be enabled for the cluster

masterIPV4Cidr
string

TODO: always derive this off the network when it exists MasterIPV4Cidr is network range used when private networking is enabled. This is the peering subnet used to to GKE master api layer. Note, this must be unique within the network.

GlobalOrScopedContainerRegistry

GlobalOrScopedContainterRegistry provides a common interface for global or workspace-scoped Container Regigistries

KubernetesUpdateSpec

(Appears on: KubernetesUpdate)

KubernetesUpdateSpec defines an update to the kubernetes version

FieldDescription
UpdateSpec
UpdateSpec

(Members of UpdateSpec are embedded into this type.)

targetKubernetesVersion
string

TargetKubernetesVersion is the specific Kubernetes version to use for the new node pool spec - Normally be an increment of the current, existing Kubernetes version - should satisfy the rules of the Kubernetes versioning scheme as per https://kubernetes.io/docs/setup/release/version-skew-policy/

KubernetesUpdateStatus

(Appears on: KubernetesUpdate)

KubernetesUpdateStatus defines the observed state of an update

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

startTime
Kubernetes meta/v1.Time

StartTime is the time the update was started Is used to estimate the percentage complete time

estimatedPercentageComplete
int

EstimatedPercentageComplete is the estimated percentage complete of the update - Based on the time from StartTime and a test of actual updates

LimitRangeConstraint

(Appears on: Constraints)

LimitRangeConstraint provides constraining Limits to be applied to a managed namespace Managed by tenant

FieldDescription
type
Kubernetes core/v1.LimitType

Type of resource that this limit applies to.

max
ResourceList
(Optional)

Max usage constraints on this kind by resource name.

maxLimitRequestRatio
ResourceList
(Optional)

MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.

LimitRangeDefault

(Appears on: QuotaLimitTemplate)

LimitRangeDefault provides defaults for pod container and volumes Managed by a tenant with understanding of the workloads involved

FieldDescription
type
Kubernetes core/v1.LimitType

Type of resource that this limit applies to.

default
ResourceList
(Optional)

Default resource requirement limit value by resource name if resource limit is omitted.

defaultRequest
ResourceList
(Optional)

DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.

LinuxProfile

(Appears on: AKSSpec)

LinuxProfile is the configuration for Linux VMs

FieldDescription
adminUsername
string

AdminUsername is the admin username for Linux VMs

sshPublicKeys
[]string

SSHPublicKeys is a list of public SSH keys to allow to connect to the Linux VMs

MaintenanceWindow

(Appears on: ClusterShared)

MaintenanceWindow defines the maintenance window

FieldDescription
windowStart
string

WindowStart is the time we can perform updates and upgrades, represented in 24h format e.g. “15:00”

windowDuration
string

Duration is the length of the maintenance window

Metrics

(Appears on: ClusterStatus)

FieldDescription
lastChecked
Kubernetes meta/v1.Time

LastChecked identifies when the metrics of the cluster was last checked.

metrics
[]ClusterMetric

Metrics are the metrics of the cluster

NamespaceClaimSpec

(Appears on: NamespaceClaim)

NamespaceClaimSpec defines the desired state of NamespaceClaim

FieldDescription
cluster
Ownership

Cluster is the cluster the namespace resides

name
string

Name is the name of the namespace to create

annotations
map[string]string

Annotations is a series of annotations on the namespace

labels
map[string]string

Labels is a series of labels for the namespace

resourceDefaults
[]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.LimitRangeDefault

ResourceDefaults provide defaults for workloads (to prevent initial constraint violations) Not set directly or managed by owners (as only maximum values taken so should not conflict)

NamespaceClaimStatus

(Appears on: NamespaceClaim)

NamespaceClaimStatus defines the observed state of NamespaceClaim

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

Status is the status of the namespace

appliedConstraints
Constraints

AppliedConstraints details any applicable constraints applied to this namespace by the cluster owner

packageValues
[]PackageValue

PackageValues are values present in packages that a user may need to construct manifests.

dnsZones
[]string

DNSZones are the zones associated with the namespace

NetworkRange

NetworkRange defines a network block

FieldDescription
type
string

Type defines the type of network

cidr
string

CIDR defines the network range

Networking

(Appears on: ClusterShared)

Networking defines the structure for all the internal network parameters These are not used to create a network, but to configure the cluster

FieldDescription
authorizedNetworks
[]*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.AuthorizedNetwork

AuthorizedNetworks is a collection of authorized networks which is permitted to speak to our authentication proxy

authorizedMasterNetworks
[]*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.AuthorizedNetwork

AuthorizedMasterNetworks is a collection of authorized networks which is permitted to speak to the cloud kubernetes API, default to all if not provided.

networkProvider
string

NetworkProvider defines a network cni provider for the cluster

networkPlan
string

NetworkPlan defines the network plan for the cluster If the network plan is not provided, a networkRef must be provided instead Required on cluster plans

networkRef
Ownership

NetworkRef is reference to a network where the cluster should reside

NodePoolCloudUpdateStrategy (string)

(Appears on: NodePoolUpdateOptions)

NodePoolReplacementStrategy is the CloudSupported NodePoolUpdate update in place strategy Only “CloudDefault” is supported nowhttps://appviakore.atlassian.net/browse/WF-2131 will introduce None (e.g. only replacement)

ValueDescription

"CloudDefault"

NodePoolCloudUpdateStrategyCloudDefault will defer to the cloud provider mechanism for updating

"None"

NodePoolCloudUpdateStrategyNone will disable cloud provider updates Only the replacement strategy options are then used

NodePoolProviderDetails

(Appears on: NodePoolSpec)

NodePoolProviderDetails defines the parameters for cloud specific options - i.e options which cannot be consolidated as they are too specific to the chosen cloud vendor

FieldDescription
type
ProviderType
aks
AKSNodePoolSpec

AKS defines the cloud specific options for AKS clusters

eks
EKSNodePoolSpec

EKS defines a cloud specific options for EKS clusters

gke
GKENodePoolSpec

GKE is the provider specification for their clusters

unmanaged
UnmanagedNodePoolSpec

Unmanaged provides the specification for unmanaged cluster

NodePoolReplacementStrategy (string)

(Appears on: NodePoolUpdateOptions)

NodePoolReplacementStrategy is the update strategy type for a NodePoolUpdate Only “None” is supported nowhttps://appviakore.atlassian.net/browse/WF-2131 will introduce NewReplacement

ValueDescription

"NewReplacement"

NodePoolReplacementStrategyNewReplacement will create a new node pool and migrate workloads to it - will drain and delete the old NodePool nodes, one at a time

"None"

NodePoolReplacementStrategyNone signifies we do not manage replacement NodePools We need to validate fields that are not supported by the cloud provider

NodePoolSpec

(Appears on: NodePool, NodePoolUpdateSpec)

NodePool defines a node pool in kubernetes

FieldDescription
logicalName
string

LogicalName is the internally unique name of the NodePool (not in cloud) - Should always be consistent with a single name entry in a Cluster or NodePoolUpdate - Has to be unique across all nodepools on the Cluster spec - Will NOT always match the name of the NodePool in cloud - Should be treated as an immutable field

cloudResourceName
string

CloudResourceName is the name of the cloud resource - should not be set by the client - set by the NodePool mutate if empty - set by the NodePoolUpdate controller depending on the update type

description
string

Description provides an optional description to the node pool

diskSize
int64

DiskSize is the amount of disk space to assign to the nodes in MBs

autoscaling
AutoScalingOptions

Autoscaling indicates the node pool should autoscale

expires
Kubernetes meta/v1.Time

Expires provides a time for automatic expiration of the cluster

image
string

Image is the image we should use on the instances of this pool

labels
map[string]string

Labels is a collection of label placed on to the nodepool

maxPodsPerNode
int64

MaxPodsPerNode controls how many pods can be scheduled onto each node in this pool

machine
string

Machine is the instance type of the nodes in the poll

providerDetails
NodePoolProviderDetails

ProviderDetails provides any cloud specific options for this nodepool

size
int64

Size is initial size if autoscaling defined - or the effective size if no autoscaling is enabled

spot
SpotInstancesOptions

Spot if defines enables nodepool to use spot instances

taints
[]NodeTaint

Taints defines a collection scheduling taints placed on the nodepool

channel
string

Channel describes the channel a NodePool follows If specified on a cluster, must be identical to the channel on the cluster

version
string

Version is the specified version of kubernetes on the node pool This cannot be set by a client if a channel is also specified Will be set by the NodePoolUpdate controller on actual nodepools if a channel is specified

zones
[]string

Zones defines a list of cloud specific availability zones where the nodes are permitted to run

defaultUpdateOptions
NodePoolUpdateOptions

DefaultUpdateOptions defines how this nodepool can be upgraded - Used by the cluster controller to generate NodePoolUpdates based on spec changes - Ignored when a NodePoolUpdate is created directly

NodePoolStatus

(Appears on: NodePool)

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

name
string

Name is the name of the node pool

details
string

Details is message from the provider about the node pool

providerStatus
ProvisioningState

ProvisioningState is provisioning state of the nodePool

nodeCount
int

NodeCount is the number of nodes in the node pool

nodeCountReady
int

NodeCountReady is the number of nodes in the node pool which are ready

NodePoolUpdateNewReplacementConfig

(Appears on: NodePoolUpdateOptions)

NodePoolUpdateNewReplacementConfig are the options for a replacement strategy Not used yet - see https://appviakore.atlassian.net/browse/WF-2131

FieldDescription
nodeDrainTimeOut
Kubernetes meta/v1.Duration

NodeDrainTimeOut is the delay to wait for a node to drain before force deleting it After this delay and then the node will be force deleted

NodePoolUpdateOptions

(Appears on: NodePoolSpec, NodePoolUpdateSpec)

NodePoolUpdateOptions are all the options for updating or replacing a NodePool

FieldDescription
replacementStrategy
NodePoolReplacementStrategy

ReplacementStrategy is how node pools can get replaced when required

cloudUpdateStrategy
NodePoolCloudUpdateStrategy

CloudUpdateStrategy is how the cloud provider can update the node pool (if at all)

newReplacementConfig
NodePoolUpdateNewReplacementConfig

NewReplacementConfig specifies how to create a new node pool and migrate workloads to it

NodePoolUpdateSpec

(Appears on: NodePoolUpdate)

NodePoolUpdateSpec defines a node pool update or replacement in kubernetes

FieldDescription
UpdateSpec
UpdateSpec

(Members of UpdateSpec are embedded into this type.)

newSpec
NodePoolSpec

NewSpec is the desired spec of the existing (if updated) or new node pool (if replaced)

options
NodePoolUpdateOptions

Options are the options for the update or replacement strategy

nodePoolToUpdate
string

NodePoolToUpdate is the reference to the NodePool metadata.Name to be updated / replaced

targetKubernetesVersion
string

TargetKubernetesVersion is the specific Kubernetes version to use for the new node pool spec - Only valid when a channel is also specified - Normally be an increment of the current, existing NodePool version - Not be greater than the cluster version

NodePoolUpdateStatus

(Appears on: NodePoolUpdate)

NodePoolUpdateStatus defines the observed state of NodePoolUpdate

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

originalNodePool
OriginalNodePoolStatus

OriginalNodePool is the status of the node pool being updated / replaced

estimatedPercentageComplete
int

EstimatedPercentageComplete is the estimated percentage complete of the node pool update This will vary per provider and update strategy and cluster usage

NodeStatus

NodeStatus is the migration status of a node in a node pool

FieldDescription
name
string

Name is the name of the node

drainStartTime
Kubernetes meta/v1.Time

DrainStartTime is the time that the node draining was initiated This is used along with the NodeDrainTimeOut to determine if the node should be force deleted

drained
bool

Drained is true if the node has been successfully drained (ready for deletion)

migrated
bool

Migrated is true if the node has been successfully migrated to the new node pool

kubeletVersion
string

KubeletVersion is the K8s version of the node

machineID
string

MachineID is the K8s version of the node

NodeTaint

(Appears on: NodePoolSpec)

NodeTaint is the structure of a taint on a nodepoolhttps://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

FieldDescription
key
string

Key provides the key definition for this tainer

value
string

Value is arbitrary value for this taint to compare

effect
string

Effect is desired action on the taint

OriginalNodePoolStatus

(Appears on: NodePoolUpdateStatus)

OriginalNodePoolStatus is the status of a node pool being updated / replaced

FieldDescription
nodes
map[string]*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/compute/v2beta1.NodeStatus

Nodes provide the information about the nodes to migrate stored by name

originalAutoScalingOptions
AutoScalingOptions

OriginalAutoScalingOptions are the auto scaling options for the node pool before we started migrating

autoscalingDisabled
bool

AutoscalingDisabled is true if the autoscaling has been disabled

deleted
bool

Deleted indicates if the old node pool has been deleted

cordoned
bool

Cordoned indicates if the NodePool has been cordoned yet

drainStartTime
Kubernetes meta/v1.Time

DrainStartTime is the time the node pool started draining

migratedNodes
int

MigratedNodes is the number of old nodes migrated to the new node pool

migrated
bool

Migrated indicates if the Workloads have been migrated to the new node pool

size
int64

Size is the size of the old NodePool

PackageValue

(Appears on: NamespaceClaimStatus)

PackageValue represents a value in a package release

FieldDescription
name
string

Name is the name of the value field

description
string

Description is an explanation of value’s significance/usage

value
string

Value is a representation of the value

PodSecurityStandard

(Appears on: Security)

PodSecurityStandard defines the Pod Security Standard options

FieldDescription
enabled
bool

Enabled indicates the addons is enabled

defaultProfile
string

DefaultProfile is the default profile to use for the cluster wayfinder managed namespaces

allowed
[]string

AllowedProfiles is a list of profiles that are allowed to be used in the cluster

ProviderStatus

(Appears on: ClusterStatus)

ProviderStatus is a broken down status per provider for the cluster - i.e. outputs from the clusters which are specific to the clouds

FieldDescription
eks
EKSClusterStatus

EKS is the provider status for AWS

aks
AKSClusterStatus

AKS is the provider status for Azure

ProviderType (string)

(Appears on: ClusterProviderDetails, NodePoolProviderDetails)

ProviderType represents the concrete type of account that a CloudAccount represents

ProvisioningState (string)

(Appears on: NodePoolStatus)

ValueDescription

"Provisioning"

ProvisioningStateCreating is the state when the node pool is being created

"Degraded"

ProvisioningStateDegraded is the state when the node pool is degraded

"Deleting"

ProvisioningStateDeleting is the state when the node pool is being deleted

"Failed"

ProvisioningStateFailed is the state when the node pool is failed

"Succeeded"

ProvisioningStateSucceeded is the state when the node pool is created

"Unknown"

ProvisioningStateUnknown is the state when the node pool is unknown

"Updating"

ProvisioningStateUpdating is the state when the node pool is being updated

QuotaLimitSpec

(Appears on: QuotaLimit)

QuotaLimitSpec provide the default ResourceQuota and LimitRange settings. They can be applied to all namespaces for a workspace Optionally they can relate to specific namespaces only

FieldDescription
name
string

TemplateName is the immutable name to track the tempate that was used Would normally specify a QuotaLimit “size” for a tenant

constraints
Constraints

Constraints are for providing management of resource constraints to workloads - Typically only managed by cluster owners to provide hard resource constraints - Used to prevent noisy neigbor issues in a multi-tenanted environment

namespaceClaim
Ownership

NamespaceClaim is the reference for a specific namespace claim that resulted in this object

QuotaLimitStatus

(Appears on: QuotaLimit)

QuotaLimitStatus provides the status of a QuotaLimit object

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

Status is the status of the QuotaLimit

QuotaLimitTemplate

(Appears on: ClusterQuotaLimits)

QuotaLimitTemplate provides template values on clusters and plans

FieldDescription
name
string

TemplateName is the immutable name to track the tempate that was used Would normally specify a QuotaLimit “size” for a tenant

constraints
Constraints

Constraints are for providing management of resource constraints to workloads - Typically only managed by cluster owners to provide hard resource constraints - Used to prevent noisy neigbor issues in a multi-tenanted environment

resourceDefaults
[]LimitRangeDefault

ResourceDefaults provide defaults for workloads (to prevent initial constraint violations) Not set directly or managed by owners (as only maximum values taken so should not conflict)

Security

(Appears on: ClusterShared)

Security defines the security options for a cluster

FieldDescription
podSecurityStandard
PodSecurityStandard

PodSecurityStandard indicates we want to use the pod security standard

SpotInstancesOptions

(Appears on: NodePoolSpec)

SpotInstancesOptions defines the options for spot instances

FieldDescription
enabled
bool

Enabled indicates the node pool should use spots

aks
AKSNodePoolSpotInstances

AKS defines the options for AKS spot instances

eks
EKSNodePoolSpotInstances

EKS provides additional options for EKS

UnmanagedContainerRegistryParameters

(Appears on: ContainerRegistryProviderDetails)

UnmanagedContainerRegistryParameters

UnmanagedNodePoolSpec

(Appears on: NodePoolProviderDetails)

UnmanagedNodePoolSpec defines the spec for an unmanaged nodepool

UnmanagedSpec

(Appears on: ClusterProviderDetails)

UnmanagedSpec defines the spec for unmanaged cluster

WindowsProfile

(Appears on: AKSSpec)

WindowsProfile is the configuration for Windows VMs

FieldDescription
adminPassword
string

AdminPassword is the admin password for Windows VMs

adminUsername
string

AdminUsername is the admin username for Windows VMs

config.appvia.io/v1alpha1

Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group

Resource Types:

CostImport

CostImport represents an import of costs data into Wayfinder

FieldDescription
apiVersion
string
config.appvia.io/v1alpha1
kind
string
CostImport
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CostImportSpec
cloud
string

Cloud defines which cloud this costs import is from

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef identifies which cloud access config (organization or shared) should be used to pull costs data from. Must relate to the same cloud provider as specified in Cloud.

cloudIdentity
CloudIdentityReference

CloudIdentity specifies an optional custom credential to use for this integration, instead of using the default credentials for the CloudAccount.

frequencyMinutes
int

FrequencyMinutes describes how many minutes to leave between imports, e.g. 30 would import twice per hour. If greater than 60, should be a multiple of 60 (other values will be rounded to an integer number of hours, e.g. 90 will round to 120, 89 will round to 60).

daysHistory
int

DaysHistory determines how many days worth of historical data to consider each time this import is run

importZeroCostItems
bool

ImportZeroCostItems determines whether zero-costed line items in the cloud providers’ cost data is imported to wayfinder or not.

providerDetails
CostImportProviderDetails

ProviderDetails provides the cloud-specific configuration details

status
CostImportStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

history
[]CostImportRun

History contains the recent history of runs of this cost import (most recent last)

CostLimit

CostLimit represents a cluster cost limit

FieldDescription
apiVersion
string
config.appvia.io/v1alpha1
kind
string
CostLimit
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CostLimitSpec
limit
int64

Limit defines the max (estimated) cost of a cluster within the given scope in microdollars

scope
CostLimitScope

Scope defines the scope of the limit.

status
CostLimitStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

GlobalCostLimit

GlobalCostLimit represents a CostLimit available in a global scope. A GlobalCostLimit may be allocated to workspaces or select other resources based on their labels

FieldDescription
apiVersion
string
config.appvia.io/v1alpha1
kind
string
GlobalCostLimit
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
CostLimitSpec
limit
int64

Limit defines the max (estimated) cost of a cluster within the given scope in microdollars

scope
CostLimitScope

Scope defines the scope of the limit.

status
CostLimitStatus
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

AWSCostImportParameters

(Appears on: CostImportProviderDetails)

AWSCostImportParameters provides the specific parameters for AWS

FieldDescription
s3Region
string

S3Region is the region in which to store cost and usage data in S3. Will use the default region from the cloud account if this is unspecified.

costUsageBucket
string

CostUsageBucket is the name of an S3 bucket in which Wayfinder can find existing cost and usage reports to read. Leave blank to have Wayfinder self-configure with a new bucket as needed.

costUsageS3Prefix
string

CostUsageS3Prefix is the location within the CostUsageBucket where Wayfinder will find the cost reports. Will be ignored unless CostUsageBucket is specified.

costUsageReport
string

CostUsageReport is the name of the cost usage report to use.

AzureCostImportParameters

(Appears on: CostImportProviderDetails)

AzureCostImportParameters provides the specific parameters for Azure

FieldDescription
importType
AzureCostImportType

ImportType dictates what scope we’re going to import Azure costs for.

This must match the type of Cloud Account referenced by this costs import:

For BillingAccount the Cloud Account must be an Azure organization with AgreementType of EA or MCA and the BillingAccount populated.

For EAEnrollmentAccount the Cloud Account must be an Azure organization with AgreementType of EA and the EnrollmentAccount populated.

For MCAInvoiceSection the Cloud Account must be an Azure organization with AgreementType of MCA and the BillingAccount, BillingProfile and InvoiceSection populated.

AzureCostImportType (string)

(Appears on: AzureCostImportParameters)

AzureCostImportType is the scope level to import Azure costs for

ValueDescription

"BillingAccount"

AzureCostImportBillingAccount is to import costs for a full billing account

"EAEnrollmentAccount"

AzureCostImportEAEnrollmentAccount is to import costs for an Enterprise Agreement Enrollment Account

"MCAInvoiceSection"

AzureCostImportMCAInvoiceSection is to import costs for an MCA invoice section

"Subscription"

AzureCostImportSubscription is to import costs for a single subscription

CostImportProvider (string)

(Appears on: CostImportProviderDetails)

CostImportProvider is which cloud provider these provider details are for

ValueDescription

"AWS"

"Azure"

"GCP"

CostImportProviderDetails

(Appears on: CostImportSpec)

CostImportProviderDetails provides parameters that are specific to a particular cloud

FieldDescription
type
CostImportProvider

Type is which cloud provider these provider details are for

gcp
GCPCostImportParameters
(Optional)

GCP holds parameters specific to importing GCP costs data. Present only if type is GCP.

aws
AWSCostImportParameters
(Optional)

AWS holds parameters specific to importing AWS costs data. Present only if type is AWS.

azure
AzureCostImportParameters
(Optional)

Azure holds parameters specific to importing Azure costs data. Present only if type is Azure.

CostImportRun

(Appears on: CostImportStatus)

CostImportRun represents the result of an execution of a cost import

FieldDescription
status
Status

Status indicates whether this import completed successfully (Success), is running (Pending) or failed (Failure)

time
Kubernetes meta/v1.Time

Time indicates when this import was executed - may be nil if the import has been scheduled but not yet started

rowCount
int

RowCount indicates how many rows of cost data were imported, if any.

log
string

Log contains the log (in JSON) of this import

CostImportSpec

(Appears on: CostImport)

CostImportSpec defines the specification of the cost import

FieldDescription
cloud
string

Cloud defines which cloud this costs import is from

cloudAccessConfigRef
CloudAccessConfigReference

CloudAccessConfigRef identifies which cloud access config (organization or shared) should be used to pull costs data from. Must relate to the same cloud provider as specified in Cloud.

cloudIdentity
CloudIdentityReference

CloudIdentity specifies an optional custom credential to use for this integration, instead of using the default credentials for the CloudAccount.

frequencyMinutes
int

FrequencyMinutes describes how many minutes to leave between imports, e.g. 30 would import twice per hour. If greater than 60, should be a multiple of 60 (other values will be rounded to an integer number of hours, e.g. 90 will round to 120, 89 will round to 60).

daysHistory
int

DaysHistory determines how many days worth of historical data to consider each time this import is run

importZeroCostItems
bool

ImportZeroCostItems determines whether zero-costed line items in the cloud providers’ cost data is imported to wayfinder or not.

providerDetails
CostImportProviderDetails

ProviderDetails provides the cloud-specific configuration details

CostImportStatus

(Appears on: CostImport)

CostImportStatus defines the status of this costs integration

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

history
[]CostImportRun

History contains the recent history of runs of this cost import (most recent last)

CostLimitScope

(Appears on: CostLimitSpec)

CostLimitScope defines which clusters and stages the cost limit should apply to

FieldDescription
allocation
ResourceAllocation

Allocation defines which workspace(s) this limit applies to

selector
Kubernetes meta/v1.LabelSelector

Selector is the stage(s) the limit is scoped to

CostLimitSpec

(Appears on: CostLimit, GlobalCostLimit)

CostLimitSpec defines the spec of a limit to be provisioned

FieldDescription
limit
int64

Limit defines the max (estimated) cost of a cluster within the given scope in microdollars

scope
CostLimitScope

Scope defines the scope of the limit.

CostLimitStatus

(Appears on: CostLimit, GlobalCostLimit)

CostLimitStatus defines the status of the CostLimit

FieldDescription
CommonStatus
CommonStatus

(Members of CommonStatus are embedded into this type.)

GCPCostImportParameters

(Appears on: CostImportProviderDetails)

GCPCostImportParameters provides the specific parameters for GCP

FieldDescription
billingAccount
string

BillingAccountName is the billing account we’re importing costs for. If unspecified, Wayfinder will use the Billing Account specified on the cloud account (if it’s of type Organization).

If neither of these are specified, this configuration will not be valid.

Example: ‘012345-567890-ABCDEF’

datasetProject
string

DatasetProject is the GCP project in which to find/create the BigQuery dataset. If unspecified Wayfinder will use the project from the referenced cloud account.

datasetRegion
string

DatasetRegion is the GCP region (or regional area) in which the BigQuery dataset should be created / accessed. If unspecified, Wayfinder will use the default region from the referenced cloud account.

Examples: * EU (geo-dispersed across multiple EU GCP regions) * US (geo-dispersed across multiple US GCP regions) * europe-west2 (London)

datasetName
string

DatasetName is an optional custom name of the BigQuery dataset to query to retrieve costs data. If unspecified, Wayfinder will assume a dataset named wf-costs.

GlobalOrScopedCostLimit

GlobalOrScopedCostLimit provides a common interface for global or scoped limits

core.appvia.io/v1alpha1

Package v1 contains the core api resources

Resource Types:

    ActionSelector

    ActionSelector is used to filter on the operation type

    FieldDescription
    verbs
    []string

    Allocatable

    Allocatable must be implemented by CRDs which are allocateable

    CloudAccessConfigValuesFrom

    (Appears on: ValuesFrom)

    CloudAccessConfigValuesFrom is used to reference a values from an associated cloud access config

    FieldDescription
    Value
    Value

    (Members of Value are embedded into this type.)

    ClusterCapability

    FieldDescription
    name
    string

    Name is the name of the capability

    status
    CommonStatus
    status
    Status

    Status is the overall status of the resource. This will shortly become required, hence no omit empty here.

    message
    string

    Message is a description of the current status

    detail
    string
    (Optional)

    Detail is any additional human-readable detail to understand the current status, for example, the full underlying error which caused an issue

    conditions
    Conditions

    Conditions represents the observations of the resource’s current state.

    lastReconcile
    LastReconcileStatus

    LastReconcile describes the generation and time of the last reconciliation

    lastSuccess
    LastReconcileStatus

    LastSuccess descibes the generation and time of the last reconciliation which resulted in a Success status

    cloudResourcesCreated
    bool

    CloudResourcesCreated indicates that at some point, this resource has successfully created one or more cloud resources. This is used when deleting to decide whether to fail or ignore if a related cloud access config is inaccessible.

    obsoleteResources
    ObsoleteResourceList

    ObsoleteResources contains a list of resources that are marked for deletion

    wayfinderVersion
    string

    WayfinderVersion is the version of Wayfinder that last reconciled this resource

    spec
    ClusterCapabilitySpec
    description
    string

    Description is the description of the capability

    enabled
    bool

    Enabled states if capability is enabled

    readOnly
    bool

    ReadOnly states if the capability can/cannot be enabled

    -
    string

    EnableLabel is internal struct to store the label with which addon should be enabled. Not marshaled in API responses

    ClusterCapabilitySpec

    (Appears on: ClusterCapability)

    ClusterCapabilitySpec defines the state of the capability on the cluster

    FieldDescription
    description
    string

    Description is the description of the capability

    enabled
    bool

    Enabled states if capability is enabled

    readOnly
    bool

    ReadOnly states if the capability can/cannot be enabled

    -
    string

    EnableLabel is internal struct to store the label with which addon should be enabled. Not marshaled in API responses

    ClusterPackage

    FieldDescription
    name
    string

    Name is the name of the package version

    status
    CommonStatus
    status
    Status

    Status is the overall status of the resource. This will shortly become required, hence no omit empty here.

    message
    string

    Message is a description of the current status

    detail
    string
    (Optional)

    Detail is any additional human-readable detail to understand the current status, for example, the full underlying error which caused an issue

    conditions
    Conditions

    Conditions represents the observations of the resource’s current state.

    lastReconcile
    LastReconcileStatus

    LastReconcile describes the generation and time of the last reconciliation

    lastSuccess
    LastReconcileStatus

    LastSuccess descibes the generation and time of the last reconciliation which resulted in a Success status

    cloudResourcesCreated
    bool

    CloudResourcesCreated indicates that at some point, this resource has successfully created one or more cloud resources. This is used when deleting to decide whether to fail or ignore if a related cloud access config is inaccessible.

    obsoleteResources
    ObsoleteResourceList

    ObsoleteResources contains a list of resources that are marked for deletion

    wayfinderVersion
    string

    WayfinderVersion is the version of Wayfinder that last reconciled this resource

    spec
    ClusterPackageSpec
    packageName
    string

    PackageName is the name of the package the version satisfies

    description
    string

    Description is the description of the package

    version
    string

    Version is the semantic version of the package version

    chartVersion
    string

    ChartVersion is the version of the underlying helm chart

    ClusterPackageCapability

    FieldDescription
    exposed
    bool

    Exposed defines whether the package is exposed as a capability

    enabled
    bool

    Enabled states if capability is enabled on the cluster

    readOnly
    bool

    ReadOnly states if the capability can/cannot be enabled

    ClusterPackageSpec

    (Appears on: ClusterPackage)

    FieldDescription
    packageName
    string

    PackageName is the name of the package the version satisfies

    description
    string

    Description is the description of the package

    version
    string

    Version is the semantic version of the package version

    chartVersion
    string

    ChartVersion is the version of the underlying helm chart

    ClusterValuesFrom

    (Appears on: ValuesFrom)

    ClusterValuesFrom is used to reference a values from an associated cluster

    FieldDescription
    Value
    Value

    (Members of Value are embedded into this type.)

    CommonStatus

    (Appears on: CloudOrgStatus, ManagedCloudAccountStatus, AppEnvStatus, ApplicationStatus, CloudAccessConfigStatus, CloudIdentityStatus, WorkloadIdentityStatus, CloudResourcePlanStatus, ClusterPlanStatus, ClusterStatus, ContainerRegistryStatus, KubernetesUpdateStatus, NamespaceClaimStatus, NodePoolStatus, NodePoolUpdateStatus, QuotaLimitStatus, CostImportStatus, CostLimitStatus, ClusterCapability, ClusterPackage, DNSZoneStatus, AssignableNetworkStatus, NetworkFabricPlanStatus, NetworkFabricStatus, PeeringRuleStatus, PeeringStatus, AccessTokenStatus, ChannelStatus, DefaultWorkspaceGroupStatus, StageStatus, UserStatus, WayfinderGroupStatus, WayfinderRoleBindingStatus, WayfinderRoleStatus, WorkspaceGroupStatus, WorkspaceInvitationStatus, WorkspaceRoleBindingStatus, WorkspaceStatus, PackageReleaseStatus, PackageStatus, PackageUpdateStatus, RepositoryReleaseStatus, RepositoryStatus, AccessPolicyStatus, AccessRoleBindingStatus, AccessRoleStatus, ClusterPolicyStatus, GlobalAccessPolicyStatus, GlobalAccessRoleStatus)

    FieldDescription
    status
    Status

    Status is the overall status of the resource. This will shortly become required, hence no omit empty here.

    message
    string

    Message is a description of the current status

    detail
    string
    (Optional)

    Detail is any additional human-readable detail to understand the current status, for example, the full underlying error which caused an issue

    conditions
    Conditions

    Conditions represents the observations of the resource’s current state.

    lastReconcile
    LastReconcileStatus

    LastReconcile describes the generation and time of the last reconciliation

    lastSuccess
    LastReconcileStatus

    LastSuccess descibes the generation and time of the last reconciliation which resulted in a Success status

    cloudResourcesCreated
    bool

    CloudResourcesCreated indicates that at some point, this resource has successfully created one or more cloud resources. This is used when deleting to decide whether to fail or ignore if a related cloud access config is inaccessible.

    obsoleteResources
    ObsoleteResourceList

    ObsoleteResources contains a list of resources that are marked for deletion

    wayfinderVersion
    string

    WayfinderVersion is the version of Wayfinder that last reconciled this resource

    CommonStatusAware

    CommonStatusAware is implemented by any Wayfinder resource which has the standard Wayfinder common status implementation

    Component

    Component the state of a component of the resource

    FieldDescription
    name
    string

    Name is the name of the component

    status
    Status

    Status is the status of the component

    message
    string

    Message is a human readable message on the status of the component

    detail
    string

    Detail is additional details on the error is any

    resource
    Ownership

    Resource is a reference to the resource

    Components ([]*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/core/v1alpha1.Component)

    Components is a collection child components for a resource

    Condition

    Condition is the current observed condition of some aspect of a resource

    FieldDescription
    type
    ConditionType

    Type of condition in CamelCase or in foo.example.com/CamelCase.

    Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)

    status
    Kubernetes meta/v1.ConditionStatus

    Status of the condition, one of True, False, Unknown.

    observedGeneration
    int64
    (Optional)

    ObservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

    lastTransitionTime
    Kubernetes meta/v1.Time

    LastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

    reason
    string

    Reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

    message
    string
    (Optional)

    Message is a human readable message indicating details about the transition. This may be an empty string.

    name
    string

    Name is a human-readable name for this condition.

    detail
    string
    (Optional)

    Detail is any additional human-readable detail to understand this condition, for example, the full underlying error which caused an issue

    negativePolarity
    bool
    (Optional)

    NegativePolarity indicates this is a ‘normal-false’ condition - i.e. the ‘normal’/‘successful’ status for this condition is metav1.ConditionFalse. This will be the case for conditions such as ‘OutOfMemory’.

    If unset/false, positive polarity can be assumed - i.e. that metav1.ConditionTrue indicates the ‘normal’/‘successful’ status. This will be the case for conditions such as ‘Deployed’

    ConditionSpec

    ConditionSpec describes the shape of a condition which will be populated onto the status

    FieldDescription
    Type
    ConditionType

    The PascalCase condition type, e.g. ServiceAvailable or InsufficientCapacity. See ConditionType for the rules on condition types.

    Name
    string

    Name is a human-readable name for this condition, used for UI and CLI reporting / explanation If Name is empty, the Type will be used also as the Name.

    DefaultStatus
    Kubernetes meta/v1.ConditionStatus

    DefaultStatus is the default status - if unset, metav1.ConditionUnknown will be used.

    NegativePolarity
    bool

    NegativePolarity indicates this is a ‘normal-false’ condition - i.e. the ‘normal’/‘successful’ status for this condition is metav1.ConditionFalse. This will be the case for conditions such as ‘OutOfMemory’, ‘Degraded’.

    If unset/false, positive polarity will be assumed - i.e. that metav1.ConditionTrue indicates the ‘normal’/‘successful’ status. This will be the case for conditions such as ‘Deployed’ or ‘Available’.

    ConditionType (string)

    (Appears on: Condition, ConditionSpec)

    ConditionType defines a type of a condition in PascalCase or in foo.example.com/PascalCase

    Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)

    ValueDescription

    "Ready"

    ConditionReady describes the overall status of the resource. All Wayfinder resources should set ConditionReady

    "Paused"

    Conditions ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/core/v1alpha1.Condition)

    (Appears on: CommonStatus)

    ConfigurationFromSource

    FieldDescription
    path
    string

    Path is the JSON path of the configuration parameter Examples: “field”, “map_field.value”, “array_field.0”, “array_field.0.value” To append a value to an existing array: “array_field.-1” To reference a numeric key on a map: “map_field.:123.value”

    secretKeyRef
    OptionalSecretKeySelector

    SecretKeyRef is a reference to a key in a secret

    DomainValuesFrom

    (Appears on: ValuesFrom)

    DomainValuesFrom is used to reference the default domain attached to the cluster We support zones with direct mode only. createChildZone will create child zone with same selector with direct mode.

    FieldDescription
    Value
    Value

    (Members of Value are embedded into this type.)

    optional
    bool

    Optional is a flag to indicate if the value is required.

    limit
    int64

    Limit is a flag to indicate if the value is limited to specific number of values

    asArray
    bool

    AsArray places the matching values(s) from the domains into the value as an array. If false, multiple values will be comma-concatenated into a string.

    matchLabels
    Kubernetes meta/v1.LabelSelector

    MatchLabels is used to find one or more specific domain resources for inject - be careful unless intended not to match multiple as we will inject the zone names as an array

    LastReconcileStatus

    (Appears on: CommonStatus, RoutingTargetStatus)

    FieldDescription
    time
    Kubernetes meta/v1.Time

    Time is the last time the resource was reconciled

    generation
    int64

    Generation is the generation reconciled on the last reconciliation

    Object

    Object is the standard interface implemented by Wayfinder CRDs

    ObsoleteResource

    ObsoleteResource is a resource that is marked for deletion

    FieldDescription
    kind
    obsoleteResourceKind

    Kind is the kind of the resource, eg. IAMRole

    name
    string

    Name is the name of the resource, eg. my-iam-role

    OptionalSecretKeySelector

    (Appears on: ConfigurationFromSource)

    FieldDescription
    SecretKeySelector
    SecretKeySelector

    (Members of SecretKeySelector are embedded into this type.)

    optional
    bool

    Optional controls whether the secret with the given key must exist

    Ownership

    (Appears on: AppEnvSpec, WorkloadIdentitySpec, ResourceValuesFrom, NamespaceClaimSpec, Networking, QuotaLimitSpec, Component, ResourceValuesFrom, RoutingTargetStatus, UpdateStep, UpdateStepStatus, DNSZoneSpec, FirewallSpec, PeeringSpec, PackageReleaseSpec, RepositoryReleaseSpec, RepositorySpec, AccessRoleBindingSpec, SecurityResourceOverview, SecurityScanResultSpec)

    Ownership indicates the ownership of a resource

    FieldDescription
    group
    string

    Group is the api group

    version
    string

    Version is the group version

    kind
    string

    Kind is the name of the resource under the group

    namespace
    string

    Namespace is the location of the object

    name
    string

    Name is name of the resource

    PlanObject

    PlanObject is the interface that all plan compatible objects must implement

    PlanPolicy

    PlanPolicy defines possible entries for a spec

    FieldDescription
    editable
    bool

    Editable indicates the entry can or cannot be changed

    enum
    []string

    Enum is a collection of possible values

    max
    int64

    Max is a max to the value

    min
    int64

    Min is a minimum to the value

    path
    string

    Path is the a json path to the value

    pattern
    string

    Pattern is used as regex constraint on the input

    summary
    string

    Summary provides an optional description to the field attribute

    PlanSpec

    (Appears on: CloudResourcePlanSpec, ClusterPlanSpec, NetworkFabricPlanSpec)

    PlanSpec defines the desired state of Plan

    FieldDescription
    allocation
    ResourceAllocation

    Allocation defines one or more workspaces which are permitted to access this plan

    labels
    map[string]string

    Labels is a collection of labels for this plan

    policies
    []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/core/v1alpha1.PlanPolicy

    Policies are a collection of policies related to the use of the plan

    ResourceAllocation

    (Appears on: CloudOrgSpec, ClusterSpec, CostLimitScope, PlanSpec, DNSZoneSpec, PeeringRuleFilters)

    ResourceAllocation describes who is allowed to use a resource across workspace boundaries.

    FieldDescription
    type
    ResourceAllocationType

    Type controls which workspaces can use this resource . If ‘none’, this resource cannot be used by workspaces other than the one the resource exists in. ‘all’ allows it to be used by all workspaces, and ‘workspaces’ indicates it can be used by the workspaces listed in the workspaces property.

    workspaces
    WorkspaceKeys

    Workspaces indicates which workspaces can use this resource. Ignored unless type is set to ‘workspaces’.

    ResourceAllocationType (string)

    (Appears on: ResourceAllocation)

    ResourceAllocationType represents the possible types of resource allocation

    ValueDescription

    "all"

    ResourceAllocationAll indicates that the resource can be used by all workspaces

    "none"

    ResourceAllocationNone indicates that the resource can only be used by the workspace that owns it

    "workspaces"

    ResourceAllocationWorkspaces indicates that the resource can be used by a specified set of workspaces

    ResourceSelector

    ResourceSelector is a resource selector

    FieldDescription
    nonResourceURLs
    []string

    NonResourceURLs are urls which do not map to resources by require some level of policy control

    groups
    []string

    Groups is a collection of api grouprs to filter on

    resources
    []string

    Resources is a collection of resources under those groups

    subresources
    []string

    SubResources is a collection of subresource under the resource type Deprecated field please use resource/subresource format

    resourceNames
    []string

    ResourceNames is a collection of resource names

    labels
    map[string]string

    Labels a collection of labels to filter the resource by

    verbs
    []string

    Verbs are actions on the resources themselves

    ResourceValuesFrom

    (Appears on: ValuesFrom)

    ResourceValuesFrom is used to define a reference to a resource

    FieldDescription
    Ownership
    Ownership

    (Members of Ownership are embedded into this type.)

    Value
    Value

    (Members of Value are embedded into this type.)

    RoutingStatus

    (Appears on: ContainerRegistryStatus, PackageStatus, ClusterPolicyStatus)

    FieldDescription
    routing
    RoutingTargetStatuses

    RoutingTargetStatuses is that

    RoutingStatusAware

    RoutingStatusAware is implemented by any Wayfinder resource which has the standard Wayfinder routuing status implementation

    RoutingTargetStatus

    RoutingTargetStatus is the current observed status of a routing action to a target

    FieldDescription
    target
    Ownership
    status
    Status
    error
    string
    (Optional)
    lastReconcile
    LastReconcileStatus

    LastReconcile describes the generation and time of the last reconciliation

    RoutingTargetStatuses ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/core/v1alpha1.RoutingTargetStatus)

    (Appears on: RoutingStatus)

    SecretKeySelector

    (Appears on: OptionalSecretKeySelector)

    FieldDescription
    name
    string

    Name is the name of the secret

    namespace
    string

    Name is the namespace of the secret

    key
    string

    Key is they data key in the secret

    SecretValuesFrom

    (Appears on: ValuesFrom)

    SecretValuesFrom is used to define a reference to a secret

    FieldDescription
    SecretReference
    Kubernetes core/v1.SecretReference

    (Members of SecretReference are embedded into this type.)

    Value
    Value

    (Members of Value are embedded into this type.)

    Status (string)

    (Appears on: CostImportRun, CommonStatus, Component, RoutingTargetStatus, UpdateStepStatus)

    Status is the status of a thing

    ValueDescription

    "ActionRequired"

    ActionRequiredStatus indicates that user action is required to remediate the current state of a resource, e.g. a spec value is wrong or some external action needs to be taken

    "Creating"

    CreatingStatus indicate we are creating a resource

    "DeleteError"

    DeleteErrorStatus indicates an error has occurred while attempting to delete the resource

    "DeleteFailed"

    DeleteFailedStatus indicates that deleting the entity failed

    "Deleted"

    DeletedStatus indicates a deleted entity

    "Deleting"

    DeletingStatus indicates we are deleting the resource

    ""

    EmptyStatus indicates an empty status

    "Error"

    ErrorStatus indicates that a recoverable error happened

    "Failure"

    FailureStatus indicates the resource has failed for one or more reasons

    "Pending"

    PendingStatus indicate we are waiting

    "ReconciliationPaused"

    ReconciliationStartedStatus indicates that the reconciliation is paused

    "Success"

    SuccessStatus is a successful resource

    "Unknown"

    Unknown is an unknown status

    "Updating"

    UpdatingStatus indicate we are creating a resource

    "Warning"

    WarningStatus indicates are warning

    SubjectSelector

    SubjectSelector is used to filter down in the caller

    FieldDescription
    subjects
    []string

    Subjects is a collection of subjects / username to filter on

    roles
    []string

    Roles is a collection of roles the user has access to

    groups
    []string

    Groups is a collection of groups the user is a member of

    scopes
    []string

    Scopes is a collection of scopes for the identity

    UpdateObject

    UpdateObject is the interface that all update compatible objects must implement

    UpdateSpec

    (Appears on: KubernetesUpdateSpec, NodePoolUpdateSpec, PackageUpdateSpec)

    UpdateSpec are the fields required by an update compatible object on the spec

    FieldDescription
    preRequisite
    UpdateStep

    PreRequisite is any steps that can block this update

    awaitingApproval
    bool

    AwaitingApproval specifies that the step is blocked until the user confirms No more reconciliation will be attempted until this is set to false

    nextSteps
    UpdateStep

    Next is the single next steps after this update Not required if there are no further steps Provided as a convenience to allow for a UI to show the next step - E.g. a final manual intervention step could indicate what will happen when the user confirms

    UpdateStatus

    UpdateStatus are the status fields required by an update compatible object

    FieldDescription
    preRequisite
    UpdateStepStatus

    PreRequisites are the current status of the pre-requisites

    startTime
    Kubernetes meta/v1.Time

    StartTime is the time the update was started Is used to estimate the percentage complete time

    estimatedPercentageComplete
    int

    EstimatedPercentageComplete is the estimated percentage complete of the update - Based on the time from StartTime and a test of actual updates - not optional, will be 0 if not started

    UpdateStep

    (Appears on: UpdateSpec)

    UpdateStep is the specification of a step in an update plan or a pre-requisite

    FieldDescription
    owner
    Ownership

    Owner is the object (when relevant) that the step is related to

    UpdateStepStatus

    (Appears on: UpdateStatus)

    UpdateStepStatus is the current observed status of an update step this is for pre-requisites and next steps

    FieldDescription
    owner
    Ownership

    Owner is the object (when relevant) that the step is related to

    status
    Status

    Status is the current status of the step

    error
    string

    Error is the error message if the step failed

    UpdateSteps ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/core/v1alpha1.UpdateStep)

    UpdateSteps is a list of update steps envisaged to be present on a rollout plan

    Value

    (Appears on: CloudAccessConfigValuesFrom, ClusterValuesFrom, DomainValuesFrom, ResourceValuesFrom, SecretValuesFrom)

    Value is a default value parameter

    FieldDescription
    path
    string

    Path is the path into the helm values

    specPath
    bool

    SpecPath is the path into the release spec.

    key
    string

    Key is a path into the resource data

    valuePrefix
    string

    ValuePrefix is a prefix which will be prepended to the value patched into the helm values. 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 helm values. If specified, this means the value from the key will be coerced to a string

    ValuesFrom

    (Appears on: PackageSpec)

    ValuesFrom defines a means to extract a value out of a resource and into the values for an arbitrary destination, such as a helm chart or cloud resource plan

    FieldDescription
    cluster
    ClusterValuesFrom

    Cluster is used to extract a piece of data out of the associated cluster resources and inject into the path defined

    cloudAccessConfig
    CloudAccessConfigValuesFrom

    CloudAccessConfig is used to extract a piece of data out of the cloud access config associated with the cluster and inject into the path defined

    resource
    ResourceValuesFrom

    Resource is used to filter on and extract the details from one of more managed resources in Wayfinder.

    secret
    SecretValuesFrom

    Secret is used to reference a secret in wayfinder

    domain
    DomainValuesFrom

    Domain is used to reference a domains in wayfinder

    WorkspaceKey (string)

    (Appears on: GetRolesIAMRequest, WorkspaceCostSummary, AuditEventSpec, Subject, WorkspaceInvitationSpec, WorkspaceSpec, Subject, SecurityOverviewSpec)

    WorkspaceKey is the unique identifier for a workspace in Wayfinder. Use .Namespace() to convert to the right name for the workspace’s namespace in the management cluster.

    ValueDescription

    "admin"

    AdminWorkspace is the workspace where platform administrative resources live **IMPORTANT: IF THIS VALUE IS CHANGED, ENSURE THAT ui/lib/utils/workspaces.ts IS ALSO UPDATED

    WorkspaceKeys ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/core/v1alpha1.WorkspaceKey)

    (Appears on: ResourceAllocation)

    WorkspaceKeys is a set of workspace keys

    costs.appvia.io/v1alpha1

    Package v1alpha1 contains API Schema definitions for the cost v1alpha1 API group

    Resource Types:

      Account

      Account represents an account

      FieldDescription
      workspaceIdentifier
      string

      WorkspaceIdentifier is the unique identifier for the workspace that owns this asset

      assetIdentifier
      string

      AssetIdentifier is the unique identifier for this asset

      name
      string

      Name is the name of the resource in wayfinder, for reference

      provider
      string

      Provider is the cloud provider who provides this resource

      account
      string

      Provider is the identifier for this account in the providers

      Asset

      Asset represents a resource known to Wayfinder which a cost provider should provide costs data for

      FieldDescription
      tags
      map[string]string

      Tags are a set of tags which can be used to identify this asset

      workspaceIdentifier
      string

      WorkspaceIdentifier is the unique identifier for the workspace that owns this asset

      assetIdentifier
      string

      AssetIdentifier is the unique identifier for this asset

      name
      string

      Name is the name of the resource in wayfinder, for reference

      provider
      string

      Provider is the cloud provider who provides this resource

      AssetCost

      AssetCost defines the details about a cost related to a piece of infrastructure deployed by Wayfinder for a workspace. It is expected that any asset may have multiple AssetCosts covering a specific time period to represent the different charges levied by the provider for that piece of infrastructure.

      FieldDescription
      costIdentifier
      string

      CostIdentifier is the unique identifer for this line of cost data - cost providers must ensure that if a cost line item is updated, it has the same identifier, and that different line items have unique cost identifiers for a given AssetIdentifier. If a cost provider provides immutable cost entries, i.e. they will never be updated, then this can be left blank and Wayfinder will assign a unique identifier.

      assetIdentifier
      string

      AssetIdentifier is the unique identifier assigned to the resource this cost applies to, e.g. the unique cluster ID, etc.

      workspaceIdentifier
      string

      WorkspaceIdentifier is the unique identifier for the workspace this resource belongs to.

      cost
      int64

      Cost is the actual incurred cost total cost for this piece of infrastructure for the specified time period in microdollars

      usageStartTime
      Kubernetes meta/v1.Time

      UsageStartTime indicates the start of the period this cost is applicable for

      usageEndTime
      Kubernetes meta/v1.Time

      UsageEndTime indicates the end of the period this cost is applicable for

      usageType
      string

      UsageType is the provider-specific code or title for this type of usage (e.g. a SKU or similar)

      description
      string

      Description identifies the type of cost this line item refers to

      usageAmount
      string

      UsageAmount is the quantity of the resource used (e.g. amount of storage)

      usageUnit
      string

      UsageUnit is the unit that UsageAmount is expressed in (e.g. seconds, gibibytes, etc)

      provider
      string

      Provider indicates which cloud provider this cost relates to

      account
      string

      Account indicates which account / project / subscription this cost relates to

      invoice
      string

      Invoice is the invoice on which this cost was billed (in the format YYYYMM, e.g. 202008 for August 2020)

      retrievedAt
      Kubernetes meta/v1.Time

      RetrievedAt is the time at which this cost item was retrieved/refreshed from the provider

      AssetCostSummary

      AssetCostSummary represents the total cost known to wayfinder for an asset (over a period of time)

      FieldDescription
      assetIdentifier
      string

      AssetIdentifier is the unique identifier assigned to the resource this cost applies to, e.g. the unique cluster ID, etc.

      workspaceIdentifier
      string

      WorkspaceIdentifier is the unique identifier for the workspaice this resource belongs to.

      assetName
      string

      AssetName is the name of the asset these costs relate to

      assetType
      string

      AssetType is the type of the asset these costs relate to

      provider
      string

      Provider is the cloud provider who provides this assset

      details
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/costs/v1alpha1.AssetCost

      Details provides the individual cost line items that make up this summary

      CostSummary
      CostSummary

      Continent

      Continent is a geographical grouping of regions

      FieldDescription
      name
      string
      regions
      []Region

      CostEstimate

      CostEstimate defines the result of the cost estimation

      FieldDescription
      minCost
      int64

      MinCost is the minimum hourly cost estimate in microdollars

      typicalCost
      int64

      TypicalCost is the expected / likely hourly cost estimate in microdollars

      maxCost
      int64

      MaxCost is the estimated upper limit of the hourly cost in microdollars

      costElements
      []CostEstimateElement

      CostElements provides details of the different components which make up this cost estimate

      preparedAt
      Kubernetes meta/v1.Time

      PreparedAt indicates the time this estimate was prepared

      CostEstimateElement

      (Appears on: CostEstimate)

      CostEstimateElement represents a logical component which has an associated cost

      FieldDescription
      name
      string

      Name is the name of this component

      minCost
      int64

      MinCost is the minimum hourly cost estimate of this component in microdollars

      typicalCost
      int64

      TypicalCost is the expected / likely hourly cost estimate of this component in microdollars

      maxCost
      int64

      MaxCost is the estimated upper limit of the hourly cost of this component in microdollars

      CostSummary

      (Appears on: AssetCostSummary, OverallCostSummary, WorkspaceCostSummary)

      CostSummary represents a total cost over a period of time

      FieldDescription
      cost
      int64

      Cost is the actual incurred cost total cost for the specified time period in microdollars

      usageStartTime
      Kubernetes meta/v1.Time

      StartTime indicates the start of the period this summary includes costs for

      usageEndTime
      Kubernetes meta/v1.Time

      EndTime indicates the end of the period this summary includes costs for

      InstanceType

      InstanceType is an available compute type from a cloud provider

      FieldDescription
      category
      string

      Category is the classification of this instance type

      name
      string

      Name is the unique identifier of this instance type

      prices
      map[github.com/appvia/wayfinder/tmpcrdref/pkg/apis/costs/v1alpha1.PriceType]int64

      Prices gives the price of this instance type in microdollars per hour for the given price type

      mCpus
      int64

      MCpus is the number of milliCPUs assigned to this instance type

      mem
      int64

      Mem is the amount of memory, expressed in milli-GiBs, assigned to this instance type

      KubernetesDetails

      KubernetesDetails is the set of version information for the Kubernetes service on a given provider

      FieldDescription
      refreshed
      Kubernetes meta/v1.Time
      supportedVersionsByRegion
      map[string][]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/costs/v1alpha1.KubernetesVersion

      SupportedVersionsByRegion lists the versions supported in each region of the cloud provider

      KubernetesVersion

      FieldDescription
      version
      string

      Version is the full version (as required by the cloud provider APIs)

      supported
      bool

      Supported indicates that this version is supported by this version of Wayfinder

      default
      bool

      Default indicates that this version is the default version for this version of Wayfinder

      OverallCostSummary

      OverallCostSummary represents the total costs known to wayfinder over a period of time, and acts as a container for WorkspaceCostSummaries

      PriceType (string)

      PriceType is the possible types of prices for cloud infrastructure

      ValueDescription

      "OnDemand"

      PriceTypeOnDemand is the normal ‘rack’ price for a piece of infrastructure

      "PreEmptible"

      PriceTypePreEmptible is the fixed discounted price which you can use a piece of infrastructure for subject to availability and early termination

      "Spot"

      PriceTypeSpot is the variable price which you may be able to use a piece of infrastructure for

      Region

      (Appears on: Continent)

      Region is a specific cloud provider region

      FieldDescription
      id
      string
      name
      string
      zones
      []string

      WorkspaceCostSummary

      WorkspaceCostSummary represents the total cost known to wayfinder for a workspace (over a period of time)

      FieldDescription
      workspaceIdentifier
      string

      WorkspaceIdentifier is the unique identifier for the workspace these costs belongs to.

      workspace
      WorkspaceKey

      Workspace is the key of the workspace that these costs belong to

      assetCosts
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/costs/v1alpha1.AssetCostSummary

      AssetCosts gives the detail of the assets which make up this workspace cost

      CostSummary
      CostSummary

      dns.appvia.io/v2beta1

      Package v2beta1 contains API Schema definitions for the compute v2beta1 API group

      Resource Types:

      DNSZone

      DNSZone represents a DNS zone in a specific cloud provider DNS implementation cloud account

      FieldDescription
      apiVersion
      string
      dns.appvia.io/v2beta1
      kind
      string
      DNSZone
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      DNSZoneSpec
      provider
      string

      Provider defines which DNS provider to use to create this zone

      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef is a reference to the cloud access config that should be used to create the DNS zone. This may not be required for all DNS providers.

      parentZone
      DNSZoneRef

      ParentZone should be set to make this zone a child of another zone managed by Wayfinder. Setting this allows Wayfinder to automatically manage the delegation of this zone.

      domain
      string

      Domain is the domain name that this zone will represent

      private
      bool

      Private indicates that this is a private DNS zone, if applicable for the provider

      network
      Ownership

      Network should be specified if private is true to indicate what network this private DNS zone should be provisioned with. Ignored if Private is false/unspecified.

      providerDetails
      DNSZoneProviderDetails

      ProviderDetails provides additional fields which can be used for DNS-provider specific data needed to provision this zone

      cloudResourceName
      string

      CloudResourceName specifies the name of the DNS zone in the DNS provider Can be left blank so that the name is derived from the resource name

      unmanaged
      bool

      Unmanaged should be set to true to indicate that this zone should not be built or deleted by Wayfinder, but should be verified to exist in the specified DNS provider and, thus, will be usable as a parent zone.

      Ensure CloudResourceName is also set if this provider requires a name (other than the domain) to find this unmanaged zone, e.g. GCP’s ‘Zone name’.

      availableToClusters
      DNSZoneClusterAvailability

      AvailableToClusters allows this zone, or automatically-created child zones of it, to be made available automatically in the targeted clusters, with ExternalDNS deployed and configured.

      Leave unspecified to not make this zone available in any clusters.

      For a GlobalDNSZone, this provide DNS in any workspace (subject to the label selectors you define and the allocation specified in the Allocation field).

      For a DNSZone, this will only provide DNS for clusters in the same workspace the zone is created in.

      availableToApps
      DNSZoneAppAvailability

      AvailableToApps allows a global zone to be identified for auto-provisioning of app-specific DNS zones. This is only valid on global DNS zones and is ignored otherwise.

      manualChildZoneCreation
      bool

      ManualChildZoneCreation defines whether workspaces should be able to manually provision child DNS zones within a cluster

      Leave unspecified to prevent the manual creation in clusters.

      allocation
      ResourceAllocation

      Allocation defines which workspaces can create child zones from this DNS zone. Only applicable to GlobalDNSZones. This must be set for AutoProvisionChildZones to have any effect.

      status
      DNSZoneStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      nameservers
      []string

      Nameservers are the authoritative nameservers that are required to be set for this zone.

      delegated
      bool

      Delegated indicates this zone has been correctly delegated

      txtrecord
      string

      VerificationRecord contains a txt record if needed for verification

      zoneID
      string

      ZoneID contains a DNS-provider specific unique reference to the zone created for this resource. Azure - ResourceID, AWS - ZoneID, GCP - ZoneName

      providerStatus
      DNSZoneProviderStatus

      ProviderStatus provides any provider-specific status information about this zone.

      GlobalDNSZone

      GlobalDNSZone represents a DNS zone in a specific cloud provider DNS implementation cloud account, available system-wide

      FieldDescription
      apiVersion
      string
      dns.appvia.io/v2beta1
      kind
      string
      GlobalDNSZone
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      DNSZoneSpec
      provider
      string

      Provider defines which DNS provider to use to create this zone

      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef is a reference to the cloud access config that should be used to create the DNS zone. This may not be required for all DNS providers.

      parentZone
      DNSZoneRef

      ParentZone should be set to make this zone a child of another zone managed by Wayfinder. Setting this allows Wayfinder to automatically manage the delegation of this zone.

      domain
      string

      Domain is the domain name that this zone will represent

      private
      bool

      Private indicates that this is a private DNS zone, if applicable for the provider

      network
      Ownership

      Network should be specified if private is true to indicate what network this private DNS zone should be provisioned with. Ignored if Private is false/unspecified.

      providerDetails
      DNSZoneProviderDetails

      ProviderDetails provides additional fields which can be used for DNS-provider specific data needed to provision this zone

      cloudResourceName
      string

      CloudResourceName specifies the name of the DNS zone in the DNS provider Can be left blank so that the name is derived from the resource name

      unmanaged
      bool

      Unmanaged should be set to true to indicate that this zone should not be built or deleted by Wayfinder, but should be verified to exist in the specified DNS provider and, thus, will be usable as a parent zone.

      Ensure CloudResourceName is also set if this provider requires a name (other than the domain) to find this unmanaged zone, e.g. GCP’s ‘Zone name’.

      availableToClusters
      DNSZoneClusterAvailability

      AvailableToClusters allows this zone, or automatically-created child zones of it, to be made available automatically in the targeted clusters, with ExternalDNS deployed and configured.

      Leave unspecified to not make this zone available in any clusters.

      For a GlobalDNSZone, this provide DNS in any workspace (subject to the label selectors you define and the allocation specified in the Allocation field).

      For a DNSZone, this will only provide DNS for clusters in the same workspace the zone is created in.

      availableToApps
      DNSZoneAppAvailability

      AvailableToApps allows a global zone to be identified for auto-provisioning of app-specific DNS zones. This is only valid on global DNS zones and is ignored otherwise.

      manualChildZoneCreation
      bool

      ManualChildZoneCreation defines whether workspaces should be able to manually provision child DNS zones within a cluster

      Leave unspecified to prevent the manual creation in clusters.

      allocation
      ResourceAllocation

      Allocation defines which workspaces can create child zones from this DNS zone. Only applicable to GlobalDNSZones. This must be set for AutoProvisionChildZones to have any effect.

      status
      DNSZoneStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      nameservers
      []string

      Nameservers are the authoritative nameservers that are required to be set for this zone.

      delegated
      bool

      Delegated indicates this zone has been correctly delegated

      txtrecord
      string

      VerificationRecord contains a txt record if needed for verification

      zoneID
      string

      ZoneID contains a DNS-provider specific unique reference to the zone created for this resource. Azure - ResourceID, AWS - ZoneID, GCP - ZoneName

      providerStatus
      DNSZoneProviderStatus

      ProviderStatus provides any provider-specific status information about this zone.

      AWSDNSZoneParameters

      (Appears on: DNSZoneProviderDetails)

      AWSDNSZoneParameters is the parameters for an AWS DNS zone

      AzureDNSZoneParameters

      (Appears on: DNSZoneProviderDetails)

      AzureDNSZoneParameters is the parameters for an Azure DNS zone

      FieldDescription
      resourceGroup
      string

      ResourceGroup identifies an existing resource group in which to place this DNS zone. If this is unpopulated, a new resource group will be created for the zone.

      DNSRecord

      FieldDescription
      RecordType
      DNSRecordType
      Records
      []string

      DNSRecordType (string)

      (Appears on: DNSRecord)

      ValueDescription

      "NS"

      DNSRecordTypeNS is an ns record

      "TXT"

      DNSRecordTypeTXT is a txt record

      DNSZoneAppAvailability

      (Appears on: DNSZoneSpec)

      FieldDescription
      stage
      string

      Stage is the stage this zone will provide app DNS zones for. A global zone can only provide DNS zones for a single stage - create two global zones for different domains to automate provisioning of app DNS zones for different stages.

      DNSZoneClusterAvailability

      (Appears on: DNSZoneSpec)

      FieldDescription
      mode
      DNSZoneClusterAvailabilityMode

      Mode defines how this zone will be made available in the targeted clusters. If ‘direct’, this zone will be directly available in the targeted clusters using External DNS. If ‘createChildZone’, child zones of this zone will be automatically created and made available in the targeted clusters.

      For ‘direct’ mode, the zone can only be made available in clusters of the relevant type for the provider of the DNS zone (e.g. AWS Route 53 zones can be made available directly in AWS EKS clusters). This restriction does not apply for ‘createChildZone’ mode.

      ‘direct’ mode is only supported for workspace-scoped DNS zones, global DNS zones cannot be made directly.

      selectors
      Kubernetes meta/v1.LabelSelector

      Selectors define which clusters the zone should be available in

      DNSZoneClusterAvailabilityMode (string)

      (Appears on: DNSZoneClusterAvailability)

      DNSZoneClusterAvailabilityMode are the ways a DNS zone can be made available to clusters

      ValueDescription

      "createChildZone"

      DNSZoneClusterAvailabilityModeCreateChildZone will auto-provision child zones of this zone dedicated to each targeted cluster

      "direct"

      DNSZoneClusterAvailabilityModeDirect will make the zone directly available in the targeted clusters - this mode is not available for global DNS zones

      DNSZoneProviderDetails

      (Appears on: DNSZoneSpec)

      DNSZoneProviderDetails provides parameters that are specific to a particular type of DNS zone

      FieldDescription
      type
      DNSZoneType
      aws
      AWSDNSZoneParameters
      (Optional)

      AWS holds parameters specific to an AWS DNS zone. Present only if type is AWS.

      gcp
      GCPDNSZoneParameters
      (Optional)

      GCP holds parameters specific to a GCP DNS zone. Present only if type is GCP.

      azure
      AzureDNSZoneParameters
      (Optional)

      Azure holds parameters specific to an Azure DNS zone. Present only if type is Azure.

      DNSZoneProviderStatus

      (Appears on: DNSZoneStatus)

      FieldDescription
      azure
      DNSZoneProviderStatusAzure

      Azure provides information about the status of this Azure DNS zone

      DNSZoneProviderStatusAzure

      (Appears on: DNSZoneProviderStatus)

      FieldDescription
      resourceGroup
      string

      ResourceGroup is the assigned resource group in which this domain resides.

      DNSZoneRef

      (Appears on: DNSZoneSpec)

      FieldDescription
      namespace
      string

      Namespace which contains the DNSZone, leave empty if this is a reference to a GlobalDNSZone

      name
      string

      Name of the DNSZone or GlobalDNSZone

      DNSZoneSpec

      (Appears on: DNSZone, GlobalDNSZone)

      DNSZoneSpec defines the specification of a DNS zone which should be provisioned

      FieldDescription
      provider
      string

      Provider defines which DNS provider to use to create this zone

      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef is a reference to the cloud access config that should be used to create the DNS zone. This may not be required for all DNS providers.

      parentZone
      DNSZoneRef

      ParentZone should be set to make this zone a child of another zone managed by Wayfinder. Setting this allows Wayfinder to automatically manage the delegation of this zone.

      domain
      string

      Domain is the domain name that this zone will represent

      private
      bool

      Private indicates that this is a private DNS zone, if applicable for the provider

      network
      Ownership

      Network should be specified if private is true to indicate what network this private DNS zone should be provisioned with. Ignored if Private is false/unspecified.

      providerDetails
      DNSZoneProviderDetails

      ProviderDetails provides additional fields which can be used for DNS-provider specific data needed to provision this zone

      cloudResourceName
      string

      CloudResourceName specifies the name of the DNS zone in the DNS provider Can be left blank so that the name is derived from the resource name

      unmanaged
      bool

      Unmanaged should be set to true to indicate that this zone should not be built or deleted by Wayfinder, but should be verified to exist in the specified DNS provider and, thus, will be usable as a parent zone.

      Ensure CloudResourceName is also set if this provider requires a name (other than the domain) to find this unmanaged zone, e.g. GCP’s ‘Zone name’.

      availableToClusters
      DNSZoneClusterAvailability

      AvailableToClusters allows this zone, or automatically-created child zones of it, to be made available automatically in the targeted clusters, with ExternalDNS deployed and configured.

      Leave unspecified to not make this zone available in any clusters.

      For a GlobalDNSZone, this provide DNS in any workspace (subject to the label selectors you define and the allocation specified in the Allocation field).

      For a DNSZone, this will only provide DNS for clusters in the same workspace the zone is created in.

      availableToApps
      DNSZoneAppAvailability

      AvailableToApps allows a global zone to be identified for auto-provisioning of app-specific DNS zones. This is only valid on global DNS zones and is ignored otherwise.

      manualChildZoneCreation
      bool

      ManualChildZoneCreation defines whether workspaces should be able to manually provision child DNS zones within a cluster

      Leave unspecified to prevent the manual creation in clusters.

      allocation
      ResourceAllocation

      Allocation defines which workspaces can create child zones from this DNS zone. Only applicable to GlobalDNSZones. This must be set for AutoProvisionChildZones to have any effect.

      DNSZoneStatus

      (Appears on: DNSZone, GlobalDNSZone)

      DNSZoneStatus defines the status of a cloud account

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      nameservers
      []string

      Nameservers are the authoritative nameservers that are required to be set for this zone.

      delegated
      bool

      Delegated indicates this zone has been correctly delegated

      txtrecord
      string

      VerificationRecord contains a txt record if needed for verification

      zoneID
      string

      ZoneID contains a DNS-provider specific unique reference to the zone created for this resource. Azure - ResourceID, AWS - ZoneID, GCP - ZoneName

      providerStatus
      DNSZoneProviderStatus

      ProviderStatus provides any provider-specific status information about this zone.

      DNSZoneType (string)

      (Appears on: DNSZoneProviderDetails)

      DNSZoneType represents the concrete type of a DNS Zone to provide

      ValueDescription

      "AWS"

      DNSZoneTypeAWS is for AWS Route 53 zone

      "Azure"

      DNSZoneTypeAzure is for Azure DNS zone

      "GCP"

      DNSZoneTypeGCP is for GCP Cloud DNS zone

      GCPDNSZoneParameters

      (Appears on: DNSZoneProviderDetails)

      GCPDNSZoneParameters is the parameters for a GCP DNS zone

      GlobalOrScopedDNSZone

      GlobalOrScopedDNSZone provides a common interface for global or workspace-scoped DNS zones

      SortDNSZonesByDomain ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/dns/v2beta1.DNSZone)

      SortDNSZonesByDomain is a list of DNS zones which can be sorted by the spec domain

      SortZonesByDomain ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/dns/v2beta1.GlobalOrScopedDNSZone)

      SortZonesByDomain is a list of global or scoped DNS zones which can be sorted by the spec domain

      networking.appvia.io/v2beta1

      Package v2beta1 contains API Schema definitions for the compute v2beta1 API group

      Resource Types:

      AssignableNetwork

      AssignableNetwork is the definition for an assignable network range

      FieldDescription
      apiVersion
      string
      networking.appvia.io/v2beta1
      kind
      string
      AssignableNetwork
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AssignableNetworkSpec
      provider
      string

      Providers the provider the range is assigned

      stages
      []string

      Stages is a collection of stages this network is assignable to.

      excludeWorkspaces
      []string

      ExcludeWorkspaces is a collection of workspaces whom are excluded from the requirement.

      includeWorkspaces
      []string

      IncludeWorkspaces is a collection of workspaces who are included as part of the rule - if specified the requirement is only applied to those workspaces - by default we assume this as a wildcard all workspaces

      networks
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.AssignableNetworkRange

      Networks is a collection of network assignment for a particular provider

      plans
      []string

      Plans is a optional list of plans to associate the range to

      status
      AssignableNetworkStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      FirewallRules

      FieldDescription
      apiVersion
      string
      networking.appvia.io/v2beta1
      kind
      string
      FirewallRules
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      FirewallSpec
      networkRef
      Ownership

      NetworkRef is a reference to the network associated with the firewall.

      rules
      []FirewallRule

      Rules is a list of firewall rules.

      status
      FirewallStatus

      NetworkFabric

      NetworkFabric is the schema for NetworkFabric

      FieldDescription
      apiVersion
      string
      networking.appvia.io/v2beta1
      kind
      string
      NetworkFabric
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      NetworkFabricSpec
      layout
      NetworkFabricLayout

      Layout refers to the layout of the network. It controls whether the various parts - subnets, routes, etc. - are set up manually (i.e. specified in the spec) or automatically (i.e. generated by the provider).

      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef is a reference to the cloud access configuration that should be used to create the network.

      ipv4
      NetworkFabricIPv4

      IPv4 contains the IPv4 configuration associated with the network.

      location
      string

      Location is the region the network should be created in. [AWS] Region [GCP] The Default location for subnets (as GCP actual networks are global) [Azure] Region Required if this is used for a NetworkFabric, optional on a NetworkFabricPlan

      cloudResourceName
      string

      CloudResourceName is used to identify the network object in the cloud provider [AWS] Names are not supported, so is a “Name” tag on the VPC [GCP] Name of the Network [Azure] Name of the Virtual Network (VNet)

      plan
      string

      Plan refers to a “flavour” of network that donates the policy. For example, when .Spec.Layout.Mode="auto"and this is set to “my-network”, a network values will be added automatically from the plan, with minimal input from the caller.

      provider
      string

      Provider refers to the cloud provider.

      providerDetails
      ProviderDetails

      ProviderDetails defines cloud-specific network options

      private
      NetworkFabricPrivateOptions

      Private are options related to private networking

      routes
      []NetworkFabricRoute

      Routes is the list of routes within the network. Mode must be set to “manual” for this field to be valid. if manual, will be populated from the spec.IPv4.CIDRBlock’s

      stage
      string

      Stage is the name of the stage for the network. Required when used in a network fabric, optional when used in a network fabric plan.

      subnets
      []NetworkFabricSubnet

      Subnets is the list of subnets within the network. Mode must be set to “manual” for this field to be valid.

      tags
      map[string]string

      Tags is a collection of tags to apply to the resources associated with the network, if applicable.

      status
      NetworkFabricStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      aws
      NetworkFabricStatusAWS

      AWS contains the AWS-specific state for the network

      azure
      NetworkFabricStatusAzure

      Azure contains the Azure-specific state for the network

      gcp
      NetworkFabricStatusGCP

      GCP contains the GCP-specific state for the network

      NetworkFabricPlan

      NetworkFabricPlan is the Schema for the plans API

      FieldDescription
      apiVersion
      string
      networking.appvia.io/v2beta1
      kind
      string
      NetworkFabricPlan
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      NetworkFabricPlanSpec
      PlanSpec
      PlanSpec

      (Members of PlanSpec are embedded into this type.)

      summary
      string

      Summary provides a short title summary for the network plan It should describe a network in terms that are meaningful for developers: e.g. highest availability network expensive but resilient

      planProviderDetails
      PlanProviderDetails

      PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

      template
      NetworkFabricSpec

      Template are the key+value pairs describing a network configuration

      status
      NetworkFabricPlanStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      Peering

      Peering is tracking resource which is used to create a connection between the source network and an external network

      FieldDescription
      apiVersion
      string
      networking.appvia.io/v2beta1
      kind
      string
      Peering
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      PeeringSpec
      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef provides an optional reference to a cloud access config which details the permission to carry out the tasks required to fulfil peering or gateway attachments

      connection
      PeeringRuleConnection

      Connection provides the policy details around how the peering should be achieved

      networkRef
      Ownership

      NetworkRef is the network which we are creating a connection from

      status
      PeeringStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      peeringID
      string

      PeeringID is the cloud agnostic peering identifier

      PeeringRule

      PeeringRule providing a policy definition for peering

      FieldDescription
      apiVersion
      string
      networking.appvia.io/v2beta1
      kind
      string
      PeeringRule
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      PeeringRuleSpec
      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef provides an optional reference to a cloudaccount which has the permission to carry out the tasks required to fulfil peering or gateway attachments

      connection
      PeeringRuleConnection

      Connection provides the policy details around how the peering should be achieved

      filters
      PeeringRuleFilters

      Filters provides the ability to apply a collection of filters to whom the peering policy should apply to

      status
      PeeringRuleStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      connectionID
      string

      ConnectionID is the ID of the peering or gateway attachment which has been created

      AssignableNetworkRange

      AssignableNetworkRange defines a assignable network range

      FieldDescription
      range
      string

      Range is the CIDR range of the network

      type
      AssignableNetworkType

      Type is the network type being defined - i.e. pods, clusters, services or node

      AssignableNetworkSpec

      (Appears on: AssignableNetwork)

      AssignableNetworkSpec define the definitions for network ranges

      FieldDescription
      provider
      string

      Providers the provider the range is assigned

      stages
      []string

      Stages is a collection of stages this network is assignable to.

      excludeWorkspaces
      []string

      ExcludeWorkspaces is a collection of workspaces whom are excluded from the requirement.

      includeWorkspaces
      []string

      IncludeWorkspaces is a collection of workspaces who are included as part of the rule - if specified the requirement is only applied to those workspaces - by default we assume this as a wildcard all workspaces

      networks
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.AssignableNetworkRange

      Networks is a collection of network assignment for a particular provider

      plans
      []string

      Plans is a optional list of plans to associate the range to

      AssignableNetworkStatus

      (Appears on: AssignableNetwork)

      AssignableNetworkStatus defines the observed state of status on a policy

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AssignableNetworkType (string)

      (Appears on: AssignableNetworkRange, IPv4CIDRBlock)

      AssignableNetworkType represents the network type of an assignable network

      ValueDescription

      "node"

      NodeNetwork defines node network - the range provided to the pools

      "pod"

      PodsNetwork defines the range for pods

      "service"

      ServicesNetwork defines the service / cluster range

      ExternalNetworkPeer

      (Appears on: PeeringRuleDirect)

      ExternalNetworkPeer defines the definition when attached to the network to an external network

      FieldDescription
      account
      string

      Account is a cloud agnostic name of the account, subscription or project where the network we are peering to exists

      location
      string

      Location is the region where the network exists. For AWS this might be eu-west-2, for GCP europe-west2 and so forth

      identifier
      string

      Identifier is the full resource identity of the virtual network which we are peering to. This AWS and GCP this would be the virtual network name. For Azure this would be the resource group plus the virtual network name.

      routes
      IPv4CIDRs

      Routes is a collection of network ranges which we want to expose to the peered networks. The route tables of the source networks are automatically amended to push these subnets down the peered connection

      routeTableSelectors
      map[string]string

      RouteTableSelectors is required when enableAutoApproval is enabled. The field provides a collection of cloud tags which is used to filter on which routing tables in the external network need updating to include the source network routes. Note, this field is not required for GCP or Azure as the route propagation is performed automatically for you.

      FirewallRule

      (Appears on: FirewallSpec)

      FirewallRule represents the various options associated with a firewall rule. Depending on the cloud, a single FirewallRule might be expanded to multiple individual firewall rules.

      FieldDescription
      name
      string

      Name is the name of the firewall rule.

      description
      string

      Description is an optional description of the firewall rule.

      action
      string

      Action dictates whether to allow or deny matching traffic.

      cidrBlocks
      []IPv4CIDR

      CIDRBlocks is the list of IP address ranges that this rule applies to.

      direction
      string

      Direction dictates whether this rule applies to inbound or outbound traffic.

      ipVersion
      uint16

      IPVersion is the version of the Internet Protocol for the firewall rule.

      protocols
      []string

      Ports is a list of protocols that this firewall rule applies to.

      ports
      []Port

      Ports is a list of port numbers that this firewall rule applies to. If omitted, the rule applies to all ports.

      priority
      uint16

      Priority dictates the precedences of the firewall rule. Lower values indicate higher priorities.

      FirewallSpec

      (Appears on: FirewallRules)

      FirewallSpec defines the desired state of a firewall

      FieldDescription
      networkRef
      Ownership

      NetworkRef is a reference to the network associated with the firewall.

      rules
      []FirewallRule

      Rules is a list of firewall rules.

      FirewallStatus

      (Appears on: FirewallRules)

      FirewallStatus defines the observed state of a firewall

      GCPSecondarySubnetIPRanges

      (Appears on: ProviderDetailsSubnetIPv4GCP)

      GCPSecondarySubnetIPRanges represents the secondary subnet ranges for GCP when running in private cluster mode

      FieldDescription
      cidrBlock
      IPv4CIDR

      CIDRBlock is the IP address range for the subnet.

      type
      GCPSubnetDefaultSubnetName

      Type determines what type of secondary range ip address this is.

      GCPSubnetDefaultSubnetName (string)

      (Appears on: GCPSecondarySubnetIPRanges)

      GCPSubnetDefaultSubnetName represents the default subnets names for GKE private clusters

      ValueDescription

      "pods"

      GCPSubnetDefaultSubnetNamePods represents the default subnet name for GCP pods networks

      "services"

      GCPSubnetDefaultSubnetNameServices represents the default subnet name for GCP services networks

      IPv4CIDR (string)

      (Appears on: FirewallRule, GCPSecondarySubnetIPRanges, IPv4CIDRBlock, NetworkFabricRoute, NetworkFabricSubnetIPv4)

      IPv4CIDR represents an IP range in the A.B.C.D/N format

      IPv4CIDRBlock

      CidrBlock represents an IPv4Cidr block and its use case

      FieldDescription
      type
      AssignableNetworkType

      Type is what the cidr block is used for

      cidr
      IPv4CIDR

      CIDR is the cidr range in the A.B.C.D/N format

      size
      int

      Size is the size of the CIDR range to be allocated if not specified

      IPv4CIDRBlocks ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.IPv4CIDRBlock)

      (Appears on: NetworkFabricIPv4)

      IPv4CIDRBlocks is a list of IPv4 addresses with a type

      IPv4CIDRs ([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.IPv4CIDR)

      (Appears on: ExternalNetworkPeer, PeeringRuleGateway)

      IPv4CIDRs is a list of IPv4 addresses

      NetworkFabricGateway

      NetworkFabricGateway are cloud agnostic settings for nat gateway

      FieldDescription
      associate
      NetworkFabricGatewayAssociation

      Associate is the location of the gateway

      ipv4
      NetworkFabricGatewayIPV4

      IPv4 defines the ip allocation options of the gateway

      nat
      NetworkFabricGatewayNATOptions

      NAT provides cloud agnostic settings for the NAT gateway itself

      NetworkFabricGatewayAssociation

      (Appears on: NetworkFabricGateway)

      NetworkFabricGatewayAssociation is used to define where the gateway should reside

      FieldDescription
      subnet
      string

      Subnet is reference to the subnet the gateway should reside. Note the subnet must be defined in the subnets sections below. Note, GCP does not require this settings, CloudNAT is associated to a network

      location
      string

      Location defines the regional the gateway should reside in. This is only required for GCP where cloud gateways are regional rather than designated to an availability zone

      NetworkFabricGatewayIPV4

      (Appears on: NetworkFabricGateway)

      NetworkFabricGatewayIPV4 are the options related to ipv4 settings on a nat gateway

      FieldDescription
      mode
      NetworkFabricGatewayIPV4Mode

      Mode defines the mode of how to allocate external address or address pools to the NAT gateway

      addresses
      []string

      Addresses provides a collection of external addresses which should be associated to the nat gateway, assuming the mode is static. In AWS is the an EIP which has been allocated in the correct region and account. In GCP you can define mutiple external addresses which the CloudNAT will manage

      NetworkFabricGatewayIPV4Mode (string)

      (Appears on: NetworkFabricGatewayIPV4)

      NetworkFabricGatewayIPV4Mode defines the mode for ipv4 allocation on the gateway

      NetworkFabricGatewayNATOptions

      (Appears on: NetworkFabricGateway)

      NetworkFabricGatewayNATOptions provides the ability to configure cloud agnostic settings on the gateway

      FieldDescription
      subnets
      []string

      Subnet defines the subnets which should be associated and natted through the nat gateway. These must be defined in the subnets section within the network fabric spec.

      NetworkFabricIPv4

      (Appears on: NetworkFabricSpec)

      NetworkFabricIPv4 is a collection of network ipv4 ranges

      FieldDescription
      cidrBlocks
      IPv4CIDRBlocks

      CIDRBlocks is a list of CIDR blocks that are associated with the network. Includes useCase so a provider or client can decide what they are used for currently only supported use cases are: - “cluster” - “pods” - “services” [AWS] Multiple IP ranges. AWS only supports a single IP range is supported oncreation, but can be updated afterwards to specify additional IP ranges. [GCP] Used as metadata for cluster creation. [Azure] Multiple IP ranges.

      NetworkFabricLayout

      (Appears on: NetworkFabricSpec)

      NetworkFabricLayout defines the options for wayfinder prescribed network topology

      FieldDescription
      mode
      NetworkFabricLayoutMode

      Mode dictates whether the layout of the network should be set up manually or automatically. If automatic, no other fields should be specified. If manual, fields should be specified manually by the caller.

      Currently, only “auto” is supported. In future, “manual” will be implemented as required.

      privateSubnets
      int

      PrivateSubnets is the number of private subnets that should be generated in the network. Mode must be set to “auto” for this field to be valid.

      publicSubnets
      int

      PublicSubnets is the number of public subnets that should be generated in the network. Mode must be set to “auto” for this field to be valid.

      NetworkFabricLayoutMode (string)

      (Appears on: NetworkFabricLayout)

      NetworkFabricLayoutMode represents the network fabric layout mode

      ValueDescription

      "auto"

      NetworkFabricLayoutModeAuto is for network fabric layout mode auto

      "manual"

      NetworkFabricLayoutModeManual is for network fabric layout mode manual

      NetworkFabricPlanSpec

      (Appears on: NetworkFabricPlan)

      NetworkFabricPlanSpec defines the desired state of Plan

      FieldDescription
      PlanSpec
      PlanSpec

      (Members of PlanSpec are embedded into this type.)

      summary
      string

      Summary provides a short title summary for the network plan It should describe a network in terms that are meaningful for developers: e.g. highest availability network expensive but resilient

      planProviderDetails
      PlanProviderDetails

      PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

      template
      NetworkFabricSpec

      Template are the key+value pairs describing a network configuration

      NetworkFabricPlanStatus

      (Appears on: NetworkFabricPlan)

      NetworkFabricPlanStatus defines the observed state of Plan

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      NetworkFabricPrivateOptions

      (Appears on: NetworkFabricSpec)

      NetworkFabricPrivateOptions are options related to private networking

      FieldDescription
      enabled
      bool

      Enabled indicates we are expecting the predefined network layout to generate a private network.

      gateways
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/networking/v2beta1.NetworkFabricGateway

      Gateways provides the options around cloud NAT gateways

      NetworkFabricProviderType (string)

      (Appears on: ProviderDetails)

      NetworkFabricProviderType represents the concrete type of a network fabric provider

      ValueDescription

      "aws"

      NetworkFabricProviderTypeAWS is for AWS network fabric provider

      "azure"

      NetworkFabricProviderTypeAzure is for Azure network fabric provider

      "gcp"

      NetworkFabricProviderTypeGCP is for GCP network fabric provider

      NetworkFabricRoute

      (Appears on: NetworkFabricSpec)

      NetworkFabricRoute is a cloud agnostic definition for a route

      FieldDescription
      name
      string

      Name is the name of the route.

      description
      string

      Description is an optional description of the route.

      cidrBlock
      IPv4CIDR

      CIDRBlock represents the range of destination IP addresses that this route applies to.

      target
      NetworkFabricRouteTarget

      Target is the destination that the traffic bound for IP addresses within CIDRBlock range will be sent to. This target may be a gateway, network interface, or connection through which to send the destination traffic; for example, an internet gateway.

      NetworkFabricRouteTarget

      (Appears on: NetworkFabricRoute)

      NetworkFabricRouteTarget contains the information necessary to determine the destination that network traffic should be sent to.

      TODO: Determine what goes here (IPv4 vs IPv6 routing, local, internet gateway, NAT gateway)

      NetworkFabricSpec

      (Appears on: NetworkFabric, NetworkFabricPlanSpec)

      NetworkFabricSpec defines the desired state of a network

      FieldDescription
      layout
      NetworkFabricLayout

      Layout refers to the layout of the network. It controls whether the various parts - subnets, routes, etc. - are set up manually (i.e. specified in the spec) or automatically (i.e. generated by the provider).

      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef is a reference to the cloud access configuration that should be used to create the network.

      ipv4
      NetworkFabricIPv4

      IPv4 contains the IPv4 configuration associated with the network.

      location
      string

      Location is the region the network should be created in. [AWS] Region [GCP] The Default location for subnets (as GCP actual networks are global) [Azure] Region Required if this is used for a NetworkFabric, optional on a NetworkFabricPlan

      cloudResourceName
      string

      CloudResourceName is used to identify the network object in the cloud provider [AWS] Names are not supported, so is a “Name” tag on the VPC [GCP] Name of the Network [Azure] Name of the Virtual Network (VNet)

      plan
      string

      Plan refers to a “flavour” of network that donates the policy. For example, when .Spec.Layout.Mode="auto"and this is set to “my-network”, a network values will be added automatically from the plan, with minimal input from the caller.

      provider
      string

      Provider refers to the cloud provider.

      providerDetails
      ProviderDetails

      ProviderDetails defines cloud-specific network options

      private
      NetworkFabricPrivateOptions

      Private are options related to private networking

      routes
      []NetworkFabricRoute

      Routes is the list of routes within the network. Mode must be set to “manual” for this field to be valid. if manual, will be populated from the spec.IPv4.CIDRBlock’s

      stage
      string

      Stage is the name of the stage for the network. Required when used in a network fabric, optional when used in a network fabric plan.

      subnets
      []NetworkFabricSubnet

      Subnets is the list of subnets within the network. Mode must be set to “manual” for this field to be valid.

      tags
      map[string]string

      Tags is a collection of tags to apply to the resources associated with the network, if applicable.

      NetworkFabricStatus

      (Appears on: NetworkFabric, ClusterStatus)

      NetworkFabricStatus defines the observed state of a network

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      aws
      NetworkFabricStatusAWS

      AWS contains the AWS-specific state for the network

      azure
      NetworkFabricStatusAzure

      Azure contains the Azure-specific state for the network

      gcp
      NetworkFabricStatusGCP

      GCP contains the GCP-specific state for the network

      NetworkFabricStatusAWS

      (Appears on: NetworkFabricStatus)

      NetworkFabricStatusAWS contains the AWS-specific attributes of the status block.

      FieldDescription
      accountID
      string

      AccoundID is the aws account id

      availabilityZoneIDs
      []string

      AvailabilityZoneIDs is the list of AZ ids

      availabilityZoneNames
      []string

      AvailabilityZoneIDs is the list of AZ names

      privateIPV4Addresses
      []string

      PrivateIPV4Addresses provides the list of private subnet addresses

      privateSubnetIDs
      []string

      PrivateSubnetIDs is a list of subnet IDs to use for the worker nodes

      publicIPV4Addresses
      []string

      PublicIPV4Addresses provides the list of public subnet addresses

      ipv4EgressAddresses
      []string

      PublicIPV4EgressAddresses provides the source addresses for traffic coming from the cluster

      publicSubnetIDs
      []string

      PublicSubnetIDs is a list of subnet IDs to use for resources that need a public IP (e.g. load balancers)

      securityGroupIDs
      []string

      SecurityGroupIDs is a list of security group IDs to use for a cluster

      vpcID
      string

      VpcID is the identifier of the VPC

      NetworkFabricStatusAzure

      (Appears on: NetworkFabricStatus)

      NetworkFabricStatusAzure contains the Azure-specific attributes of the status block.

      FieldDescription
      virtualNetworkID
      string

      VirtualNetworkID is the identifier of the Virtual Network

      subnetIDs
      []string

      SubnetIDs are the list of subnet IDs in the Virtual Network

      NetworkFabricStatusGCP

      (Appears on: NetworkFabricStatus)

      NetworkFabricStatusGCP contains the GCP-specific attributes of the status block.

      FieldDescription
      name
      string

      Name is the name of the network in GCP

      networkRef
      string

      NetworkRef is the cloud provider reference

      gateways
      []NetworkFabricStatusGCPGateway

      Gateways provides a status on the gateways and any external addresses

      NetworkFabricStatusGCPGateway

      (Appears on: NetworkFabricStatusGCP)

      NetworkFabricStatusGCPGateway defines the status on the gateway

      FieldDescription
      name
      string

      Name is name of the gateway

      location
      string

      Location is location of where it resides

      addresses
      []string

      Addresses is the external ip or self links references associated to the gateway

      NetworkFabricSubnet

      (Appears on: NetworkFabricSpec)

      NetworkFabricSubnet defines the options for a virtual subnet

      FieldDescription
      name
      string

      Name is the name of the subnet.

      description
      string

      Description is an optional description of the subnet.

      location
      string

      Location is the zone or region associated with the subnet. [AWS] Zone [GCP] Region [Azure] Region (same as the Virtual Network)

      ipv4
      NetworkFabricSubnetIPv4

      IPv4 is the Internet Protocol (version 4) configuration for the subnet.

      NetworkFabricSubnetIPv4

      (Appears on: NetworkFabricSubnet)

      NetworkFabricSubnetIPv4 defines the options for the subnet range

      FieldDescription
      cidrBlock
      IPv4CIDR

      CIDRBlock is the IP address range for the subnet.

      ipVersion
      uint16

      IPVersion is the Internet Protocol version of the subnet.

      type
      NetworkFabricSubnetType

      Type determines whether VMs launched into this subnet should have public or private IP address. If nat is specified, this must be set to “private”.

      providerDetails
      ProviderDetailsSubnetIPv4

      ProviderDetails is is the cloud specific configuration for the subnet.

      NetworkFabricSubnetType (string)

      (Appears on: NetworkFabricSubnetIPv4)

      NetworkFabricSubnetType represents the network fabric subnet type

      ValueDescription

      "private"

      NetworkFabricSubnetTypePrivate is for network fabric subnet type private

      "public"

      NetworkFabricSubnetTypePublic is for network fabric subnet type public

      PeeringGatewayProviderDetails

      (Appears on: PeeringRuleGateway)

      PeeringGatewayProviderDetails provides a means configure cloud specific options around gateway attachments

      FieldDescription
      aws
      PeeringGatewayProviderDetailsAWS

      AWS defines the cloud specifics for gateway options

      PeeringGatewayProviderDetailsAWS

      (Appears on: PeeringGatewayProviderDetails)

      PeeringGatewayProviderDetailsAWS are cloud specific options for AWS

      FieldDescription
      enableDNS
      bool

      EnableDNS indicates we should enable or disable dns support via the gateway. Note this defaults to true unless defined.

      PeeringProviderDetails

      (Appears on: PeeringRuleDirect)

      PeeringProviderDetails provides a means configure cloud specific options around gateway attachments

      FieldDescription
      azure
      PeeringProviderDetailsAzure

      Azure defines the cloud specifics for gateway options

      PeeringProviderDetailsAzure

      (Appears on: PeeringProviderDetails)

      PeeringProviderDetailsAzure are cloud specific options for Azure

      FieldDescription
      enableUseRemoteGateway
      bool

      EnableUseRemoteGateway indicates if cluster peering should use remote gateway. If set to true, local gateway will not be deployed and remote one configured to be used

      PeeringRuleConnection

      (Appears on: PeeringRuleSpec, PeeringSpec)

      PeeringRuleConnection provides the definitions for the connection details related to peering

      FieldDescription
      type
      PeeringRuleConnectionType

      Type is the type of peering we are configuring

      gateway
      PeeringRuleGateway

      Geteway provides the configuration for working with gateways and peering connections via a network backbone such as Transit Gateway.

      peering
      PeeringRuleDirect

      Peering provides the configuration for direct peering between two networks. By default the peering assumes the management network, though this can be overridden if required

      PeeringRuleConnectionType (string)

      (Appears on: PeeringRuleConnection)

      PeeringRuleConnectionType represents the concrete type for configuration

      PeeringRuleDirect

      (Appears on: PeeringRuleConnection)

      PeeringRuleDirect defines the options around direct peering

      FieldDescription
      enableAutoApproval
      bool

      EnableAutoApproval indicates we should always accept the peering connection on the other end of the peer. This requires the user provides a cloud access config which the correct permissions to do so.

      network
      ExternalNetworkPeer

      Network provides the ability to override the network which the peering is created on. By default this is the management cluster.

      subnets
      PeeringSubnetFilter

      Subnets provides a means to filter which on the subnets you want to push down the peering. By default we assume all the subnets attached to the virtual network should be routed down the peer

      providerDetails
      PeeringProviderDetails

      ProviderDetails provides the cloud specific options when performing a gateway attachment

      PeeringRuleFilters

      (Appears on: PeeringRuleSpec)

      PeeringRuleFilters is used to filter down whom the policy should apply

      FieldDescription
      allocation
      ResourceAllocation

      Allocation offers the ability to filter the peering policy down to a collection of workspaces only

      selectors
      Kubernetes meta/v1.LabelSelector

      Selectors offers the option to filter down which networks the peering policy is applied based on the labels on the network fabric resource.

      PeeringRuleGateway

      (Appears on: PeeringRuleConnection)

      PeeringRuleGateway defines the options for gateway attachments and peering.

      FieldDescription
      identifier
      string

      Identifier is the cloud specific identifier for the gateway - this could be a transit gateway id in AWS.

      enableAutoApproval
      bool

      EnableAutoApproval indicates we should always accept the peering connection on the other end of the peer. This requires the user provides a cloud access config which the correct permissions to do so.

      location
      string

      Location is the cloud region which where the transit gateway resides

      routes
      IPv4CIDRs

      Routes is a collection of cidr blocks which we need to push down the transit gateway.

      routeTableSelectors
      map[string]string

      RouteTableSelectors is required when enableAutoApproval is enabled. The field provides a collection of cloud tags which is used to filter on which routing tables in the external network need updating to include the source network routes.

      providerDetails
      PeeringGatewayProviderDetails

      ProviderDetails provides the cloud specific options when performing a gateway attachment

      PeeringRuleSpec

      (Appears on: PeeringRule)

      PeeringRuleSpec provides the definition for a peering rule. These are matched against one of more Network Fabric CRD and used to provision a Peer CRD which is used to connect up networks

      FieldDescription
      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef provides an optional reference to a cloudaccount which has the permission to carry out the tasks required to fulfil peering or gateway attachments

      connection
      PeeringRuleConnection

      Connection provides the policy details around how the peering should be achieved

      filters
      PeeringRuleFilters

      Filters provides the ability to apply a collection of filters to whom the peering policy should apply to

      PeeringRuleStatus

      (Appears on: PeeringRule)

      PeeringRuleStatus defines the observed state of a peering setup

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      connectionID
      string

      ConnectionID is the ID of the peering or gateway attachment which has been created

      PeeringSpec

      (Appears on: Peering)

      PeeringSpec defines the definition for the peering connection resource

      FieldDescription
      cloudAccessConfigRef
      CloudAccessConfigReference

      CloudAccessConfigRef provides an optional reference to a cloud access config which details the permission to carry out the tasks required to fulfil peering or gateway attachments

      connection
      PeeringRuleConnection

      Connection provides the policy details around how the peering should be achieved

      networkRef
      Ownership

      NetworkRef is the network which we are creating a connection from

      PeeringStatus

      (Appears on: Peering)

      PeeringStatus defines the observed state of a peering setup

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      peeringID
      string

      PeeringID is the cloud agnostic peering identifier

      PeeringSubnetFilter (map[string]string)

      (Appears on: PeeringRuleDirect)

      PeeringSubnetFilter provides a means to filter down which subnets in the virtual network we are about to attach should be pushed down the peer. One example would be to only push internal subnets.

      PlanProviderDetails

      (Appears on: NetworkFabricPlanSpec)

      PlanProviderDetails defines the parameters for cloud specific options specifically for a plan

      FieldDescription
      aws
      PlanProviderDetailsAWS

      AWS is the provider specification for AWS networks

      PlanProviderDetailsAWS

      (Appears on: PlanProviderDetails)

      PlanProviderDetailsAWS defines the AWS-specific NetworkFabric plan only configuration

      FieldDescription
      availabilityZoneIDsByRegion
      map[string][]string

      AvailabilityZoneIDsByRegion is a map of region to availability zone IDs. Allows specifying which zones should be used across accounts when networks are created.

      Port (uint16)

      (Appears on: FirewallRule)

      Port is a network port.

      ProviderDetails

      (Appears on: NetworkFabricSpec)

      ProviderDetails defines the parameters for cloud specific options - i.e options which cannot be consolidated as they are too specific to the chosen cloud vendor

      FieldDescription
      type
      NetworkFabricProviderType

      Type represents the cloud the NetworkFabric belongs to

      aws
      ProviderDetailsAWS

      AWS is the provider specification for AWS networks

      azure
      ProviderDetailsAzure

      Azure is the provider specification for Azure networks

      gcp
      ProviderDetailsGCP

      GCP is the provider specification for GCP networks

      ProviderDetailsAWS

      (Appears on: ProviderDetails)

      ProviderDetailsAWS defines the AWS-specific NetworkFabric configuration

      FieldDescription
      availabilityZoneIDs
      []string

      AvailabilityZoneIDs is a list of availability zone ids to use for subnets, and NAT gateways this allows specific availability zones to be specified and matched across any accounts will be populated by the AvailabilityZoneIDsByRegion if not specified directly on the plan A single region must be specified when AvailabilityZoneIDs is used.

      availabilityZones
      int

      AvailabilityZones is the number of availability zones used for the network. Must be 2 or 3 or not specified. If specified, must equal the number of privateSubnets. Each subnet (public or private) will be created in a different availability zone.

      natGateways
      int

      NATGateways is the number of NAT gateways to create. Must be 1 or 2 or not specified. If specified, must equal the number of privateSubnets.

      ProviderDetailsAzure

      (Appears on: ProviderDetails)

      ProviderDetailsAzure defines the Azure-specific NetworkFabric configuration

      FieldDescription
      resourceGroup
      string

      ResourceGroup is the Azure resource group

      ProviderDetailsGCP

      (Appears on: ProviderDetails)

      ProviderDetailsGCP defines the GCP-specific NetworkFabric configuration

      ProviderDetailsSubnetIPv4

      (Appears on: NetworkFabricSubnetIPv4)

      ProviderDetailsSubnetIPv4 provides cloud provider specifics for the subnet

      FieldDescription
      gcp
      ProviderDetailsSubnetIPv4GCP

      GCP is the provider specification for GCP subnets

      ProviderDetailsSubnetIPv4GCP

      (Appears on: ProviderDetailsSubnetIPv4)

      ProviderDetailsSubnetIPv4GCP provides secondary ranges for gcp

      FieldDescription
      secondaryIpRanges
      []GCPSecondarySubnetIPRanges

      org.appvia.io/v2beta1

      Package v2beta1 contains API Schema definitions for the org API group

      Resource Types:

      AuditEvent

      AuditEvent is the Schema for the audit API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      AuditEvent
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AuditEventSpec
      id
      int

      ID is the unique identifier of this audit event.

      createdAt
      Kubernetes meta/v1.Time

      CreatedAt is the timestamp of record creation

      resource
      string

      Resource is the area of the API accessed in this audit operation (e.g. workspaces, etc).

      resourceURI
      string

      ResourceURI is the identifier of the resource in question.

      apiVersion
      string

      APIVersion is the version of the API used for this operation.

      verb
      string

      Verb is the type of action performed (e.g. PUT, GET, etc)

      operation
      string

      Operation is the operation performed (e.g. UpdateCluster, CreateCluster, etc).

      workspace
      WorkspaceKey

      Workspace is the workspace whom event may be associated to

      user
      string

      User is the user which the event is related

      startedAt
      Kubernetes meta/v1.Time

      StartedAt is the timestamp the operation was initiated

      completedAt
      Kubernetes meta/v1.Time

      CompletedAt is the timestamp the operation completed

      responseCode
      int

      ResponseCode indicates the HTTP status code of the operation (e.g. 200, 404, etc).

      message
      string

      Message is event message itself

      Channel

      Channel is the Schema for the channels API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      Channel
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      ChannelSpec
      displayName
      string

      DisplayName provides a user-friendly name for the channel

      description
      string

      Description provides a summary of this channel

      kubernetesVersions
      map[string]string

      KubernetesVersions specifies the semver versions of Kubernetes by provider The key of the provider relates to the cluster type (e.g. AKS, GKE, EKS) - This is only required if the channel is the source of truth for Kubernetes versions - If a provider (or all providers is absent) then the platform defaults will be used

      status
      ChannelStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      versions
      ProviderVersions

      Versions is a map of versions per provider…

      DefaultWorkspaceGroup

      DefaultWorkspaceGroup represents a desire for a default workspace group which will be created in each workspace when that workspace is created.

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      DefaultWorkspaceGroup
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      DefaultWorkspaceGroupSpec

      Spec is the desired state of the group

      description
      string

      Description provides a human-readable description of this group

      status
      DefaultWorkspaceGroupStatus

      Status is the status of the group

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      Identity

      Identity is the Schema for the identities API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      Identity
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      IdentitySpec
      subject
      Subject

      Subject identifies the Wayfinder user that this refers to. At this time, the only supported subject kind is User.

      accountType
      IdentityAccountType

      AccountType is the account type of the identity

      provider
      string

      Provider uniquely identifies the provider within the account type (e.g. auth0, azuread, etc)

      username
      string

      ProviderUsername is the name of this user in the provider

      providerToken
      string

      ProviderToken is a token to authenticate or identify this user with the provider, if required

      providerUID
      string

      ProviderUID is the ID of the user in the provider, if required

      email
      string

      Email is the email of this user in the provider, if available

      PlatformAccessToken

      PlatformAccessToken is an access token able to be used to automate all Wayfinder features, both inside and outside of workspaces.

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      PlatformAccessToken
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AccessTokenSpec
      description
      string

      Description provides a short summary on the use of the access token

      tokenIDs
      []string

      TokenIDs is the set of signed token IDs which are currently valid for this access token. This will be populated by Wayfinder, always leave blank on definition.

      status
      AccessTokenStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      Stage

      Stage is the Schema for the stages API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      Stage
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      StageSpec
      displayName
      string

      DisplayName provides a user-friendly name for the stage

      description
      string

      Description provides a summary of this stage

      status
      StageStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      User

      User is the Schema for the users API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      User
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      UserSpec
      username
      string

      Username is the userame or identity for this user - typically this would be an email address. It must be unique.

      disabled
      bool

      Disabled indicates if the user is disabled

      status
      UserStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WayfinderGroup

      WayfinderGroup represents a collection of Wayfinder users

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WayfinderGroup
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      GroupSpec

      Spec is the specification of the group

      description
      string

      Description provides a human-readable description of this group

      members
      []Subject

      Members are the members of the group

      status
      WayfinderGroupStatus

      Status is the status of the group

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WayfinderRole

      WayfinderRole represents a set of Kubernetes RBAC-style rules that can describe permission for users against Wayfinder itself

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WayfinderRole
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      WayfinderRoleSpec

      Spec is the specification of the role

      description
      string

      Description is a human-readable description of the role Should describe what the role would provide access to when bound to a user/group/accesstoken

      rules
      []Kubernetes rbac/v1.PolicyRule

      Rules is rules

      status
      WayfinderRoleStatus

      Status is the status of the role

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WayfinderRoleBinding

      WayfinderRoleBinding represents actual access to a cluster for subjects

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WayfinderRoleBinding
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      WayfinderRoleBindingSpec
      roleRef
      RoleRef

      RoleRef is the role being bound

      subjects
      []Subject

      Subjects is the list of one or more subjects that this role is bound to

      status
      WayfinderRoleBindingStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      Workspace

      Workspace is the Schema for the workspace API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      Workspace
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      WorkspaceSpec
      key
      WorkspaceKey

      Key is the unique identifier for this workspace

      type
      WorkspaceType

      Type is an optional type for this workspace. If unspecified, ‘standard’ is assumed.

      summary
      string

      Summary is a short human-readable name for this workspace

      description
      string

      Description is an extended description for the workspace

      resourceNamespace
      string

      ResourceNamespace will be set by Wayfinder on creation and cannot be modified or defined by users. This is the namespace within Wayfinder in which this workspace’s resources will exist.

      owners
      []Subject

      Owners is the set of users who own this workspace (i.e. can control access to the workspace and its resources). If unpopulated on creation, Wayfinder will set this to the user who created the workspace.

      status
      WorkspaceStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceAccessToken

      WorkspaceAccessToken is an access token can automate Wayfinder features solely within a specified workspace.

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WorkspaceAccessToken
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AccessTokenSpec
      description
      string

      Description provides a short summary on the use of the access token

      tokenIDs
      []string

      TokenIDs is the set of signed token IDs which are currently valid for this access token. This will be populated by Wayfinder, always leave blank on definition.

      status
      AccessTokenStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceGroup

      WorkspaceGroup is the Schema for the workspace groups API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WorkspaceGroup
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      GroupSpec

      Spec is the desired state of the group

      description
      string

      Description provides a human-readable description of this group

      members
      []Subject

      Members are the members of the group

      status
      WorkspaceGroupStatus

      Status is the status of the group

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceInvitation

      WorkspaceInvitation is the Schema for the workspace invitation API

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WorkspaceInvitation
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      WorkspaceInvitationSpec
      username
      string

      Username is the user being bound to the workspace

      workspace
      WorkspaceKey

      Workspace is the name of the workspace being invitied to

      status
      WorkspaceInvitationStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceRoleBinding

      WorkspaceRoleBinding represents the binding of a workspace role to a workspace group or user

      FieldDescription
      apiVersion
      string
      org.appvia.io/v2beta1
      kind
      string
      WorkspaceRoleBinding
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      WorkspaceRoleBindingSpec
      roleRef
      RoleRef

      RoleRef is the role being bound

      subjects
      []Subject

      Subjects is the list of one or more subjects that this role is bound to

      status
      WorkspaceRoleBindingStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AccessTokenSpec

      (Appears on: PlatformAccessToken, WorkspaceAccessToken)

      AccessTokenSpec defines the desired state of policy

      FieldDescription
      description
      string

      Description provides a short summary on the use of the access token

      tokenIDs
      []string

      TokenIDs is the set of signed token IDs which are currently valid for this access token. This will be populated by Wayfinder, always leave blank on definition.

      AccessTokenStatus

      (Appears on: PlatformAccessToken, WorkspaceAccessToken)

      AccessTokenStatus defines the observed state of status on a policy

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AuditEventSpec

      (Appears on: AuditEvent)

      AuditEventSpec defines the desired state of User

      FieldDescription
      id
      int

      ID is the unique identifier of this audit event.

      createdAt
      Kubernetes meta/v1.Time

      CreatedAt is the timestamp of record creation

      resource
      string

      Resource is the area of the API accessed in this audit operation (e.g. workspaces, etc).

      resourceURI
      string

      ResourceURI is the identifier of the resource in question.

      apiVersion
      string

      APIVersion is the version of the API used for this operation.

      verb
      string

      Verb is the type of action performed (e.g. PUT, GET, etc)

      operation
      string

      Operation is the operation performed (e.g. UpdateCluster, CreateCluster, etc).

      workspace
      WorkspaceKey

      Workspace is the workspace whom event may be associated to

      user
      string

      User is the user which the event is related

      startedAt
      Kubernetes meta/v1.Time

      StartedAt is the timestamp the operation was initiated

      completedAt
      Kubernetes meta/v1.Time

      CompletedAt is the timestamp the operation completed

      responseCode
      int

      ResponseCode indicates the HTTP status code of the operation (e.g. 200, 404, etc).

      message
      string

      Message is event message itself

      ChannelSpec

      (Appears on: Channel)

      ChannelSpec defines the desired state of Channel

      FieldDescription
      displayName
      string

      DisplayName provides a user-friendly name for the channel

      description
      string

      Description provides a summary of this channel

      kubernetesVersions
      map[string]string

      KubernetesVersions specifies the semver versions of Kubernetes by provider The key of the provider relates to the cluster type (e.g. AKS, GKE, EKS) - This is only required if the channel is the source of truth for Kubernetes versions - If a provider (or all providers is absent) then the platform defaults will be used

      ChannelStatus

      (Appears on: Channel)

      ChannelStatus defines the observed state of Channel

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      versions
      ProviderVersions

      Versions is a map of versions per provider…

      DefaultWorkspaceGroupSpec

      (Appears on: DefaultWorkspaceGroup)

      DefaultWorkspaceGroupSpec defines the specification for a default workspace group

      FieldDescription
      description
      string

      Description provides a human-readable description of this group

      DefaultWorkspaceGroupStatus

      (Appears on: DefaultWorkspaceGroup)

      DefaultWorkspaceGroupStatus defines the status of a default group

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      GroupSpec

      (Appears on: WayfinderGroup, WorkspaceGroup)

      GroupSpec defines the specification for a group

      FieldDescription
      description
      string

      Description provides a human-readable description of this group

      members
      []Subject

      Members are the members of the group

      IdentityAccountType (string)

      (Appears on: IdentitySpec)

      ValueDescription

      "BasicAuth"

      "SSO"

      "Token"

      IdentitySpec

      (Appears on: Identity)

      IdentitySpec describes an identity profile for a subject

      FieldDescription
      subject
      Subject

      Subject identifies the Wayfinder user that this refers to. At this time, the only supported subject kind is User.

      accountType
      IdentityAccountType

      AccountType is the account type of the identity

      provider
      string

      Provider uniquely identifies the provider within the account type (e.g. auth0, azuread, etc)

      username
      string

      ProviderUsername is the name of this user in the provider

      providerToken
      string

      ProviderToken is a token to authenticate or identify this user with the provider, if required

      providerUID
      string

      ProviderUID is the ID of the user in the provider, if required

      email
      string

      Email is the email of this user in the provider, if available

      PackageVersion

      FieldDescription
      version
      string

      Version is the version of the package

      name
      string

      Name is the metadata name of the global helm package

      PlatformOrWorkspaceAccessToken

      ProviderVersions (map[string]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/org/v2beta1.Versions)

      (Appears on: ChannelStatus)

      ProviderVersions is a particular set of versions to use for a provider The key of the provider relates to the cluster type (e.g. AKS, GKE, EKS)

      RBACRuleSource

      RBACRuleSource is an interface implemented by the various sources of RBAC rules in this API

      RoleRef

      (Appears on: WayfinderRoleBindingSpec, WorkspaceRoleBindingSpec)

      RoleRef defines a reference to a Wayfinder or Workspace role

      FieldDescription
      kind
      string

      Kind of object being referenced, for future compatibility. At this time, the only value used is WayfinderRole.

      name
      string

      Name of the object being referenced.

      namespace
      string

      Namespace of the referenced object (not applicable to WayfinderRole).

      StageSpec

      (Appears on: Stage)

      StageSpec defines the desired state of Stage

      FieldDescription
      displayName
      string

      DisplayName provides a user-friendly name for the stage

      description
      string

      Description provides a summary of this stage

      StageStatus

      (Appears on: Stage)

      StageStatus defines the observed state of Stage

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      Subject

      (Appears on: GroupSpec, IdentitySpec, WayfinderRoleBindingSpec, WorkspaceRoleBindingSpec, WorkspaceSpec)

      Subject defines a subject for group memberships and role bindings.

      FieldDescription
      kind
      SubjectKind

      Kind of subject being referenced.

      name
      string

      Name of the object being referenced.

      workspace
      WorkspaceKey

      Workspace is the workspace of the subject - only applicable to kind ‘WorkspaceAccessToken’

      SubjectKind (string)

      (Appears on: Subject)

      SubjectKind represents types of subject that Wayfinder can use

      ValueDescription

      "PlatformAccessToken"

      SubjectKindPlaformAccessToken is a Wayfinder-scoped access token

      "User"

      SubjectKindUser is a Wayfinder user account

      "WayfinderGroup"

      SubjectKindWayfinderGroup is a globally defined Wayfinder group

      "WorkspaceAccessToken"

      SubjectKindWorkspaceAccessToken is a Workspace-scoped access token

      "WorkspaceGroup"

      SubjectKindWorkspaceGroup is a group defined in a workspace

      UpdateBasicAuthIdentity

      UpdateBasicAuthIdentity defines the desired state of an update

      FieldDescription
      oldPassword
      string

      OldPassword is the user’s current password. Required if you are not a global Wayfinder admin.

      password
      string

      Password is a password associated to the user

      username
      string

      Username is the user you are update the credential for

      UpdateIDPIdentity

      UpdateIDPIdentity defines the desired state of an update

      FieldDescription
      IDToken
      string

      IDToken is the identity token from the provider

      UserSpec

      (Appears on: User)

      UserSpec defines the desired state of User

      FieldDescription
      username
      string

      Username is the userame or identity for this user - typically this would be an email address. It must be unique.

      disabled
      bool

      Disabled indicates if the user is disabled

      UserStatus

      (Appears on: User)

      UserStatus defines the observed state of User

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      Versions

      Versions are versions for a provider TODO: include other things that may need to be tied to a provider

      FieldDescription
      kubernetes
      string

      Kubernetes is the default version of Kubernetes for this channel. Where KubernetesByRegion is populated for the relevant region, that should be used in preference.

      kubernetesByRegion
      map[string]string

      KubernetesByRegion provides cloud provider region-specific versions of Kubernetes. On Azure and GCP, supported Kubernetes versions can vary between regions. If no value is populated here, the value in Kubernetes should be used instead.

      packages
      map[string]string

      Packages is a list of the packages versions on the channel

      WayfinderGroupStatus

      (Appears on: WayfinderGroup)

      WayfinderGroupStatus defines the status of a group

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WayfinderRoleBindingSpec

      (Appears on: WayfinderRoleBinding)

      WayfinderRoleBindingSpec defines the desired state of WayfinderRoleBinding Will create a ClusterPolicy with a role binding only

      FieldDescription
      roleRef
      RoleRef

      RoleRef is the role being bound

      subjects
      []Subject

      Subjects is the list of one or more subjects that this role is bound to

      WayfinderRoleBindingStatus

      (Appears on: WayfinderRoleBinding)

      WayfinderRoleBindingStatus defines the status of an WayfinderRoleBinding

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WayfinderRoleScope (string)

      WayfinderRoleScope defines the scope of a role - i.e. whether it applies across Wayfinder or to only those objects in a single workspace

      ValueDescription

      "Global"

      WayfinderRoleScopeGlobal provides Wayfinder-wide access to the specied resources

      "Workspace"

      WayfinderRoleScopeWorkspace provides access to the specified resources in a workspace

      WayfinderRoleSpec

      (Appears on: WayfinderRole)

      WayfinderRoleSpec defines a set of RBAC rules to Wayfinder objects

      FieldDescription
      description
      string

      Description is a human-readable description of the role Should describe what the role would provide access to when bound to a user/group/accesstoken

      rules
      []Kubernetes rbac/v1.PolicyRule

      Rules is rules

      WayfinderRoleStatus

      (Appears on: WayfinderRole)

      WayfinderRoleStatus defines the status of a WayfinderRole

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceGroupStatus

      (Appears on: WorkspaceGroup)

      WorkspaceGroupStatus defines the status of a group

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceInvitationSpec

      (Appears on: WorkspaceInvitation)

      WorkspaceInvitationSpec defines the desired state of a workspace invitation

      FieldDescription
      username
      string

      Username is the user being bound to the workspace

      workspace
      WorkspaceKey

      Workspace is the name of the workspace being invitied to

      WorkspaceInvitationStatus

      (Appears on: WorkspaceInvitation)

      WorkspaceInvitationStatus defines the observed state of a workspace invite

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceRoleBindingSpec

      (Appears on: WorkspaceRoleBinding)

      WorkspaceRoleBindingSpec defines the desired state of WorkspaceRoleBinding

      FieldDescription
      roleRef
      RoleRef

      RoleRef is the role being bound

      subjects
      []Subject

      Subjects is the list of one or more subjects that this role is bound to

      WorkspaceRoleBindingStatus

      (Appears on: WorkspaceRoleBinding)

      WorkspaceRoleBindingStatus defines the status of a WorkspaceRoleBinding

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceSpec

      (Appears on: Workspace)

      WorkspaceSpec defines the desired state of workspace

      FieldDescription
      key
      WorkspaceKey

      Key is the unique identifier for this workspace

      type
      WorkspaceType

      Type is an optional type for this workspace. If unspecified, ‘standard’ is assumed.

      summary
      string

      Summary is a short human-readable name for this workspace

      description
      string

      Description is an extended description for the workspace

      resourceNamespace
      string

      ResourceNamespace will be set by Wayfinder on creation and cannot be modified or defined by users. This is the namespace within Wayfinder in which this workspace’s resources will exist.

      owners
      []Subject

      Owners is the set of users who own this workspace (i.e. can control access to the workspace and its resources). If unpopulated on creation, Wayfinder will set this to the user who created the workspace.

      WorkspaceStatus

      (Appears on: Workspace)

      WorkspaceStatus defines the observed state of workspace

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      WorkspaceType (string)

      (Appears on: WorkspaceSpec)

      WorkspaceType identifies the type of a workspace

      ValueDescription

      "admin"

      WorkspaceTypeAdmin is for internal, Wayfinder managed workspaces used by the system. These can only be created by Wayfinder itself.

      "infrastructure"

      WorkspaceTypeInfrastructure identifies that this workspace is a container for infrastructure, for example to contain multi-tenant clusters allocated to multiple standard workspaces

      "standard"

      WorkspaceTypeStandard is the default workspace type for normal, application-team-oriented workspaces

      package.appvia.io/v2beta1

      Package v2beta1 contains API Schema definitions for the org API group

      Resource Types:

      Package

      Package is a package definition

      FieldDescription
      apiVersion
      string
      package.appvia.io/v2beta1
      kind
      string
      Package
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      PackageSpec
      dependencies
      []string

      Dependencies provides a list of dependent services which have to deployed before this package can be installed

      installNamespace
      string

      InstallNamespace is the location to install the package

      source
      ChartSource

      Source is used to define the source location of the chart and the revision which used to used to install

      selectors
      Kubernetes meta/v1.LabelSelector

      Selectors are the label matching selectors for where the package should be installed

      name
      string

      Name is the display name of the package

      summary
      string

      Summary provides short description as to use of the package

      values
      k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

      Values is a collection of values to injected into the chart when rendering the package into the clusters

      valuesFrom
      []ValuesFrom

      ValuesFrom is a optional collection of resources which are injected into the helm values before render

      userValues
      []UserValue

      UserValues is a collection of user values that are exposed by this package

      workloadIdentity
      WorkloadIdentity

      WorkloadIdentity is an optional request to create a workload identity

      releaseName
      string

      ReleaseName is the name of the release in the cluster

      version
      string

      Version is the semver of the package

      skipTests
      bool

      SkipTests will skip execution of any ‘helm test’ tests defined on the package.

      status
      PackageStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RoutingStatus
      RoutingStatus

      (Members of RoutingStatus are embedded into this type.)

      PackageRelease

      PackageRelease is a package definition

      FieldDescription
      apiVersion
      string
      package.appvia.io/v2beta1
      kind
      string
      PackageRelease
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      PackageReleaseSpec
      revision
      string

      Revision is revision of the package in which is associated to the release

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster this release is associated and intended to be installed on

      globalRef
      string

      GlobalRef is the name of the cloud package which is associated to the release

      packageRef
      string

      PackageRef is the name of the package within the workspace namespace that is associated to this release

      package
      PackageSpec

      Package contains all the package details which has been copied over from the package definition - this creates a local copy of the package as is used to reconcile the release

      status
      PackageReleaseStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      appliedValues
      k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

      AppliedValues is the rendered set of values for this package release (excluding any values derived from secrets)

      PackageUpdate

      PackageUpdate is the schema package version updates in Wayfinder

      FieldDescription
      apiVersion
      string
      package.appvia.io/v2beta1
      kind
      string
      PackageUpdate
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      PackageUpdateSpec
      UpdateSpec
      UpdateSpec

      (Members of UpdateSpec are embedded into this type.)

      packageToUpdate
      string

      PackageToUpdate is the name of the package to update on the owning cluster

      newVersion
      string

      NewVersion is the new package version to be released into the cluster

      options
      PackageUpdateOptions

      Options are the options for the package update

      status
      PackageUpdateStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      currentVersion
      string

      CurrentVersion is the version of the package currently applied. May be empty if no package release exists.

      startTime
      Kubernetes meta/v1.Time

      StartTime is the time the update was started Is used to estimate the percentage complete time

      estimatedPercentageComplete
      int

      EstimatedPercentageComplete is the estimated percentage complete of the update - Based on the time from StartTime and a test of actual updates

      Repository

      Repository is a package definition

      FieldDescription
      apiVersion
      string
      package.appvia.io/v2beta1
      kind
      string
      Repository
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      RepositorySpec
      selectors
      Kubernetes meta/v1.LabelSelector

      Selectors are the label matching selectors for where the package should be installed

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster this release is associated and intended to be installed on. Field is optional, but we gonna populate this down the stream when assigned to cluster

      globalRef
      string

      GlobalRef is the name of the cloud global repository which is associated to the repository

      packageRef
      string

      RepositoryRef is the name of the repository within the workspace namespace that is associated to this repository

      revision
      string

      Revision is revision of the package in which is associated to the release

      url
      string

      The Helm repository URL, a valid URL contains at least a protocol and host.

      secretRef
      Kubernetes core/v1.SecretReference
      (Optional)

      repository. For HTTP/S basic auth the secret must contain username and password fields. For TLS the secret must contain a certFile and keyFile, and/or caCert fields.

      interval
      string
      (Optional)

      The interval at which to check the upstream for updates.

      timeout
      string
      (Optional)

      The timeout of index downloading, defaults to 60s.

      suspend
      bool
      (Optional)

      This flag tells the controller to suspend the reconciliation of this source.

      status
      RepositoryStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RepositoryRelease

      RepositoryRelease is a package definition

      FieldDescription
      apiVersion
      string
      package.appvia.io/v2beta1
      kind
      string
      RepositoryRelease
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      RepositoryReleaseSpec
      revision
      string

      Revision is revision of the release in which is associated to the release

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster this release is associated and intended to be installed on

      globalRef
      string

      GlobalRef is the name of the cloud package which is associated to the release

      packageRef
      string

      GlobalRef is the name of the cloud release which is associated to the release

      repository
      RepositorySpec

      Release contains all the release details which has been copied over from the release definition - this creates a local copy of the release as is used to reconcile the release

      status
      RepositoryReleaseStatus

      reuse repository spec

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AWSWorkloadIdentityProviderDetails

      (Appears on: WorkloadIdentityProviderDetails)

      AWSWorkloadIdentityProviderDetails provides the specific parameters for AWS

      FieldDescription
      iamPolicies
      []string

      IAMPolicies defines a list of (additional) IAM policies to bind to the workload identity role It is assumed that these will exist in the target AWS account for the cluster, therefore use either built-in AWS-managed policies or make sure that your process for managing policies in your accounts will always ensure these policies exist in any account this package may be deployed into. For AWS-managed policies, specify the full ARN (e.g. arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess) For self-managed policies, specify the ARN without an account ID (e.g. arn:aws:iam:::policy/myorg-policy-s3-write)

      customIAMPolicy
      k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

      CustomIAMPolicy defines an additional dedicated IAM policy to create and bind to this workload identity.

      helmServiceAccountAnnotationsPaths
      []string

      helmServiceAccountAnnotationsPaths defines paths to the service account annotations parameter within the helm chart. AWS ManagedIdentity works based on ServiceAccounts annotations.

      AzureWorkloadIdentityProviderDetails

      (Appears on: WorkloadIdentityProviderDetails)

      AzureWorkloadIdentityProviderDetails provides the specific parameters for Azure

      FieldDescription
      helmPodLabelsPaths
      []string

      HelmPodLabelsPath defines paths to the podLabels parameter within the helm chart. Azure ManagedIdentity works based on Pod labels.

      helmPodSelector
      string

      HelmPodSelector defines the pod selector to use when creating the workload identity.

      ChartSource

      (Appears on: PackageSpec)

      ChartSource defines the location of the helm package

      FieldDescription
      git
      GitSource

      Git can be used to define the location of the helm chart in a git repository

      helm
      HelmSource

      Helm can be used to define a helm index as the source location of the chart to be installed

      GCPWorkloadIdentityProviderDetails

      (Appears on: WorkloadIdentityProviderDetails)

      GCPWorkloadIdentityProviderDetails provides the specific parameters for GCP

      FieldDescription
      helmServiceAccountAnnotationsPaths
      []string

      HelmServiceAccountAnnotationsPaths defines paths to the service account annotations parameter within the helm chart. GCP ManagedIdentity works based on ServiceAccounts annotations.

      GitSource

      (Appears on: ChartSource)

      GitSource defines the location of a chart in a git repository

      FieldDescription
      gitPullSecrets
      Kubernetes core/v1.SecretReference

      GitPullSecrets is a reference to any credentials used to pull the repository

      url
      string

      URL is the location of the git repository

      HelmSource

      (Appears on: ChartSource)

      HelmSource is used to the define the location of a chart in a helm repository

      FieldDescription
      name
      string

      Name is the name of the chart we wish to install

      url
      string

      URL is the url to the helm repository where the chart lives

      version
      string

      Version is the version of the chart that should be installed

      PackageReleaseSpec

      (Appears on: PackageRelease)

      PackageReleaseSpec defines the the desired status for an helm package

      FieldDescription
      revision
      string

      Revision is revision of the package in which is associated to the release

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster this release is associated and intended to be installed on

      globalRef
      string

      GlobalRef is the name of the cloud package which is associated to the release

      packageRef
      string

      PackageRef is the name of the package within the workspace namespace that is associated to this release

      package
      PackageSpec

      Package contains all the package details which has been copied over from the package definition - this creates a local copy of the package as is used to reconcile the release

      PackageReleaseStatus

      (Appears on: PackageRelease)

      PackageReleaseStatus defines the observed state of the package

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      appliedValues
      k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

      AppliedValues is the rendered set of values for this package release (excluding any values derived from secrets)

      PackageSpec

      (Appears on: Package, PackageReleaseSpec)

      PackageSpec defines a helm package

      FieldDescription
      dependencies
      []string

      Dependencies provides a list of dependent services which have to deployed before this package can be installed

      installNamespace
      string

      InstallNamespace is the location to install the package

      source
      ChartSource

      Source is used to define the source location of the chart and the revision which used to used to install

      selectors
      Kubernetes meta/v1.LabelSelector

      Selectors are the label matching selectors for where the package should be installed

      name
      string

      Name is the display name of the package

      summary
      string

      Summary provides short description as to use of the package

      values
      k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON

      Values is a collection of values to injected into the chart when rendering the package into the clusters

      valuesFrom
      []ValuesFrom

      ValuesFrom is a optional collection of resources which are injected into the helm values before render

      userValues
      []UserValue

      UserValues is a collection of user values that are exposed by this package

      workloadIdentity
      WorkloadIdentity

      WorkloadIdentity is an optional request to create a workload identity

      releaseName
      string

      ReleaseName is the name of the release in the cluster

      version
      string

      Version is the semver of the package

      skipTests
      bool

      SkipTests will skip execution of any ‘helm test’ tests defined on the package.

      PackageStatus

      (Appears on: Package)

      PackageStatus defines the observed state of the package

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RoutingStatus
      RoutingStatus

      (Members of RoutingStatus are embedded into this type.)

      PackageUpdateOptions

      (Appears on: PackageUpdateSpec)

      PackageUpdateOptions are the options for updating a package

      PackageUpdateSpec

      (Appears on: PackageUpdate)

      FieldDescription
      UpdateSpec
      UpdateSpec

      (Members of UpdateSpec are embedded into this type.)

      packageToUpdate
      string

      PackageToUpdate is the name of the package to update on the owning cluster

      newVersion
      string

      NewVersion is the new package version to be released into the cluster

      options
      PackageUpdateOptions

      Options are the options for the package update

      PackageUpdateStatus

      (Appears on: PackageUpdate)

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      currentVersion
      string

      CurrentVersion is the version of the package currently applied. May be empty if no package release exists.

      startTime
      Kubernetes meta/v1.Time

      StartTime is the time the update was started Is used to estimate the percentage complete time

      estimatedPercentageComplete
      int

      EstimatedPercentageComplete is the estimated percentage complete of the update - Based on the time from StartTime and a test of actual updates

      RepositoryReleaseSpec

      (Appears on: RepositoryRelease)

      RepositoryReleaseSpec defines the the desired status for an helm repository release

      FieldDescription
      revision
      string

      Revision is revision of the release in which is associated to the release

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster this release is associated and intended to be installed on

      globalRef
      string

      GlobalRef is the name of the cloud package which is associated to the release

      packageRef
      string

      GlobalRef is the name of the cloud release which is associated to the release

      repository
      RepositorySpec

      Release contains all the release details which has been copied over from the release definition - this creates a local copy of the release as is used to reconcile the release

      RepositoryReleaseStatus

      (Appears on: RepositoryRelease)

      RepositoryStatus defines the observed state of the repository

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RepositorySpec

      (Appears on: Repository, RepositoryReleaseSpec)

      RepositorySpec defines the the desired status for an helm repository

      FieldDescription
      selectors
      Kubernetes meta/v1.LabelSelector

      Selectors are the label matching selectors for where the package should be installed

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster this release is associated and intended to be installed on. Field is optional, but we gonna populate this down the stream when assigned to cluster

      globalRef
      string

      GlobalRef is the name of the cloud global repository which is associated to the repository

      packageRef
      string

      RepositoryRef is the name of the repository within the workspace namespace that is associated to this repository

      revision
      string

      Revision is revision of the package in which is associated to the release

      url
      string

      The Helm repository URL, a valid URL contains at least a protocol and host.

      secretRef
      Kubernetes core/v1.SecretReference
      (Optional)

      repository. For HTTP/S basic auth the secret must contain username and password fields. For TLS the secret must contain a certFile and keyFile, and/or caCert fields.

      interval
      string
      (Optional)

      The interval at which to check the upstream for updates.

      timeout
      string
      (Optional)

      The timeout of index downloading, defaults to 60s.

      suspend
      bool
      (Optional)

      This flag tells the controller to suspend the reconciliation of this source.

      RepositoryStatus

      (Appears on: Repository)

      RepositoryStatus defines the observed state of the package

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      UserValue

      (Appears on: PackageSpec)

      UserValue defines a value exposed to the user

      FieldDescription
      name
      string

      Name is the name of the value field

      description
      string

      Description is an explanation of value’s significance/usage

      value
      string

      Value is a representation of the value

      WorkloadIdentity

      (Appears on: PackageSpec)

      WorkloadIdentity defines values for the WorkloadIdentity that should be created

      FieldDescription
      clusterServiceAccount
      ClusterServiceAccount

      ClusterServiceAccount is the name and namespace of the service account which will use this identity in the target cluster. Required on AWS and GCP, optional (and unused) on Azure at this time.

      identityOnly
      bool

      IdentityOnly will create an identity associated with a cluster with no specific permissions Must specify Role=None if this is true. In AWS: - An IAM role is created and associated with a specific Kubernetes service account - no inline or attached policies are managed (post creation of the IAM role) - It is a “user” responsibility to attach policies to the IAM role In Azure: - The user defined managed identity is created - No role definitions or role assignments are created - It is a “user” responsibility to create relevant role assignments

      role
      WorkloadIdentityRole

      Role must be the name of a valid workload identity role known to Wayfinder

      roleParameters
      map[string]string

      RoleParameters are any parameters required for the specified role

      cloudResourceName
      string

      CloudResourceName specifies the name of the workload identity in the cloudaccount Can be left blank so that the name is derived from the cluster name + resource name

      providerDetails
      WorkloadIdentityProviderDetails

      ProviderDetails provides additional fields which can be used for cloud-provider specific data, such as a GCP billing account ID.

      WorkloadIdentityProviderDetails

      (Appears on: WorkloadIdentity)

      FieldDescription
      aws
      AWSWorkloadIdentityProviderDetails

      AWS holds parameters specific to AWS workload identity

      azure
      AzureWorkloadIdentityProviderDetails

      Azure holds parameters specific to Azure workload identity

      gcp
      GCPWorkloadIdentityProviderDetails

      GCP holds parameters specific to GCP workload identity

      policydelivery.appvia.io/v1alpha1

      Package v1alpha1 contains API Schema definitions for the policydelivery v1alpha1 API group

      Resource Types:

      AccessPolicy

      AccessPolicy represents a targeted policy

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      AccessPolicy
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AccessPolicySpec

      Spec is the specification of the access policy

      accessRoleRefs
      []string

      AccessRoleRefs is the set of AccessRoles (in this workspace) that this policy grants access to create AccessRoleBindings for. This is the ‘what’ exactly is granted access to.

      description
      string

      Description is a human-readable description of the policy Should describe what sort of function the policy provides (e.g. support for production clusters)

      groups
      []string

      Groups is the list of workspace groups that are permitted access by this access policy. This is the ‘who’ in the access question. At least one group or wayfinder group must be specified.

      wayfinderGroups
      []string

      WayfinderGroups is the list of Wayfinder groups that are permitted access by this access policy. This is the ‘who’ in the access question At least one group or wayfinder group must be specified.

      constraints
      Constraints

      Constraints are the collection of constraints which control access to the roles This is a combination of when and where

      subjectType
      string

      SubjectKind is the type of the subject for this policy

      status
      AccessPolicyStatus

      Status is the status of the access policy

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AccessRole

      AccessRole represents a set of Kubernetes RBAC rules that can use used for user access

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      AccessRole
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AccessRoleSpec

      Spec is the specification of the access role

      clusterScope
      bool

      ClusterScope indicates if the access role is cluster-wide or not will be used to validate if a AccessPolicyTarget is valid or not

      description
      string

      Description is a human-readable description of the role Should describe what the role would provide access to when bound to a user

      rules
      []Kubernetes rbac/v1.PolicyRule

      Rules is rules

      status
      AccessRoleStatus

      Status is the status of the access role

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AccessRoleBinding

      AccessRoleBinding represents actual access to a cluster for subjects

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      AccessRoleBinding
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      AccessRoleBindingSpec
      expiration
      Kubernetes meta/v1.Time

      Expiration is the expiration time for any policy to exist Omitting this will make the policy persistent

      accessRoleRef
      string

      AccessRoleRef is the reference to the AccessRole (in this namespace)

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster for this access Must be specified if NamespaceClaimRef is not set Must be specified if the reference role specified ClusterWide

      namespaceClaimRef
      string

      NamespaceClaimRef is the namespacesClaim this binding is valid for Will create a roleBinding for the namespace referenced Must be specified if the AccessRoleRef specifies ClusterScope=false Is an error if the ClusterScope=true

      subject
      Subject

      Subject is the user or access token that has this access in Wayfinder

      status
      AccessRoleBindingStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      ClusterPolicy

      ClusterPolicy represents a cluster targeted policy

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      ClusterPolicy
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      ClusterPolicySpec
      target
      ClusterPolicyTarget

      Target contains targeting information for this cluster policy

      policy
      PolicyProviderDetails

      Policy details

      status
      ClusterPolicyStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RoutingStatus
      RoutingStatus

      (Members of RoutingStatus are embedded into this type.)

      GlobalAccessPolicy

      GlobalAccessPolicy represents a Global Access Policy to define Shared Access Policies

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      GlobalAccessPolicy
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      GlobalAccessPolicySpec

      Spec is the specification of the global access policy

      accessPolicyTemplate
      AccessPolicySpec

      AccessPolicyTemplate is the spec of a resulting AccessPolicy

      workspaceSelector
      Kubernetes meta/v1.LabelSelector

      WorkspaceSelector is a selector for Workspaces that will get this template

      status
      GlobalAccessPolicyStatus

      Status is the status of the global access policy

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      GlobalAccessRole

      GlobalAccessRole represents a global set of Kubernetes RBAC rules that can use used for user access

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      GlobalAccessRole
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      GlobalAccessRoleSpec

      Spec is the specification of the global access role

      accessRoleTemplate
      AccessRoleSpec

      AccessRoleTemplate is the template for any AccessRole created

      workspaceSelector
      Kubernetes meta/v1.LabelSelector

      WorkspaceSelector is a selector for Workspaces that will get this template

      status
      GlobalAccessRoleStatus

      Status is the status of the global access roles

      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      GlobalClusterPolicy

      ClusterPolicy represents a cluster targeted policy

      FieldDescription
      apiVersion
      string
      policydelivery.appvia.io/v1alpha1
      kind
      string
      GlobalClusterPolicy
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      ClusterPolicySpec
      target
      ClusterPolicyTarget

      Target contains targeting information for this cluster policy

      policy
      PolicyProviderDetails

      Policy details

      status
      ClusterPolicyStatus
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RoutingStatus
      RoutingStatus

      (Members of RoutingStatus are embedded into this type.)

      AccessPolicySpec

      (Appears on: AccessPolicy, GlobalAccessPolicySpec)

      AccessPolicySpec defines the desired state of AccessPolicy

      FieldDescription
      accessRoleRefs
      []string

      AccessRoleRefs is the set of AccessRoles (in this workspace) that this policy grants access to create AccessRoleBindings for. This is the ‘what’ exactly is granted access to.

      description
      string

      Description is a human-readable description of the policy Should describe what sort of function the policy provides (e.g. support for production clusters)

      groups
      []string

      Groups is the list of workspace groups that are permitted access by this access policy. This is the ‘who’ in the access question. At least one group or wayfinder group must be specified.

      wayfinderGroups
      []string

      WayfinderGroups is the list of Wayfinder groups that are permitted access by this access policy. This is the ‘who’ in the access question At least one group or wayfinder group must be specified.

      constraints
      Constraints

      Constraints are the collection of constraints which control access to the roles This is a combination of when and where

      subjectType
      string

      SubjectKind is the type of the subject for this policy

      AccessPolicyStatus

      (Appears on: AccessPolicy)

      AccessPolicyStatus defines the status of an AccessPolicy

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AccessRoleBindingSpec

      (Appears on: AccessRoleBinding)

      AccessRoleBindingSpec defines the desired state of AccessRoleBinding Will create a ClusterPolicy with a role binding only

      FieldDescription
      expiration
      Kubernetes meta/v1.Time

      Expiration is the expiration time for any policy to exist Omitting this will make the policy persistent

      accessRoleRef
      string

      AccessRoleRef is the reference to the AccessRole (in this namespace)

      clusterRef
      Ownership

      ClusterRef provides reference to the cluster for this access Must be specified if NamespaceClaimRef is not set Must be specified if the reference role specified ClusterWide

      namespaceClaimRef
      string

      NamespaceClaimRef is the namespacesClaim this binding is valid for Will create a roleBinding for the namespace referenced Must be specified if the AccessRoleRef specifies ClusterScope=false Is an error if the ClusterScope=true

      subject
      Subject

      Subject is the user or access token that has this access in Wayfinder

      AccessRoleBindingStatus

      (Appears on: AccessRoleBinding)

      AccessRoleBindingStatus defines the status of an AccessRoleBinding

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      AccessRoleSpec

      (Appears on: AccessRole, GlobalAccessRoleSpec)

      AccessRoleSpec defines the desired state of AccessRole

      FieldDescription
      clusterScope
      bool

      ClusterScope indicates if the access role is cluster-wide or not will be used to validate if a AccessPolicyTarget is valid or not

      description
      string

      Description is a human-readable description of the role Should describe what the role would provide access to when bound to a user

      rules
      []Kubernetes rbac/v1.PolicyRule

      Rules is rules

      AccessRoleStatus

      (Appears on: AccessRole)

      AccessPolicyStatus defines the status of an AccessPolicy

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      ClusterConstraint

      (Appears on: Constraints)

      ClusterConstraint places a constraint around the cluster

      FieldDescription
      allowed
      Kubernetes meta/v1.LabelSelector

      Allowed is a collection of clusters permitted access on the role

      denied
      Kubernetes meta/v1.LabelSelector

      Denied provides the means to denied one or more clusters from the role

      ClusterPolicySpec

      (Appears on: ClusterPolicy, GlobalClusterPolicy)

      ClusterPolicySpec defines the specification of a policy in a cluster or namespace

      FieldDescription
      target
      ClusterPolicyTarget

      Target contains targeting information for this cluster policy

      policy
      PolicyProviderDetails

      Policy details

      ClusterPolicyStatus

      (Appears on: ClusterPolicy, GlobalClusterPolicy)

      ClusterPolicyStatus defines the status of a cluster policy

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      RoutingStatus
      RoutingStatus

      (Members of RoutingStatus are embedded into this type.)

      ClusterPolicyTarget

      (Appears on: ClusterPolicySpec)

      ClusterPolicyTarget is the targeting specification for this cluster policy Not convinced this is required as a PolicyBinding can create one of these per cluster or namespace

      FieldDescription
      cluster
      Kubernetes meta/v1.LabelSelector

      Cluster specifies labels for clusters

      namespace
      Kubernetes meta/v1.LabelSelector

      Namespace specifies labels for namespaces

      Constraints

      (Appears on: AccessPolicySpec)

      Constraints defines a constraint to assuming access to an AccessRole aka creating an AccessRoleBinding

      FieldDescription
      clusters
      ClusterConstraint

      Clusters constrains access to matching clusters

      namespaces
      NamespaceConstraint

      Namespaces constraints access to matching namespaces

      days
      DaysOfWeekConstraint

      Days constrains access to the days of week

      ttl
      Kubernetes meta/v1.Duration

      TTL is the length of a session. A user’s access will be revoked after this amount of time.

      networks
      NetworkConstraint

      Networks allows defines one of more networks from which the user assuming the role can come from

      time
      TimeConstraint

      Time provides a time of day constraint when assuming the policy. The assumption must occur within the alloted time frame to assume the role

      DaysOfWeekConstraint

      (Appears on: Constraints)

      DaysOfWeekConstraint places a constraint on the day of week when the role can be assumed

      FieldDescription
      allowed
      []WeekDay

      Allowed are the days permitted in access These are the values from the Weekday type .String() method

      denied
      []WeekDay

      Denied is a collection of days which are not permitted to access the role

      GlobalAccessPolicySpec

      (Appears on: GlobalAccessPolicy)

      GlobalAccessPolicySpec defines the desired state of a GlobalAccessPolicy

      FieldDescription
      accessPolicyTemplate
      AccessPolicySpec

      AccessPolicyTemplate is the spec of a resulting AccessPolicy

      workspaceSelector
      Kubernetes meta/v1.LabelSelector

      WorkspaceSelector is a selector for Workspaces that will get this template

      GlobalAccessPolicyStatus

      (Appears on: GlobalAccessPolicy)

      GlobalAccessPolicyStatus defines the status of a GlobalAccessPolicy

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      GlobalAccessRoleSpec

      (Appears on: GlobalAccessRole)

      GlobalAccessRoleSpec defines the Kubernetes RBAC rules for user access to clusters across all workspaces Defines the rules for which workspaces will get cluster access role updates

      FieldDescription
      accessRoleTemplate
      AccessRoleSpec

      AccessRoleTemplate is the template for any AccessRole created

      workspaceSelector
      Kubernetes meta/v1.LabelSelector

      WorkspaceSelector is a selector for Workspaces that will get this template

      GlobalAccessRoleStatus

      (Appears on: GlobalAccessRole)

      GlobalAccessRoleStatus defines the status of a GlobalAccessRole

      FieldDescription
      CommonStatus
      CommonStatus

      (Members of CommonStatus are embedded into this type.)

      GlobalOrScopedAccessPolicy

      GlobalOrScopedAccessPolicy represents either type of access policy in a consistent way

      GlobalOrScopedAccessRole

      GlobalOrScopedAccessRole represents either type of access role in a consistent way

      GlobalOrScopedClusterPolicy

      KubeRBACParameters

      (Appears on: PolicyProviderDetails)

      KubeRBACParameters is the parameters for

      FieldDescription
      KubeRBACParametersDeprecated
      KubeRBACParametersDeprecated

      (Members of KubeRBACParametersDeprecated are embedded into this type.)

      rules
      []Kubernetes rbac/v1.PolicyRule

      Rules is rules Leave blank to specify only a binding is to be created

      subjects
      []Kubernetes rbac/v1.Subject

      Subjects / principles who the rules apply to - user - group - serviceaccount Note only a service account can specify the namespace

      roleRef
      Kubernetes rbac/v1.RoleRef

      RoleRef is a reference to the Role or ClusterRole within the target cluster - must exist if no rules are specified

      clusterScoped
      bool

      ClusterScoped specifies whether the create role/bindings should be cluster scoped

      KubeRBACParametersDeprecated

      (Appears on: KubeRBACParameters)

      FieldDescription
      roleNameOverride
      string

      RoleNameOverride is the name of the Role or ClusterRole if different from the clusterpolicy name - useful when creating just a role binding or referencing a clusterwide role - must be specified when ClusterWideRole is set to true

      clusterScopedRoleOverride
      bool

      ClusterScopedRoleOverride specifies the role referenced by the RoleBinding is a ClusterRole - specify true to override the default when targeting a namespaced role / role binding - ignored when targeting a ClusterRole

      roleBindingNameOverride
      string

      RoleBindingOverrideName is the name of the RoleBinding or ClusterRoleBinding if different from the clusterpolicy name Leave blank to have it derived from the name of the clusterpolicy name Specify a unique name depending on the subject and role combination - useful when creating just a role binding or referencing a clusterwide role kubebuilder:validation:Optional

      KyvernoPolicySpec

      (Appears on: PolicyProviderDetails)

      FieldDescription
      rules
      []github.com/appvia/wayfinder/server/policydelivery/extapis/kyverno/v1.Rule

      Rules is a list of Rule instances. A Policy contains multiple rules and each rule can validate, mutate, or generate resources.

      applyRules
      github.com/appvia/wayfinder/server/policydelivery/extapis/kyverno/v1.ApplyRulesType
      (Optional)

      ApplyRules controls how rules in a policy are applied. Rule are processed in the order of declaration. When set to One processing stops after a rule has been applied i.e. the rule matches and results in a pass, fail, or error. When set to All all rules in the policy are processed. The default is All.

      failurePolicy
      github.com/appvia/wayfinder/server/policydelivery/extapis/kyverno/v1.FailurePolicyType
      (Optional)

      FailurePolicy defines how unexpected policy errors and webhook response timeout errors are handled. Rules within the same policy share the same failure behavior. This field should not be accessed directly, instead GetFailurePolicy() should be used. Allowed values are Ignore or Fail. Defaults to Fail.

      validationFailureAction
      github.com/appvia/wayfinder/server/policydelivery/extapis/kyverno/v1.ValidationFailureAction
      (Optional)

      ValidationFailureAction defines if a validation policy rule violation should block the admission review request (enforce), or allow (audit) the admission review request and report an error in a policy report. Optional. Allowed values are audit or enforce. The default value is “Audit”.

      validationFailureActionOverrides
      []github.com/appvia/wayfinder/server/policydelivery/extapis/kyverno/v1.ValidationFailureActionOverride
      (Optional)

      ValidationFailureActionOverrides is a Cluster Policy attribute that specifies ValidationFailureAction namespace-wise. It overrides ValidationFailureAction for the specified namespaces.

      background
      bool
      (Optional)

      Background controls if rules are applied to existing resources during a background scan. Optional. Default value is “true”. The value must be set to “false” if the policy rule uses variables that are only available in the admission review request (e.g. user name).

      schemaValidation
      bool
      (Optional)

      SchemaValidation skips validation checks for policies as well as patched resources. Optional. The default value is set to “true”, it must be set to “false” to disable the validation checks.

      webhookTimeoutSeconds
      int32

      WebhookTimeoutSeconds specifies the maximum time in seconds allowed to apply this policy. After the configured time expires, the admission request may fail, or may simply ignore the policy results, based on the failure policy. The default timeout is 10s, the value must be between 1 and 30 seconds.

      mutateExistingOnPolicyUpdate
      bool
      (Optional)

      MutateExistingOnPolicyUpdate controls if a mutateExisting policy is applied on policy events. Default value is “false”.

      generateExistingOnPolicyUpdate
      bool
      (Optional)

      GenerateExistingOnPolicyUpdate controls whether to trigger generate rule in existing resources If is set to “true” generate rule will be triggered and applied to existing matched resources. Defaults to “false” if not specified.

      NamespaceConstraint

      (Appears on: Constraints)

      NamespaceConstraint places a constraint around the namespaces on clusters

      FieldDescription
      allowed
      Kubernetes meta/v1.LabelSelector

      Allowed is a collection of namespaces permitted access to the role

      denied
      Kubernetes meta/v1.LabelSelector

      Denied provides the means to denied one or more namespaces from the role

      NetworkConstraint

      (Appears on: Constraints)

      NetworkConstraint provides a collection of network ranges which the user can come from

      FieldDescription
      allowed
      []string

      Allowed is a collection of network which they must originate from

      denied
      []string

      Denied is a collection of networks cidrs which will be denied regardless

      PolicyProviderDetails

      (Appears on: ClusterPolicySpec)

      PolicyProviderDetails

      FieldDescription
      type
      PolicyType

      PolicyType is the specific type of policy

      kuberbac
      KubeRBACParameters

      KubeRBAC holds the kubernetes rbac details

      kyverno
      KyvernoPolicySpec

      Kyverno holds the spec for a kyverno policy

      PolicyType (string)

      (Appears on: PolicyProviderDetails)

      PolicyType represents the concrete type of a policy to provide

      ValueDescription

      "KubeRBAC"

      PolicyTypeKubeRBAC is for kubernetes rbac

      "Kyverno"

      PolicyTypeKyverno is for kyverno policies

      StageConstraint

      StageConstraint places a further constraint around which clusters can be accessed

      FieldDescription
      allowed
      []string

      Allowed are the stages the clusters the access is allowed to be assumed on

      denied
      []string

      Denied are the stages the clusters the access is NOT allowed to be assumed on

      Subject

      (Appears on: AccessRoleBindingSpec)

      Subject defines a subject for AccessPolicies / AccessRoleBindings etc.

      FieldDescription
      kind
      string

      Kind of object being referenced. Initially supported values include “User”, “AccessToken”, “WayfinderGroup” and “WorkspaceGroup”

      name
      string

      Name of the object being referenced.

      workspace
      WorkspaceKey

      Workspace is the workspace of the subject - only applicable to kind ‘AccessToken’

      SubjectKind (string)

      SubjectKind represents types of subject that Wayfinder can use

      TimeConstraint

      (Appears on: Constraints)

      TimeConstraint provides a control around the time a user can assume one of more roles in wayfinder

      FieldDescription
      from
      string

      Before indicates nothing before this time can access the AccessRole

      to
      string

      After indicate the nothing after this time access the role

      WeekDay (string)

      (Appears on: DaysOfWeekConstraint)

      WeekDay

      security.appvia.io/v1alpha1

      Package v1alpha1 contains API Schema definitions for the security v1alpha1 API group

      Resource Types:

      SecurityOverview

      SecurityOverview contains a report about the current state of Wayfinder or a workspace

      FieldDescription
      apiVersion
      string
      security.appvia.io/v1alpha1
      kind
      string
      SecurityOverview
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      SecurityOverviewSpec
      workspace
      WorkspaceKey

      Workspace will be populated with the workspace key if this report is about a workspace, else unpopulated for a report for the whole of Wayfinder

      openIssueCounts
      map[github.com/appvia/wayfinder/tmpcrdref/pkg/apis/security/v1alpha1.RuleStatus]uint64

      OpenIssueCounts informs how many issues of each rule status exist currently

      resources
      []SecurityResourceOverview

      Resources contains summaries of the open issues for each resource

      SecurityRule

      SecurityRule contains the definition of a security rule

      FieldDescription
      apiVersion
      string
      security.appvia.io/v1alpha1
      kind
      string
      SecurityRule
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      SecurityRuleSpec
      code
      string

      Code is the unique identifier of this rule

      name
      string

      Name is the human-readable name of this rule

      description
      string

      Description is the markdown-formatted extended description of this rule.

      appliesTo
      []string

      AppliesTo is the list of resource types (e.g. Plan, Cluster) that this rule is applicable for

      SecurityScanResult

      SecurityScanResult contains the result of a scan against all registered rules

      FieldDescription
      apiVersion
      string
      security.appvia.io/v1alpha1
      kind
      string
      SecurityScanResult
      metadata
      Kubernetes meta/v1.ObjectMeta
      Refer to the Kubernetes API documentation for the fields of the metadata field.
      spec
      SecurityScanResultSpec
      id
      uint64

      ID is the ID of this scan result in the data store

      resource
      Ownership

      Resource is a reference to the group/version/kind/namespace/name of the resource scanned by this scan

      owningWorkspace
      string

      OwningWorkspace is the name of the workspace that owns this resource, will be empty if it is a non-workspace resource.

      checkedAt
      Kubernetes meta/v1.Time

      CheckedAt is the timestamp this result was determined

      archivedAt
      Kubernetes meta/v1.Time

      ArchivedAt is the timestamp this result was superceded by a later scan - if ArchivedAt.IsZero() is true this is the most recent scan.

      overallStatus
      RuleStatus

      OverallStatus indicates the worst-case status of the rules checked in this scan

      results
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/security/v1alpha1.SecurityScanRuleResult

      Results are the underlying results of the individual rules run as part of this scan

      RuleStatus (string)

      (Appears on: SecurityResourceOverview, SecurityScanResultSpec, SecurityScanRuleResult)

      RuleStatus values represent the possible status of compliance with a security rule.

      ValueDescription

      "Compliant"

      Compliant indicates that this target is fully compliant with the specified rule.

      "Failure"

      Failure indicates that this target is uncompliant in a significant way and should be mitigated. This would typically be used for rules where compliance is considered to be vital to a well-run cluster.

      "Warning"

      Warning indicates that this target is uncompliant in such a way that consideration should be made as to whether this should be remediated. This would typically be used for best practice considerations, where not being compliant isn’t necessarily a critical issue.

      SecurityOverviewSpec

      (Appears on: SecurityOverview)

      SecurityOverviewSpec shows the overall current security posture of Wayfinder or a workspace

      FieldDescription
      workspace
      WorkspaceKey

      Workspace will be populated with the workspace key if this report is about a workspace, else unpopulated for a report for the whole of Wayfinder

      openIssueCounts
      map[github.com/appvia/wayfinder/tmpcrdref/pkg/apis/security/v1alpha1.RuleStatus]uint64

      OpenIssueCounts informs how many issues of each rule status exist currently

      resources
      []SecurityResourceOverview

      Resources contains summaries of the open issues for each resource

      SecurityResourceOverview

      (Appears on: SecurityOverviewSpec)

      SecurityResourceOverview provides an overview of the open issue counts for a resource

      FieldDescription
      resource
      Ownership

      Resource is a reference to the group/version/kind/namespace/name of the resource scanned by this scan

      lastChecked
      Kubernetes meta/v1.Time

      LastChecked is the timestamp this resource was last scanned

      overallStatus
      RuleStatus

      OverallStatus is the overall status of this resource

      openIssueCounts
      map[github.com/appvia/wayfinder/tmpcrdref/pkg/apis/security/v1alpha1.RuleStatus]uint64

      OpenIssueCounts is the summary of open issues for this resource

      SecurityRuleSpec

      (Appears on: SecurityRule)

      SecurityRuleSpec specifies the details of a security rule

      FieldDescription
      code
      string

      Code is the unique identifier of this rule

      name
      string

      Name is the human-readable name of this rule

      description
      string

      Description is the markdown-formatted extended description of this rule.

      appliesTo
      []string

      AppliesTo is the list of resource types (e.g. Plan, Cluster) that this rule is applicable for

      SecurityScanResultSpec

      (Appears on: SecurityScanResult)

      SecurityScanResultSpec shows the overall result of a scan against all registered rules

      FieldDescription
      id
      uint64

      ID is the ID of this scan result in the data store

      resource
      Ownership

      Resource is a reference to the group/version/kind/namespace/name of the resource scanned by this scan

      owningWorkspace
      string

      OwningWorkspace is the name of the workspace that owns this resource, will be empty if it is a non-workspace resource.

      checkedAt
      Kubernetes meta/v1.Time

      CheckedAt is the timestamp this result was determined

      archivedAt
      Kubernetes meta/v1.Time

      ArchivedAt is the timestamp this result was superceded by a later scan - if ArchivedAt.IsZero() is true this is the most recent scan.

      overallStatus
      RuleStatus

      OverallStatus indicates the worst-case status of the rules checked in this scan

      results
      []*github.com/appvia/wayfinder/tmpcrdref/pkg/apis/security/v1alpha1.SecurityScanRuleResult

      Results are the underlying results of the individual rules run as part of this scan

      SecurityScanRuleResult

      SecurityScanRuleResult represents the compliance status of a target with respect to a specific security rule.

      FieldDescription
      ruleCode
      string

      RuleCode indicates the rule that this result relates to

      status
      RuleStatus

      Status indicates the compliance of the target with this rule

      message
      string

      Message provides additional information about the status of this rule on this target, if applicable

      checkedAt
      Kubernetes meta/v1.Time

      CheckedAt is the timestamp this result was determined

      This page was automatically generated with gen-crd-api-reference-docs