Source: https://seerepo.com/r/loft-sh/vcluster/built
Markdown source: https://seerepo.com/r/loft-sh/vcluster/built.md
Description: vcluster is a Go repo built with net/http, sigs.k8s.io/controller-runtime, and k8s.io/apiserver. It stores its data in SQLite.

# What is vcluster built with?

vcluster is a Go repo built with net/http, sigs.k8s.io/controller-runtime, and k8s.io/apiserver. It stores its data in SQLite, signs people in with golang.org/x/oauth2, connects to GitHub, validates its data with github.com/invopop/jsonschema and github.com/go-openapi/loads, is tested with github.com/onsi/ginkgo/v2, github.com/onsi/gomega, gotest.tools, gotest.tools/v3, github.com/go-logr/zapr, and 2 more, deploys with k8s.io/klog/v2, github.com/sirupsen/logrus, sigs.k8s.io/gateway-api, github.com/go-logr/logr, go.uber.org/zap, and 8 more, and uses etcd and HashiCorp. It has 141,753 written lines, with 257 test files.

Read on November 12, 2026, at commit c5e9027.

Repository: https://github.com/loft-sh/vcluster

## Frontend

### Interface

- **[github.com/olekukonko/tablewriter](https://seerepo.com/uses/githubcom-olekukonko-tablewriter)**: 1 file

## Backend

### The base

- **[net/http](https://seerepo.com/uses/net-http)**

### Data

- **[etcd](https://seerepo.com/uses/etcd)**: 5 files
- **[HashiCorp](https://seerepo.com/uses/hashicorp)**: 2 files
- **[SQLite](https://seerepo.com/uses/sqlite)**: 2 files · [cmd/vcluster/main.go, line 13](https://github.com/loft-sh/vcluster/blob/c5e9027e972df3f24b58137e9018929b61635641/cmd/vcluster/main.go#L13)

### Sign-in

- **[golang.org/x/oauth2](https://seerepo.com/uses/golangorg-x-oauth2)**: 1 file

### Services

- **[GitHub](https://seerepo.com/uses/github)**: 2 files · [pkg/platform/version.go, line 11](https://github.com/loft-sh/vcluster/blob/c5e9027e972df3f24b58137e9018929b61635641/pkg/platform/version.go#L11)

## Support

### The base

- **[sigs.k8s.io/controller-runtime](https://seerepo.com/uses/sigsk8sio-controller-runtime)**: 163 files
- **[k8s.io/apiserver](https://seerepo.com/uses/k8sio-apiserver)**: 24 files

### Validation

- **[github.com/invopop/jsonschema](https://seerepo.com/uses/githubcom-invopop-jsonschema)**: 2 files
- **github.com/go-openapi/loads**: 1 file

### Testing

- **github.com/onsi/ginkgo/v2**: 93 files
- **github.com/onsi/gomega**: 61 files
- **gotest.tools**: 48 files
- **gotest.tools/v3**: 30 files
- **github.com/go-logr/zapr**: 2 files
- **github.com/google/go-cmp**: 2 files
- **sigs.k8s.io/e2e-framework**: 2 files

### Deploy

- **[k8s.io/klog/v2](https://seerepo.com/uses/k8sio-klog-v2)**: 85 files
- **[github.com/sirupsen/logrus](https://seerepo.com/uses/githubcom-sirupsen-logrus)**: 22 files
- **sigs.k8s.io/gateway-api**: 21 files
- **[github.com/go-logr/logr](https://seerepo.com/uses/githubcom-go-logr-logr)**: 6 files
- **[go.uber.org/zap](https://seerepo.com/uses/gouberorg-zap)**: 5 files
- **[Kubernetes](https://seerepo.com/uses/kubernetes)**: 4 files
- **k8s.io/cluster-bootstrap**: 3 files
- **k8s.io/metrics**: 2 files
- **k8s.io/pod-security-admission**: 2 files
- **[Prometheus](https://seerepo.com/uses/prometheus)**: 2 files
- **github.com/docker/docker**: 1 file
- **[github.com/hashicorp/go-hclog](https://seerepo.com/uses/githubcom-hashicorp-go-hclog)**: 1 file
- **k8s.io/kubelet**: 1 file

### Tools

- **github.com/spf13/cobra**: 124 files
- **k8s.io/kubectl**: 8 files
- **golang.org/x/mod**: 4 files
- **[Docker](https://seerepo.com/uses/docker)**: 2 files
- **go.etcd.io/etcd/etcdutl/v3**: 2 files
- **k8s.io/cli-runtime**: 2 files

### Other

- **protobuf**
- **k8s.io/apimachinery**: 259 files
- **k8s.io/api**: 168 files
- **k8s.io/client-go**: 133 files
- **github.com/pkg/errors**: 40 files
- **github.com/ghodss/yaml**: 15 files
- **k8s.io/utils**: 14 files
- **sigs.k8s.io/yaml**: 14 files
- **github.com/mgutz/ansi**: 13 files
- **github.com/samber/lo**: 10 files
- **github.com/blang/semver**: 7 files
- **github.com/mitchellh/go-homedir**: 7 files
- **gopkg.in/yaml.v2**: 5 files
- **k8s.io/kube-aggregator**: 5 files
- **github.com/spf13/pflag**: 4 files
- **[Google](https://seerepo.com/uses/google)**: 4 files
- **github.com/skratchdot/open-golang**: 3 files
- **golang.org/x/exp**: 3 files
- **k8s.io/apiextensions-apiserver**: 3 files
- **github.com/blang/semver/v4**: 2 files
- **github.com/denisbrodbeck/machineid**: 2 files
- **github.com/evanphx/json-patch/v5**: 2 files
- **github.com/hashicorp/go-plugin**: 2 files
- **gopkg.in/yaml.v3**: 2 files
- **k8s.io/component-helpers**: 2 files
- **Uber**: 2 files
- **github.com/coreos/go-semver**: 1 file
- **github.com/dustin/go-humanize**: 1 file
- **github.com/evanphx/json-patch**: 1 file
- **github.com/google/go-containerregistry**: 1 file
- **github.com/gorilla/websocket**: 1 file
- **github.com/kballard/go-shellquote**: 1 file
- **github.com/moby/term**: 1 file
- **github.com/peterbourgon/ff/v3**: 1 file
- **go.etcd.io/etcd/pkg/v3**: 1 file
- **golang.org/x/sync**: 1 file
- **k8s.io/component-base**: 1 file

## Other repos with a similar stack

- [k3s-io/k3s](https://seerepo.com/r/k3s-io/k3s/built): net/http, etcd, k8s.io/apiserver, k8s.io/klog/v2, github.com/sirupsen/logrus, github.com/go-logr/logr, go.uber.org/zap, Kubernetes, Prometheus, k8s.io/kubelet · [Compare](https://seerepo.com/compare/k3s-io/k3s/vs/loft-sh/vcluster)
- [istio/istio](https://seerepo.com/r/istio/istio/built): net/http, sigs.k8s.io/controller-runtime, k8s.io/apiserver, golang.org/x/oauth2, k8s.io/klog/v2, sigs.k8s.io/gateway-api, github.com/go-logr/logr, go.uber.org/zap, Prometheus · [Compare](https://seerepo.com/compare/istio/istio/vs/loft-sh/vcluster)
- [projectdiscovery/nuclei](https://seerepo.com/r/projectdiscovery/nuclei/built): net/http, HashiCorp, SQLite, GitHub, github.com/olekukonko/tablewriter, golang.org/x/oauth2, github.com/invopop/jsonschema · [Compare](https://seerepo.com/compare/loft-sh/vcluster/vs/projectdiscovery/nuclei)
- [traefik/traefik](https://seerepo.com/r/traefik/traefik/built): GitHub, sigs.k8s.io/controller-runtime, github.com/sirupsen/logrus, sigs.k8s.io/gateway-api, Prometheus, github.com/hashicorp/go-hclog · [Compare](https://seerepo.com/compare/loft-sh/vcluster/vs/traefik/traefik)
- [portainer/portainer](https://seerepo.com/r/portainer/portainer/built): etcd, HashiCorp, golang.org/x/oauth2, github.com/sirupsen/logrus, sigs.k8s.io/gateway-api, Prometheus · [Compare](https://seerepo.com/compare/loft-sh/vcluster/vs/portainer/portainer)
- [tailscale/tailscale](https://seerepo.com/r/tailscale/tailscale/built): net/http, sigs.k8s.io/controller-runtime, golang.org/x/oauth2, go.uber.org/zap, Prometheus, github.com/hashicorp/go-hclog · [Compare](https://seerepo.com/compare/loft-sh/vcluster/vs/tailscale/tailscale)

## Frequently asked questions

### What language is vcluster written in?

vcluster is written in Go, with 141,753 written lines.

### What framework does vcluster use?

vcluster is built with net/http, sigs.k8s.io/controller-runtime, and k8s.io/apiserver.

### What database does vcluster use?

vcluster stores its data in SQLite.

The proof: [cmd/vcluster/main.go, line 13](https://github.com/loft-sh/vcluster/blob/c5e9027e972df3f24b58137e9018929b61635641/cmd/vcluster/main.go#L13)

### What does vcluster sign people in with?

vcluster signs people in with golang.org/x/oauth2.

### What services does vcluster use?

vcluster connects to GitHub and uses etcd and HashiCorp.

The proof: [pkg/platform/version.go, line 11](https://github.com/loft-sh/vcluster/blob/c5e9027e972df3f24b58137e9018929b61635641/pkg/platform/version.go#L11)

### Does vcluster have tests?

Yes. vcluster has 257 test files and is tested with github.com/onsi/ginkgo/v2, github.com/onsi/gomega, gotest.tools, gotest.tools/v3, github.com/go-logr/zapr, github.com/google/go-cmp, and sigs.k8s.io/e2e-framework.

### Which repos have a stack like vcluster's?

The ones that share most of its stack: k3s-io/k3s, istio/istio, and projectdiscovery/nuclei.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
