app.appvia.io/v2beta1
Package v2beta1 contains API Schema definitions for the App API group
Exported Resource Types
AppComponent
Component represents an application you are planning to use Wayfinder to serve environments for.
Field | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | app.appvia.io/v2beta1 | ||||||||||||||||
kind | AppComponent | ||||||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||||||
spec AppComponentSpec |
| ||||||||||||||||
status AppComponentStatus |
|
AppEnv
AppEnv represents a deployable environment for an application - i.e. a namespace for the application’s usage.
Field | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | app.appvia.io/v2beta1 | ||||||||||||||||||||||||
kind | AppEnv | ||||||||||||||||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||||||||||||||||
spec AppEnvSpec |
| ||||||||||||||||||||||||
status AppEnvStatus |
|
Application
Application represents an application you are planning to use Wayfinder to serve environments for.
Field | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
apiVersion | app.appvia.io/v2beta1 | ||||||||||
kind | Application | ||||||||||
metadata Kubernetes meta/v1.ObjectMeta | Refer to the Kubernetes API documentation for the fields of the metadata field. | ||||||||||
spec ApplicationSpec |
| ||||||||||
status ApplicationStatus |
|
Internal Resource Types
- AppComponentCloudResource
- AppComponentCloudResourceVar
- AppComponentContainer
- AppComponentContainerExpose
- AppComponentSpec
- AppComponentStatus
- AppComponentType
- AppEnvCloudResourceStatus
- AppEnvDeployedComponentStatus
- AppEnvDeploymentStatus
- AppEnvHostEnv
- AppEnvPodStatus
- AppEnvSpec
- AppEnvStatus
- AppEnvVar
- AppEnvVars
- ApplicationComponent
- ApplicationComponentCloudResource
- ApplicationComponentContainer
- ApplicationComponentType
- ApplicationDeploymentRequest
- ApplicationSpec
- ApplicationStatus
- ComponentSecurityContext
- Container
- ContainerEnvVariable
- ContainerPort
- ContainerSecurityContext
- IngressClass
- VariableFromAppEnv
- VariableFromCloudResource
- VariableFromSecret
AppComponentCloudResource
(Appears on: AppComponentSpec)
AppComponentCloudResource defines the specification of a dependency component.
Field | Description |
---|---|
plan string | Plan identifies the cloud resource plan to use for this cloud resource |
planVersion string | PlanVersion is the version of 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. |
variablesFrom []AppComponentCloudResourceVar | VariablesFrom allows variables to be overwritten from other sources, such as AppEnv vars. |
AppComponentCloudResourceVar
(Appears on: AppComponentCloudResource)
Field | Description |
---|---|
name string | Name is the name of the variable in the cloud resource variables to overwrite. |
fromAppEnv VariableFromAppEnv | FromAppEnv gets the value from a named variable on the appenv being deployed to |
AppComponentContainer
(Appears on: AppComponentSpec)
AppComponentContainer defines the containers a values to be applied to them
Field | Description |
---|---|
deploymentAnnotations map[string]string | DeploymentAnnotations are the annotations to apply to the deployment manifest specifically |
expose AppComponentContainerExpose | 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) |
replicas int | Replicas defines the number of pods to be created, only used if Type is Container |
securityContext ComponentSecurityContext | SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field. |
imagePullSecrets []Kubernetes core/v1.LocalObjectReference | ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling down images |
containers []Container | Containers defines the settings for a container component, required if Type is Container |
AppComponentContainerExpose
(Appears on: AppComponentContainer)
AppComponentContainerExpose defines which container is accessible externally
Field | Description |
---|---|
container string | Container is the name of the container to expose |
port int32 | Port is the port of the container to expose |
AppComponentSpec
(Appears on: AppComponent)
AppComponentSpec defines the specification of the app
Field | Description |
---|---|
name string | Name is the unique name for this component within the application. |
application string | Application is the name of the application the component is a part of |
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 AppComponentType | Type is the component type |
container AppComponentContainer | Container defines the settings for a container component, required if Type is Container |
cloudResource AppComponentCloudResource | CloudResource defines the settings for a cloud resource component, required if Type is CloudResource |
labels map[string]string | Labels are the labels to apply to all generated manifests |
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. |
AppComponentStatus
(Appears on: AppComponent)
AppComponentStatus defines the status of an application
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
AppComponentType
(string
alias)
(Appears on: AppComponentSpec, AppEnvDeployedComponentStatus)
AppComponentType defines the type of a component
Value | Description |
---|---|
"CloudResource" | AppComponentTypeCloudResource 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" | AppComponentTypeContainer defines a component served by a single container, typically this would be for your own application components. |
"OwnManifests" | AppComponentTypeOwnManifests 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. |
AppEnvCloudResourceStatus
(Appears on: AppEnvDeployedComponentStatus)
Field | Description |
---|---|
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
Field | Description |
---|---|
component string | Component identifies which component this status is about. |
componentType AppComponentType | 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)
Field | Description |
---|---|
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 |
AppEnvHostEnv
(Appears on: AppEnvStatus)
Field | Description |
---|---|
cloudAccessConfigRef CloudAccessConfigRef | CloudAccessConfigRef is a reference to the cloud access config that the host cluster for this environment is using. |
accountIdentifier string | AccountIdentifier is the identifier of the cloud account/project/subscription in which the cluster hosting this environment is located. |
namespaceClaimRef NamespaceClaimRef | NamespaceClaimRef is a reference to the namespace claim for this environment |
clusterRef ClusterRef | ClusterRef is a reference to the cluster hosting this environment |
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. |
AppEnvPodStatus
(Appears on: AppEnvDeployedComponentStatus)
AppEnvPodStatus is a cut-down version of a full pod status
Field | Description |
---|---|
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
Field | Description |
---|---|
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. |
cloudAccessConfigRef CloudAccessConfigRef | CloudAccessConfigRef is a reference to the cloud access configuration to use when building the cluster Deprecated: Only new AppEnvs with ClusterRef are now supported. |
plan string | Plan is the name of the plan to use to build a new cluster for this environment. Deprecated: Use ClusterRef instead. |
region string | Region is the cloud region. Deprecated: The region was only used for cluster provisioning, which is also deprecated. |
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. |
vars AppEnvVars | Vars is a set of variables specific to this app environment. These variables can be used in container component environment variables (see AppComponent spec.container.containers[].env) and cloud resource component input variables (see AppComponent spec.cloudResource.envVars) |
AppEnvStatus
(Appears on: AppEnv)
AppEnvStatus defines the status of an application environment
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
hostEnv AppEnvHostEnv | HostEnv provides details about where this app env is hosted |
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. |
AppEnvVar
Field | Description |
---|---|
name string | Name is the name of this variable, used to reference it in app component definitions. |
value string | Value is the value of the variable |
AppEnvVars
([]github.com/appvia/wayfinder/tmpcrdref/pkg/apis/app/v2beta1.AppEnvVar
alias)
(Appears on: AppEnvSpec)
ApplicationComponent
(Appears on: ApplicationSpec)
ApplicationComponent defines a component of an application
Field | Description |
---|---|
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.
Field | Description |
---|---|
plan string | Plan identifies the cloud resource plan to use for this cloud resource |
planVersion string | PlanVersion is the version of 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
Field | Description |
---|---|
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
alias)
(Appears on: ApplicationComponent)
ApplicationComponentType defines the type of a component
Value | Description |
---|---|
"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. |
ApplicationDeploymentRequest
ApplicationDeploymentRequest describes a desire to generate some manifests or do a deployment for the specified application environment. This should be posted to the ‘deploy’, ‘eject’ or ‘prepare’ subresource of the application you wish to operate on.
Field | Description |
---|---|
appEnv string | AppEnv is the name of the application environment |
components []string | Components is the names of the components that should be returns |
imageTag string | ImageTag to use for all components, unless overridden by an entry in Images or ImageTags |
images map[string]string | Images is an optional set of image overrides for the components being deployed. If no image is specified here, the default image from the component definition will be used. |
componentImageTags map[string]string | ImageTags is an optional set of image tag overrides for the components being deployed. If no image tag is specified here (and no entry is provided in Images), the default image from the component definition will be used. |
componentContainerImages map[string]map[string]string | ComponentContainerImages is an optional list of images to be mapped to the named container |
componentContainerTags map[string]map[string]string | ComponentContainerTags is an optional list of tags to be mapped to the named container |
force bool | Force runs the patch with force to override conflicts |
remove bool | Remove causes the deployment to remove all resources from the manifest instead of deploying them. |
ApplicationSpec
(Appears on: Application)
ApplicationSpec defines the specification of the app
Field | Description |
---|---|
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 | DEPRECATED: 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
Field | Description |
---|---|
CommonStatus CommonStatus | (Members of CommonStatus are embedded into this type.) |
ComponentSecurityContext
(Appears on: AppComponentContainer)
Field | Description |
---|---|
fsGroup int64 | FSGroup is a special supplemental group that applies to all containers in a pod. If unset, Wayfinder will provide a default non-root FS group. |
Container
(Appears on: AppComponentContainer)
ComponentContainer defines the specification of a container component
Field | Description |
---|---|
name string | Name is a human readable name for the container |
image string | Image is the fully-specified container image to use for this component |
ports []ContainerPort | Ports are the ports this component exposes to other components or for external traffic |
env []ContainerEnvVariable | Env is a set of environment variables to expose in this container |
command []string | Command defines a command |
args []string | Args defines the args of a command |
securityContext ContainerSecurityContext | SecurityContext defines the security context of the container |
ContainerEnvVariable
(Appears on: ApplicationComponentContainer, Container)
ContainerEnvVariable defines environment variables for containers
Field | Description |
---|---|
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 |
fromSecret VariableFromSecret | FromSecret gets the value from a secret |
fromAppEnv VariableFromAppEnv | FromAppEnv gets the value from a named variable on the appenv being deployed to |
ContainerPort
(Appears on: Container)
ContainerPort extends the v1.ContainerPort to indicate whether the container port should be exposed on the Service
Field | Description |
---|---|
ContainerPort Kubernetes core/v1.ContainerPort | (Members of ContainerPort are embedded into this type.) |
expose bool | Expose defines whether the port is exposed on the service |
ContainerSecurityContext
(Appears on: Container)
Field | Description |
---|---|
capabilities Kubernetes core/v1.Capabilities | Capabilities describes the Linux capabilities that should be added or removed from the container. If this field is omitted, Wayfinder will explicitly set the capabilities to drop all. |
runAsNonRoot bool | RunAsNonRoot indicates that the container must run as a non-root user. If this is unspecified Wayfinder defaults it to true. If unset or set to true Kubernetes will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If set explicitly to false, no such validation will be performed, allowing the container to run as root. Setting this to false will fail on deployment if ‘Restricted’ pod security standard is enforced. |
runAsUser int64 | RunAsUser is the UID to run the entrypoint of the container process. If unset, Wayfinder will provide a default non-root UID. If you need to run as root, you must set RunAsNonRoot to false and RunAsUser to 0. Setting this to 0 will fail on deployment if ‘Restricted’ pod security standard is enforced. |
runAsGroup int64 | The GID to run the entrypoint of the container process. If unset, Wayfinder will provide a default non-root GID. If you need to run as root, you must set RunAsNonRoot to false and RunAsGroup to 0. Setting this to 0 will fail on deployment if ‘Restricted’ pod security standard is enforced. |
IngressClass
(Appears on: AppEnvStatus)
Field | Description |
---|---|
class string | Class is the name of the ingress class |
namespace string | Namespace is the namespace the ingress controller is in |
VariableFromAppEnv
(Appears on: AppComponentCloudResourceVar, ContainerEnvVariable)
Field | Description |
---|---|
name string | Name is the name of variable on the appenv |
default string | Default is a default value to use if the appenv does not define this variable. If this is unspecified, deploying to an appenv will cause a validation error if the appenv does not define a value for this variable. |
VariableFromCloudResource
(Appears on: ContainerEnvVariable)
Field | Description |
---|---|
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 |
VariableFromSecret
(Appears on: ContainerEnvVariable)
Field | Description |
---|---|
name string | Name is the name of the secret |
key string | Key is the key in the secret |