Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Label from "@site/src/components/Label";


Apps are a way for admins to package applications and scripts in consumable packages.
These applications can then be deployed into namesspaces or virtual clusters through their templates.
These applications can then be deployed into namespaces or virtual clusters through their templates.

Virtual clusters or namespaces combined with Apps are a great way to create repeatable, pre-packaged
development, testing, or even production environments. Once an App has been created in the vCluster Platform
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ You can either manually construct a kubeconfig to access your namespace or use t
You can update your current kube-config by running the following command:

```
vCluster platform connect namespace my-namespace --project my-project
vcluster platform connect namespace my-namespace --project my-project
```

If you want to print the kubeconfig, you can append `--print` to the command:

```
vCluster platform connect namespace my-namespace --project my-project --print
vcluster platform connect namespace my-namespace --project my-project --print
```

:::info
Expand All @@ -28,11 +28,11 @@ Depending on if you have direct cluster endpoints enabled, the kubeconfig will l

You can create the kubeconfig also manually by creating an access key for your user first and then using the following template, with the following placeholders:

* **$PROJECT**: the project the namespace is in
* **$SPACE**: the space name to connect to
* **$Namespace**: the target namespace (check the `spec.clusterRef.namespace` field in the SpaceInstance object)
* **$PLATFORM_URL**: the platform host you connect to
* **$ACCESS_KEY**: the access key to use
* `$PROJECT`: the project the namespace is in
* `$SPACE`: the space name to connect to
* `$NAMESPACE`: the target namespace (check the `spec.clusterRef.namespace` field in the SpaceInstance object)
* `$PLATFORM_URL`: the platform host you connect to
* `$ACCESS_KEY`: the access key to use

Then replace these placeholders in the following template and save it as `my-kubeconfig.yaml`:

Expand Down Expand Up @@ -60,6 +60,6 @@ users:

Access your namespace with:

```yaml
```bash
KUBECONFIG=my-kubeconfig.yaml kubectl get pods
```
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ If you need a clean vCluster Platform installation, you can use the `--reset` fl
any previous vCluster Platform installs:

```bash
vCluster platform start --reset # --insecure ...add any other `vCluster platform start` flags if needed
vcluster platform start --reset # --insecure ...add any other `vcluster platform start` flags if needed
```

### Debug `ImageErr` + `ImagePullBackOff`
Expand All @@ -31,17 +31,17 @@ pulling vCluster Platform images from over the internet.
You can always try to connect to vCluster Platform directly and circumvent any potential networking issues
introduced at the load balancer and ingress controller level.

To start port-forwarding, either use `vCluster platform start` or run:
To start port-forwarding, either use `vcluster platform start` or run:

```bash
kubectl port-forward deploy/loft -n vCluster-platform 8080:10443
kubectl port-forward deploy/loft -n vcluster-platform 8080:10443
```

After that you can access vCluster Platform at `https://localhost:8080`. You can even login with the vCluster CLI
to this URL with:

```bash
vCluster platform login localhost:8080 --insecure
vcluster platform login localhost:8080 --insecure
```

If you can access vCluster Platform via port-forwarding only, this is usually an indicator that the problem
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import PartialVirtualClusterAirGapped from "../../../_partials/vcluster/air-gapp
Each virtual cluster that is created in the platform belongs to a [project](../../../understand/what-are-projects.mdx). There are two primary ways which
virtual clusters can be created: from a template or manually.

Virtual clusters created from a [template](../../../understand/what-are-templates.mdx)
Virtual clusters created from a [template](../../../understand/what-are-templates.mdx) inherit all template
settings. Standard project users (non project admins) are only allowed to create virtual clusters
from templates that the project admin has allowed. This ensures that virtual clusters in
each project adhere to the standards set by the project admin.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ sidebar_position: 4
The vCluster project provides several configuration options pertaining to virtual cluster
isolation and security. This section briefly covers the primary configuration options, users are
encouraged to check out the full vCluster isolation and security docs page
[here](https://www.vCluster.com/docs/security/isolated-mode).
[here](https://www.vcluster.com/docs/security/isolated-mode).

vCluster provides a configuration option simply named `isolate`. When enabled, this feature
enables a pod security standard, deploys a resource quota and limit range, and enables a network
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,31 @@ sidebar_position: 7

Platform administrators and users alike often find themselves in a situation where they just need to execute a couple of kubectl commands against a cluster to troubleshoot or get a specific piece of information from it.

The Kubectl Shell feature is terminal that is connected to a pod containing kubectl, among other tools. The pod exists in the target vCluster within the namespace `vcluster-platform-shell`.
The Kubectl Shell feature is a terminal that is connected to a pod containing kubectl, among other tools. The pod exists in the target vCluster within the namespace `vcluster-platform-shell`.
A kubeconfig is mounted to the pod with a vCluster scoped AccessKey. This means the AccessKey cannot be used to access other resources in vCluster Platform. The Kubectl Shell Pod and AccessKey
will automatically be cleaned up after 15 mintues of inactivity. To learn more about the security implications and options for security hardening, read the [Security Considerations section](#security-considerations).
will automatically be cleaned up after 15 minutes of inactivity. To learn more about the security implications and options for security hardening, read the [Security Considerations section](#security-considerations).

## How to use

The Kubectl Shell feature can be accessed in the Project Overiew page under the ellipsis menu for any vCluster row. The Kubectl Shell feature can also be accessed on the vCluster
The Kubectl Shell feature can be accessed in the Project Overview page under the ellipsis menu for any vCluster row. The Kubectl Shell feature can also be accessed on the vCluster
Config page under the ellipsis menu.

## Who can use it

Any user who has access to the VirtualClusterInstance, VirtualClusterInstances/Shell, and pod/exec permissions for the `vcluster-browser-shell` namespace within the vCluster can use the Kubectl Shell feature.
Read the [Security Consideration section](#security-considerations) to understand the implications of granting these aforementioned permissions.

The following YAML can be used to create a project role that grants that VirtualCLusterInstance permissions needed for the Kubectl Shell feature:
The following YAML can be used to create a project role that grants the VirtualClusterInstance permissions needed for the Kubectl Shell feature:

<InterpolatedCodeBlock
code={`export PLATFORM_NS=[[VAR:ROLE_NAME:kubectlshell]]
```yaml
kind: ClusterRoleTemplate
apiVersion: management.loft.sh/v1
metadata:
name: kubectlshell
labels:
loft.sh/project-role: 'true'
spec:
displayName: [[VAR:ROLE_NAME:kubectlshell]]
displayName: kubectlshell
owner:
user: admin
management: true
Expand All @@ -47,10 +46,7 @@ spec:
resources:
- virtualclusterinstances
- virtualclusterinstances/shell

language="yaml"
`}
/>
```

By default, users with VirtualClusterInstance access are granted the `cluster-admin` ClusterRole in the vCluster, which will grant the necessary pod/exec permission for the Kubectl Shell feature. Any ClusterRole that grants
or Role that grants the following permission will suffice instead if you configure custom RBAC settings:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ spec:
templateRef:
name: isolated-vcluster
clusterRef:
cluster: loft-clusterth
cluster: loft-cluster
```

</TabItem>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ It's recommended to store your credentials to your OCI registry in a secret and
Create a Kubernetes secret of your credentials to your OCI registry.

Create this secret on the host of where the vCluster control plane is deployed. It could be deployed in the namespace
of the vCluster or a different namespace. If the vCluster is externally deployed, ensure the vCluster ClusterRole has permission to read the secret. If the vCluster is externally deployed, ensure the vCluster ClusterRole has permission to read the secret. The vCluster ClusterRole follows the naming pattern `vc-<vClusterName>-v-<vClusterNamespace>`.
of the vCluster or a different namespace. If the vCluster is externally deployed, ensure the vCluster ClusterRole has permission to read the secret. The vCluster ClusterRole follows the naming pattern `vc-<vClusterName>-v-<vClusterNamespace>`.

The secret needs to contain:
* `username`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ The easiest way to retrieve a kubeconfig for your virtual cluster is by using th
You can update your current kubeconfig on your local machine by running the following command:

```bash
vCluster platform connect my-vCluster
vcluster platform connect my-vcluster
```

If you want to print the kubeconfig file, you can append `--print` to the command:

```bash
vCluster platform connect my-vCluster --print
vcluster platform connect my-vcluster --print
```

:::info
Expand Down