MCPcopy Index your code
hub / github.com/bluek8s/kubedirector

github.com/bluek8s/kubedirector @v0.11.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.11.0 ↗ · + Follow
389 symbols 1,248 edges 73 files 349 documented · 90%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

KubeDirector

Build Status

What is KubeDirector?

KubeDirector uses standard Kubernetes (K8s) facilities of custom resources and API extensions to implement stateful scaleout application clusters. This approach enables transparent integration with K8s user/resource management and existing K8s clients and tools.

In broad terms, KubeDirector is a "custom controller" (itself deployed into K8s) that watches for custom resources of a given type to be created or modified within some K8s namespace(s). On such an event, KubeDirector uses K8s APIs to create or update the resources and configuration of a cluster to bring it into accordance with the spec defined in that custom resource.

Unlike some other custom controller implementations, KubeDirector does not tie a custom resource definition to a particular type of application, or contain hardcoded application-specific logic within the controller. Instead, application characteristics are defined by metadata and an associated package of configuration artifacts. This separation of responsibilities has several useful characteristics, including:

  • Application experts -- within or outside the organization running KubeDirector -- can enable application deployment without writing "Go" code or understanding the operation of custom controllers. This includes easily making incremental changes to adopt new versions of an application or tweak the setup choices exposed to the end user.

  • Site administrators can easily manage which application types and versions are available within an organization, without undergoing a custom controller code upgrade that could potentially disrupt operations.

  • End users can launch and reconfigure clusters using familiar K8s tools, selecting from application-specific choices provided to them by the experts.

The wiki describes KubeDirector concepts, architecture, and data formats.

See the files in the "doc" directory for information about deploying and using KubeDirector: * quickstart.md: deploying a pre-built KubeDirector image * gke-notes.md: important information if you intend to deploy KubeDirector using Google Kubernetes Engine * eks-notes.md: important information if you intend to deploy KubeDirector using Amazon Elastic Container Service for Kubernetes * virtual-clusters.md: creating and managing virtual clusters with KubeDirector * app-authoring.md: creating app definitions for KubeDirector virtual clusters * kubedirector-development.md: building KubeDirector from source

Contributing

You’re welcome to join the BlueK8s Slack workspace for feedback and discussion.

Please read through the CONTRIBUTING guide before making a pull request. If you run into an issue with the contributing guide, please send a pull request to fix the contributing guide.

Code of conduct

Participation in the KubeDirector community is governed by the KubeDirector Code of Conduct.

Extension points exported contracts — how you extend this code

KubeDirectorObject (Interface)
KubeDirectorObject is an interface that most KubeDirector CRs implement. Currently it's used to add/remove the KubeDirec
pkg/shared/kubedirectorobject.go

Core symbols most depended-on inside this repo

LogInfof
called by 49
pkg/shared/logging.go
LogErrorf
called by 32
pkg/shared/logging.go
LogInfo
called by 20
pkg/shared/logging.go
Get
called by 20
pkg/shared/client.go
Update
called by 13
pkg/shared/client.go
GetApp
called by 13
pkg/catalog/interrogate.go
OwnerReferences
called by 11
pkg/shared/util.go
LogError
called by 10
pkg/shared/logging.go

Shape

Function 289
Struct 66
Method 23
TypeAlias 8
FuncType 2
Interface 1

Languages

Go100%

Modules by API surface

pkg/executor/statefulset.go23 symbols
pkg/validator/cluster.go22 symbols
pkg/controller/kubedirectorcluster/members.go21 symbols
pkg/apis/kubedirector/v1beta1/kubedirectorcluster_types.go21 symbols
pkg/catalog/interrogate.go18 symbols
pkg/shared/client.go16 symbols
pkg/observer/observer.go16 symbols
pkg/shared/globalconfig.go15 symbols
pkg/apis/kubedirector/v1beta1/kubedirectorapp_types.go14 symbols
pkg/executor/util.go12 symbols
pkg/catalog/types.go12 symbols
pkg/controller/kubedirectorcluster/roles.go11 symbols

For agents

$ claude mcp add kubedirector \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page