# Multicluster and Verrazzano Project

Packages:

## clusters.verrazzano.io/v1alpha1

Resource Types:

### MultiClusterApplicationConfiguration

MultiClusterApplicationConfiguration specifies the multicluster application API.

Field Description
apiVersion
string
 clusters.verrazzano.io/v1alpha1 
kind
string
MultiClusterApplicationConfiguration
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
MultiClusterApplicationConfigurationSpec

The desired state of a multicluster application resource.

 placement Placement Clusters in which the application is to be created. secrets []string (Optional) List of secrets used by the application. These secrets must be created in the application’s namespace before deploying a MultiClusterApplicationConfiguration resource. template ApplicationConfigurationTemplate Template containing the metadata and spec for an OAM applicationConfiguration resource.
status
MultiClusterResourceStatus

The observed state of a multicluster application resource.

### MultiClusterComponent

MultiClusterComponent specifies the MultiCluster Component API.

Field Description
apiVersion
string
 clusters.verrazzano.io/v1alpha1 
kind
string
MultiClusterComponent
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
MultiClusterComponentSpec

The desired state of a MultiCluster Component resource.

 placement Placement Clusters in which the component is to be created. template ComponentTemplate Template containing the metadata and spec for an OAM component.
status
MultiClusterResourceStatus

The observed state of a MultiCluster Component resource.

### MultiClusterConfigMap

MultiClusterConfigMap specifies the MultiCluster ConfigMap API.

Field Description
apiVersion
string
 clusters.verrazzano.io/v1alpha1 
kind
string
MultiClusterConfigMap
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
MultiClusterConfigMapSpec

The desired state of a MultiCluster ConfigMap resource.

 placement Placement Clusters in which the ConfigMap is to be created. template ConfigMapTemplate The embedded Kubernetes ConfigMap.
status
MultiClusterResourceStatus

The observed state of a MultiCluster ConfigMap resource.

### MultiClusterSecret

MultiClusterSecret specifies the MultiCluster Secret API.

Field Description
apiVersion
string
 clusters.verrazzano.io/v1alpha1 
kind
string
MultiClusterSecret
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
MultiClusterSecretSpec

The desired state of a MultiCluster Secret resource.

 placement Placement Clusters in which the secret is to be created. template SecretTemplate The embedded Kubernetes secret.
status
MultiClusterResourceStatus

The observed state of a MultiCluster Secret resource.

### VerrazzanoProject

VerrazzanoProject specifies the Verrazzano Projects API.

Field Description
apiVersion
string
 clusters.verrazzano.io/v1alpha1 
kind
string
VerrazzanoProject
metadata
Kubernetes meta/v1.ObjectMeta
Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
VerrazzanoProjectSpec

The desired state of a Verrazzano Project resource.

 placement Placement Clusters on which the namespaces are to be created. template ProjectTemplate The project template.
status
MultiClusterResourceStatus

The observed state of a Verrazzano Project resource.

### ApplicationConfigurationTemplate

(Appears on: MultiClusterApplicationConfigurationSpec)

ApplicationConfigurationTemplate has the metadata and embedded spec of the OAM applicationConfiguration resource.

Field Description
metadata
EmbeddedObjectMeta

spec
OAM core/v1alpha2.ApplicationConfigurationSpec

The embedded OAM application specification.

 components []OAM core/v1alpha2.ApplicationConfigurationComponent Components of which this ApplicationConfiguration consists. Each component will be used to instantiate a workload.

### Cluster

(Appears on: Placement)

Cluster contains the name of a single cluster.

Field Description
name
string

The name of a cluster.

### ClusterLevelStatus

(Appears on: MultiClusterResourceStatus)

ClusterLevelStatus describes the status of the multicluster resource in a specific cluster.

Field Description
lastUpdateTime
string

Last update time of the resource state in this cluster.

message
string

Message details about the status in this cluster.

name
string

Name of the cluster.

state
StateType

State of the resource in this cluster.

### ComponentTemplate

(Appears on: MultiClusterComponentSpec)

ComponentTemplate has the metadata and embedded spec of the OAM component.

Field Description
metadata
EmbeddedObjectMeta

spec
OAM core/v1alpha2.ComponentSpec

The embedded OAM component specification.

 workload Kubernetes runtime.RawExtension A Workload that will be created for each ApplicationConfiguration that includes this Component. Workload is an instance of a workloadDefinition. We either use the GVK info or a special “type” field in the workload to associate the content of the workload with its workloadDefinition parameters []OAM core/v1alpha2.ComponentParameter (Optional) Parameters exposed by this component. ApplicationConfigurations that reference this component may specify values for these parameters, which will in turn be injected into the embedded workload.

### Condition

(Appears on: MultiClusterResourceStatus)

Condition describes current state of a multicluster resource.

Field Description
lastTransitionTime
string
(Optional)

Last time the condition transitioned from one status to another.

message
string
(Optional)

A message with details about the last transition.

status
Kubernetes core/v1.ConditionStatus

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

type
ConditionType

Type of condition.

### ConditionType (string alias)

(Appears on: Condition)

ConditionType identifies the condition of the multicluster resource which can be checked with kubectl wait.

### ConfigMapTemplate

(Appears on: MultiClusterConfigMapSpec)

ConfigMapTemplate has the metadata and spec of the Kubernetes ConfigMap.

Field Description
binaryData
map[string][]byte

Corresponds to the binaryData field of the struct ConfigMap defined in types.go.

data
map[string]string

Corresponds to the data field of the struct ConfigMap defined in types.go.

immutable
bool

Corresponds to the immutable field of the struct ConfigMap defined in types.go.

metadata
EmbeddedObjectMeta

### EmbeddedObjectMeta

EmbeddedObjectMeta is metadata describing a resource.

Field Description
annotations
map[string]string
(Optional)

Annotations for the resource.

labels
map[string]string
(Optional)

Labels for the resource.

name
string
(Optional)

Name of the resource.

namespace
string
(Optional)

Namespace of the resource.

### MultiClusterApplicationConfigurationSpec

(Appears on: MultiClusterApplicationConfiguration)

MultiClusterApplicationConfigurationSpec defines the desired state of a multicluster application.

Field Description
placement
Placement

Clusters in which the application is to be created.

secrets
[]string
(Optional)

List of secrets used by the application. These secrets must be created in the application’s namespace before deploying a MultiClusterApplicationConfiguration resource.

template
ApplicationConfigurationTemplate

Template containing the metadata and spec for an OAM applicationConfiguration resource.

### MultiClusterComponentSpec

(Appears on: MultiClusterComponent)

MultiClusterComponentSpec defines the desired state of a MultiCluster Component.

Field Description
placement
Placement

Clusters in which the component is to be created.

template
ComponentTemplate

Template containing the metadata and spec for an OAM component.

### MultiClusterConfigMapSpec

(Appears on: MultiClusterConfigMap)

MultiClusterConfigMapSpec defines the desired state of a MultiCluster ConfigMap.

Field Description
placement
Placement

Clusters in which the ConfigMap is to be created.

template
ConfigMapTemplate

The embedded Kubernetes ConfigMap.

### MultiClusterResourceStatus

MultiClusterResourceStatus is the runtime status of a multicluster resource.

Field Description
clusters
[]ClusterLevelStatus

Status information for each cluster.

conditions
[]Condition

The current state of a multicluster resource.

state
StateType

The state of the multicluster resource. State values are case-sensitive and formatted as follows:

• Failed: deployment to cluster failed
• Pending: deployment to cluster is in progress
• Succeeded: deployment to cluster successfully completed

### MultiClusterSecretSpec

(Appears on: MultiClusterSecret)

MultiClusterSecretSpec defines the desired state of a MultiCluster Secret.

Field Description
placement
Placement

Clusters in which the secret is to be created.

template
SecretTemplate

The embedded Kubernetes secret.

### NamespaceTemplate

(Appears on: ProjectTemplate)

NamespaceTemplate contains the metadata and specification of a Kubernetes namespace.

Field Description
metadata
Kubernetes meta/v1.ObjectMeta
(Optional) Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
Kubernetes core/v1.NamespaceSpec

The specification of a namespace.

 finalizers []Kubernetes core/v1.FinalizerName (Optional) Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/

### NetworkPolicyTemplate

(Appears on: ProjectTemplate)

NetworkPolicyTemplate contains the metadata and specification of a Kubernetes NetworkPolicy.

Field Description
metadata
Kubernetes meta/v1.ObjectMeta
(Optional) Refer to the Kubernetes API documentation for the fields of the metadata field.
spec
Kubernetes networking/v1.NetworkPolicySpec

The specification of a network policy.

 podSelector Kubernetes meta/v1.LabelSelector Selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. ingress []Kubernetes networking/v1.NetworkPolicyIngressRule (Optional) List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod’s local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default) egress []Kubernetes networking/v1.NetworkPolicyEgressRule (Optional) List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8 policyTypes []Kubernetes networking/v1.PolicyType (Optional) List of rule types that the NetworkPolicy relates to. Valid options are [“Ingress”], [“Egress”], or [“Ingress”, “Egress”]. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ “Egress” ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include “Egress” (since such a policy would not include an Egress section and would otherwise default to just [ “Ingress” ]). This field is beta-level in 1.8

### Placement

Placement contains the name of each cluster where a resource will be located.

Field Description
clusters
[]Cluster

List of clusters.

### ProjectTemplate

(Appears on: VerrazzanoProjectSpec)

ProjectTemplate contains the list of namespaces to create and the optional security configuration for each namespace.

Field Description
namespaces
[]NamespaceTemplate

The list of application namespaces to create for this project.

networkPolicies
[]NetworkPolicyTemplate
(Optional)

Network policies applied to namespaces in the project.

security
SecuritySpec
(Optional)

The project security configuration.

### SecretTemplate

(Appears on: MultiClusterSecretSpec)

SecretTemplate has the metadata and spec of the Kubernetes Secret.

Field Description
data
map[string][]byte

Corresponds to the data field of the struct Secret defined in types.go.

metadata
EmbeddedObjectMeta

stringData
map[string]string

Corresponds to the stringData field of the struct Secret defined in types.go.

type
Kubernetes core/v1.SecretType

The type of secret.

### SecuritySpec

(Appears on: ProjectTemplate)

SecuritySpec defines the security configuration for a Verrazzano Project.

Field Description
projectAdminSubjects
[]Kubernetes rbac/v1.Subject
(Optional)

The subjects to bind to the verrazzano-project-admin role.

projectMonitorSubjects
[]Kubernetes rbac/v1.Subject
(Optional)

The subjects to bind to the verrazzano-project-monitoring role.

### StateType (string alias)

(Appears on: ClusterLevelStatus, MultiClusterResourceStatus)

StateType identifies the state of a multicluster resource.

### VerrazzanoProjectSpec

(Appears on: VerrazzanoProject)

VerrazzanoProjectSpec defines the desired state of a Verrazzano Project.

Field Description
placement
Placement

Clusters on which the namespaces are to be created.

template
ProjectTemplate

The project template.

Generated with gen-crd-api-reference-docs