Deploying Workloads
A workspace member shares the cluster with other tenants and has a restricted ability to manage resources. This limited access to the cluster is provided via the workspace's ServiceAccount.
#
How to deploy a workload using GitOpsClone the workspace repository and commit and push your deployment.
The cluster will momentarily sync any changes to the repo, adding or removing resources as needed.
Make sure that the namespace
of the deployment or any other resource in git repository is a namespace managed by this workspace.
#
Which namespaces does a Workspace manage?These are set by the cluster admin and can be seen by getting the specific workspace object:
#
Accessing the workspace via kubectlA cluster administrator can provide a kubeconfig file to manage the resources of a specific workspace. This file
contains the credentials of the Workspace's ServiceAccount
that can be used by kubectl
.
The kubeconfig file sets the default namespace to the first namespace the Workspace manages. Other namespaces can be
accessed by using the namespace flag: --namespace foo-namespace-2
.
#
NotesA current limitation of the Workspace Controller is its inability to apply an empty repository to a cluster. If you have deployments and other manifests commited to this repository, and then delete all of them so there are 0 manifests left, then the apply will fail and the resources will not be removed from the cluster. You can either:
- Ask your admin to delete the workspace if you are done with it.
- Add a dummy ConfigMap after deleting everything else so that you have at least 1 manifest to apply.