MCPcopy Index your code
hub / github.com/alperencelik/kubemox

github.com/alperencelik/kubemox @v0.6.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.6.6 ↗ · + Follow
551 symbols 1,530 edges 61 files 275 documented · 50%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Pipeline Status Latest Release Go Report Card Go Reference License GitHub issues

Kubemox

Kubemox is a Proxmox operator for Kubernetes. It allows you to create and manage Proxmox VMs from Kubernetes.

Logo

Why Kubemox?

Proxmox is a great open-source virtualization platform. It has a great API and CLI but managing resources inside Proxmox within a declarative way might be hard. Kubemox is a Kubernetes operator that allows you to manage Proxmox resources in a declarative way. It brings the power of Kubernetes to Proxmox and allows you to manage Proxmox resources with Kubernetes resources with the endless control loop of Kubernetes.

Kubemox helps you to manage your infrastructure components in a declarative way. You can also combine with GitOps tool to make your infrastructure immutable and reproducible. See the documentation section for more information.

Documentation

Documentation is available at https://alperencelik.github.io/kubemox/.

Developing

You’ll need a Kubernetes cluster to run against. You can use KIND to get a local cluster for testing, or run against a remote cluster. The project is using Kubebuilder to generate the controller and CRDs. For Proxmox interaction the project is using go-proxmox project. The controllers are located under internal/controllers/proxmox directory and the external packages proxmox and kubernetes are located under pkg directory.

  • To create a new controller you can use the following command:
kubebuilder create api --group proxmox --version v1alpha1 --kind NewKind 
  • Define the spec and status of your new kind in api/proxmox/v1alpha1/newkind_types.go file.

  • Define the controller logic in internal/controllers/proxmox/newkind_controller.go file.

Roadmap

  • [ ] Add more CRDs for Proxmox resources (LXC(Containers), Storage, Networking etc.)
  • [ ] Add more options for Proxmox client (TLS and different authentication methods)
  • [ ] Add more features to the operator (HA, configuration, etc.)
  • [ ] Add metrics for the operator
  • [ ] Add more tests
  • [ ] Add more documentation
  • [ ] Add more examples

Contributing

Thank you for considering contributing to this project! To get started, please follow these guidelines:

  • If you find a bug or have a feature request, please open an issue.
  • If you'd like to contribute code, please fork the repository and create a pull request.
  • Please follow our developing.md in all your interactions with the project.
  • Before submitting a pull request, make sure to run the tests and ensure your code adheres to our coding standards.

Disclaimer

Kubemox is under active development and doesn't follow the Custom Resource Definition (CRD) versioning principles. This means that Kubemox doesn't guarantee version updates on breaking changes and also there is no guarantee for the backward compatibility of the CRDs. Please be aware of this before using Kubemox in production environments.

Extension points exported contracts — how you extend this code

Resource (Interface)
Resource is a Kubernetes client.Object used for Proxmox resource operations.
pkg/proxmox/fetcher.go

Core symbols most depended-on inside this repo

Error
called by 265
pkg/proxmox/tasks.go
getVirtualMachine
called by 39
pkg/proxmox/virtualmachine.go
getNode
called by 19
pkg/proxmox/connection.go
NewProxmoxClientFromRef
called by 19
pkg/proxmox/connection.go
GetReconcileMode
called by 12
pkg/kubernetes/kubernetes.go
GetContainer
called by 12
pkg/proxmox/containers.go
SetupWithManager
called by 9
internal/controller/proxmox/container_controller.go
CheckVMType
called by 8
pkg/proxmox/virtualmachine.go

Shape

Method 342
Function 121
Struct 87
Interface 1

Languages

Go100%

Modules by API surface

api/proxmox/v1alpha1/zz_generated.deepcopy.go134 symbols
pkg/proxmox/virtualmachine.go55 symbols
pkg/proxmox/fetcher.go25 symbols
pkg/proxmox/container_oci.go20 symbols
internal/controller/proxmox/virtualmachine_controller.go19 symbols
pkg/proxmox/virtualmachinetemplate.go18 symbols
pkg/proxmox/containers.go18 symbols
internal/controller/proxmox/container_controller.go16 symbols
api/proxmox/v1alpha1/virtualmachine_types.go15 symbols
internal/controller/proxmox/virtualmachinetemplate_controller.go14 symbols
pkg/proxmox/connection.go13 symbols
api/proxmox/v1alpha1/virtualmachinetemplate_types.go12 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page