Skip to content

otterscale/tenant-operator

Repository files navigation

OtterScale Tenant Operator

Tests Lint codecov Go Report Card Release License

A Kubernetes operator that turns a single Workspace resource into a fully isolated multi-tenant environment.

The OtterScale Tenant Operator reconciles the Workspace custom resource (tenant.otterscale.io/v1alpha1) and provisions everything a tenant needs: a dedicated namespace, RBAC bindings, resource quotas, network isolation, and optional image-registry access. The controller stays thin — it fetches the desired state, syncs each concern, and lets Kubernetes garbage collection clean up owned resources when a workspace is removed.

What It Manages

For every Workspace, the operator reconciles:

  • Namespace — created with Pod Security Standards labels applied.
  • RBAC — RoleBindings for admin, edit, and view roles, grouped by member.
  • Resource constraints — ResourceQuota and LimitRange when specified.
  • Network isolation — default-deny NetworkPolicies with allow rules for the workspace and approved namespaces.
  • Harbor integration (optional) — projects, robot accounts, image-pull secrets, and a Flux HelmRepository pointing at the registry.
  • Configuration — a workspace-level ConfigMap for service-discovery endpoint overrides.

Admission webhooks default and validate Workspace resources — auto-generating namespace names, syncing members to labels, and enforcing creation authorization.

Built With

Go and kubebuilder on top of controller-runtime. The Workspace API is defined in otterscale/api.

Documentation

Installation, the full Workspace spec, and operational guides will be published in the project documentation.

Ecosystem

The Tenant Operator is one component of the OtterScale platform; the Workspace CRD it reconciles is defined in otterscale/api. See the otterscale repository for an overview of the full project and its components.

Contributing

Contributions are welcome. A contribution guide (CONTRIBUTING.md) will follow; until then, please open an issue or a pull request to get involved.

License

This project is licensed under the Apache License 2.0.

FOSSA Status

About

Kubernetes operator for multi-tenant workspace isolation and access control.

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors