Workspace
Workspace API reference.
Proto: workspace.proto
Package: admin.gloo.solo.io
Types:
- ClusterSelector
- ClusterSelector.NamespaceSelector
- ClusterSelector.NamespaceSelector.LabelsEntry
- ClusterSelector.SelectorEntry
- WorkspaceReport
- WorkspaceReport.DestinationCountsEntry
- WorkspaceReport.ObjectReferences
- WorkspaceReport.PolicyCountsEntry
- WorkspaceReport.ResourcesEntry
- WorkspaceReport.SelectedCluster
- WorkspaceReport.SourceType
- WorkspaceSpec
- WorkspaceStatus
- WorkspaceStatus.DestinationCountsEntry
- WorkspaceStatus.NumResourcesEntry
- WorkspaceStatus.PolicyCountsEntry
ClusterSelector
Select clusters and namespaces for a workspace
Field | Description |
---|---|
name | (string )Optional: Name of the cluster to select. Use * to match name patterns in multiple clusters name. |
selector | (repeated ClusterSelector.SelectorEntry )Optional: Include workload clusters in the workspace by using a selector. The selector matches the selector values in the KubernetesCluster resource on the management cluster. Selector is a map of {key,value} pairs. A single {key,value} in the selector map is equivalent to an element of labelRequirements, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed. |
namespaces | (repeated ClusterSelector.NamespaceSelector )Select the namespaces in the cluster(s) to include in the workspace. If you do not select any namespaces, the workspace is empty and results in an error. |
configEnabled | (bool )Optional: Enable configuration from this workload cluster. (default: true unless explicitly enabled for any selected clusters or namespaces) |
ClusterSelector.NamespaceSelector
Select namespaces for the selected cluster(s)
Field | Description |
---|---|
name | (string )Name of the namespace to select. Can use * to match name patterns in multiple namespaces. Note: When this field is used in conjunction with “labels”, both conditions are ANDed together. |
configEnabled | (bool )Optional: Enable configuration from this namespace. (default: true unless explicitly enabled for any selected clusters or namespaces) |
labels | (repeated ClusterSelector.NamespaceSelector.LabelsEntry )Optional: Select groups of namespaces via labels. Leaving this field empty will NOT select all namespaces, but rather be ignored. Note: When this field is used in conjunction with “name”, both conditions are ANDed together. |
ClusterSelector.NamespaceSelector.LabelsEntry
Field | Description |
---|---|
key | (string ) |
value | (string ) |
ClusterSelector.SelectorEntry
Field | Description |
---|---|
key | (string ) |
value | (string ) |
WorkspaceReport
Field | Description |
---|---|
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
Field | Description |
---|---|
key | (string ) |
value | (WorkspaceReport.ObjectReferences ) |
WorkspaceReport.ObjectReferences
Represents a list of object references.
Field | Description |
---|---|
objectReferences | (repeated common.gloo.solo.io.ObjectReference ) |
WorkspaceReport.PolicyCountsEntry
Field | Description |
---|---|
key | (string ) |
value | (WorkspaceReport.ObjectReferences ) |
WorkspaceReport.ResourcesEntry
Field | Description |
---|---|
key | (string ) |
value | (WorkspaceReport.SourceType ) |
WorkspaceReport.SelectedCluster
Represents a cluster that was successfully associated to a workspace based on the WorkspaceSpec.
Field | Description |
---|---|
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.
Field | Description |
---|---|
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*
Field | Description |
---|---|
workloadClusters | (repeated 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
Field | Description |
---|---|
common | (common.gloo.solo.io.Status ) |
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
Field | Description |
---|---|
key | (string ) |
value | (uint32 ) |
WorkspaceStatus.NumResourcesEntry
Field | Description |
---|---|
key | (string ) |
value | (WorkspaceStatus.SourceType ) |
WorkspaceStatus.PolicyCountsEntry
Field | Description |
---|---|
key | (string ) |
value | (uint32 ) |