Proto: workspace.proto

Package: admin.gloo.solo.io

Types:

WorkspaceReport

FieldDescription
report(common.gloo.solo.io.Report)

workspaceSettings(common.gloo.solo.io.ObjectReference)

The workspacesettings object configuring this workspace.
selectedClusters(repeated WorkspaceReport.SelectedCluster)

A list of clusters that this workspace selects. These cluster objects contain the namespaces that the workspace owns within them.
resources(repeated WorkspaceReport.ResourcesEntry)

A list of resources that the workspace imports and exports, sorted by type (imported, exported, private).
policyCounts(repeated WorkspaceReport.PolicyCountsEntry)

A reference of policy resources in this workspace, sorted by type (security, trafficcontrol, resilience, observability).
destinationCounts(repeated WorkspaceReport.DestinationCountsEntry)

A refernce of destination resources in this workspace, sorted by type (Kubernetes service, virtual destination, external service)
importedWorkspaces(repeated string)

A list of workspaces from which resources are imported into this workspace.

WorkspaceReport.DestinationCountsEntry

FieldDescription
key(string)

value(WorkspaceReport.ObjectReferences)

WorkspaceReport.ObjectReferences

Represents a list of object references.

FieldDescription
objectReferences(repeated common.gloo.solo.io.ObjectReference)

WorkspaceReport.PolicyCountsEntry

FieldDescription
key(string)

value(WorkspaceReport.ObjectReferences)

WorkspaceReport.ResourcesEntry

FieldDescription
key(string)

value(WorkspaceReport.SourceType)

WorkspaceReport.SelectedCluster

Represents a cluster that was successfully associated to a workspace based on the WorkspaceSpec.

FieldDescription
name(string)

Name of a cluster that this workspace selects.
namespaces(repeated string)

Namespaces inside the cluster that this workspace owns.

WorkspaceReport.SourceType

Represents whether a resource is imported, exported, or private to a workspace.

FieldDescription
imported(WorkspaceReport.ObjectReferences)

exported(WorkspaceReport.ObjectReferences)

private(WorkspaceReport.ObjectReferences)

WorkspaceSpec

Workspace describes a logical grouping of Kubernetes namespaces within the clusters that are part of a virtual mesh. Workspace can be treated as a boundary for configuration and service discovery. The specification describes how to select namespaces or/and clusters for a given workspace.

The workspace-wide settings such as importFrom, exportTo are configured in the WorkspaceSettings object. Refer to the WorkspaceSettings documentation for details.

The following example creates the web workspace that selects all workload clusters and all namespaces within those clusters to be part of the workspace.

  apiVersion: admin.gloo.solo.io/v2
kind: Workspace
metadata:
  name: web
  namespace: gloo-mesh
spec:
  workloadClusters:
    - name: "*"
      namespaces:
      - name: "*"
  

The following configuration creates the web workspace that selects the web namespace from all workload clusters that have the label of region: us-east to be part of the workspace. Refer to the KubernetesCluster documentation for examples on how to label your KubernetesCluster resource.

  apiVersion: admin.gloo.solo.io/v2
kind: Workspace
metadata:
  name: web
  namespace: gloo-mesh
spec:
  workloadClusters:
    - selector:
        region: us-east
      namespaces:
        - name: web
  

The following example creates the policy namespace that does NOT have any workload clusters. This workspace also has the gloo.solo.io/global label which other workspaces can use to import this workspace by label in their WorkspaceSettings resource.

  apiVersion: admin.gloo.solo.io/v2
kind: Workspace
metadata:
  name: policy
  namespace: gloo-mesh
  labels:
    gloo.solo.io/global: 'true'
  

The example below creates the backend workspace that select any namespace that starts with ns1 in cluster1 and any namespace that starts with ns2 in cluster2. It has the gloo.solo.io/exportToGateway label, which other workspaces can use to import this workspace by label in their WorkspaceSettings resource. Refer to the KubernetesCluster documentation for examples on how to name your KubernetesCluster resource.

  apiVersion: admin.gloo.solo.io/v2
kind: Workspace
metadata:
  name: backend
  namespace: gloo-mesh
  labels:
    gloo.solo.io/exportToGateway: tier1
    team: backend
spec:
  workloadClusters:
    - name: cluster1
      namespaces:
        - name: ns1*
    - name: cluster2
      namespaces:
        - name: ns2*
  
FieldDescription
workloadClusters(repeated common.gloo.solo.io.ClusterSelector)

Optional: Select workload clusters and namespaces for the workload clusters that are part of the workspace. When this is not specified, the workspace contains no workload clusters.

WorkspaceStatus

FieldDescription
common(common.gloo.solo.io.Status)

The state and workspace conditions of the applied policy.
workspaceSettings(common.gloo.solo.io.ObjectReference)

The workspacesettings object configuring this workspace.
numSelectedClusters(uint32)

The number of selected Kubernetes clusters.
numSelectedNamespaces(uint32)

The number of selected namespaces.
numResources(repeated WorkspaceStatus.NumResourcesEntry)

The number of resources that the workspace imports and exports, sorted by type (imported, exported, private).
policyCounts(repeated WorkspaceStatus.PolicyCountsEntry)

The number of policy resources in this workspace, sorted by type (security, trafficcontrol, resilience, observability).
destinationCounts(repeated WorkspaceStatus.DestinationCountsEntry)

The number of destination resources in this workspace, sorted by type (Kubernetes service, virtual destination, external service).
numImportedWorkspaces(uint32)

The number of workspaces imported into this workspace.

WorkspaceStatus.DestinationCountsEntry

FieldDescription
key(string)

value(uint32)

WorkspaceStatus.NumResourcesEntry

FieldDescription
key(string)

value(WorkspaceStatus.SourceType)

WorkspaceStatus.PolicyCountsEntry

FieldDescription
key(string)

value(uint32)