Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
260 commits
Select commit Hold shift + click to select a range
3ee39d0
KubePlus chart - 3.0.33
devdattakulkarni Jan 10, 2024
2c293f1
Examples and README updates to use KubePlus chart - 3.0.33
devdattakulkarni Jan 10, 2024
b5f3c50
Service CRD name check
devdattakulkarni Feb 7, 2024
0dda834
KubePlus chart update - 3.0.34
devdattakulkarni Feb 7, 2024
5b16f8b
Merge branch 'master' into develop
devdattakulkarni Feb 7, 2024
df33fd1
Resourcecomposition upgrade update
devdattakulkarni Feb 16, 2024
75c946b
KubePlus chart - 3.0.35
devdattakulkarni Feb 16, 2024
7b63caa
Merge branch 'master' into develop
devdattakulkarni Feb 16, 2024
e68b41c
Merge branch 'master' into develop
devdattakulkarni Feb 16, 2024
fd82ecc
Examples and README updated to refer to 3.0.35 chart
devdattakulkarni Feb 16, 2024
e48af2e
Update to parse-api-server-url.sh
devdattakulkarni Feb 16, 2024
5b37719
Merge branch 'master' into develop
devdattakulkarni Feb 16, 2024
5612568
Merge branch 'master' of https://github.com/cloud-ark/kubeplus into d…
devdattakulkarni Apr 7, 2024
10b29e1
README updates
devdattakulkarni Apr 7, 2024
a2aebd7
Added slack channel on CNCF workspace
devdattakulkarni Apr 12, 2024
9ea2f19
KubePlus control center script removal
devdattakulkarni Apr 17, 2024
2193c12
Contributing doc updates
devdattakulkarni Apr 17, 2024
056fc08
README updates
devdattakulkarni Apr 17, 2024
a52b7b1
Merge branch 'master' into develop
devdattakulkarni Apr 17, 2024
1f138ed
Merge branch 'master' into develop
devdattakulkarni Apr 18, 2024
20ae0db
Wordpress example steps update
devdattakulkarni Apr 18, 2024
a18bad3
Merge branch 'master' into develop
devdattakulkarni Apr 25, 2024
086899c
Test suite update
devdattakulkarni Apr 25, 2024
1c9f87a
Tests update
devdattakulkarni Apr 25, 2024
74487fc
Merge branch 'master' into develop
devdattakulkarni Apr 26, 2024
5ae6bf0
Added README in tests folder
devdattakulkarni Apr 26, 2024
f9f9ca4
Merge branch 'master' into develop
devdattakulkarni Apr 26, 2024
b2c3510
KubePlus Helm chart update - 3.0.36
devdattakulkarni Apr 26, 2024
373b29c
Merge branch 'master' into develop
devdattakulkarni Apr 28, 2024
c9adc75
Updated command-line flag help messages in provider kubeconfiggenerator
devdattakulkarni Apr 28, 2024
e1fe830
Tests update
devdattakulkarni Apr 28, 2024
26cc793
Merge branch 'master' into develop
devdattakulkarni Apr 29, 2024
0ce98ec
Modified provider-kubeconfig.py to extract kubeconfig from a cluster
devdattakulkarni Apr 7, 2024
116e8d7
provider-kubeconfig.py cleanup
devdattakulkarni Apr 29, 2024
b55c41d
Merge branch 'master' into develop
devdattakulkarni Apr 29, 2024
c29f03e
Merge branch 'master' into develop
devdattakulkarni Apr 30, 2024
8e7ba93
Updated Contributing guidelines
devdattakulkarni Apr 30, 2024
800903f
Merge branch 'master' into develop
devdattakulkarni Apr 30, 2024
0e13271
hello-world example update
devdattakulkarni Apr 30, 2024
3084fe8
wordpress example update
devdattakulkarni Apr 30, 2024
67ddf3a
Merge branch 'master' into develop
devdattakulkarni Apr 30, 2024
a822683
Documentation updates
devdattakulkarni May 1, 2024
7b1ea4d
Merge branch 'master' into develop
devdattakulkarni May 1, 2024
1623dae
README updates
devdattakulkarni May 1, 2024
c6f195c
Merge branch 'master' into develop
devdattakulkarni May 1, 2024
1ca86a8
Consumer UI updates
devdattakulkarni May 4, 2024
7b7a19b
Merge branch 'master' into develop
devdattakulkarni May 4, 2024
a7cd13a
KubePlus chart update - 3.0.37
devdattakulkarni May 4, 2024
e22b0a5
Link to Slack invitation and includes missing updates to Chart.yaml
devdattakulkarni May 6, 2024
d1e8a00
Merge branch 'master' into develop
devdattakulkarni May 6, 2024
e86b689
Application upgrade
devdattakulkarni May 8, 2024
ff5db0c
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
a602470
KubePlus chart - 3.0.38
devdattakulkarni May 8, 2024
e90d28f
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
6a7d383
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
0d26fb0
Added Use cases
devdattakulkarni May 8, 2024
a124418
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
74d6767
Use cases - correct links
devdattakulkarni May 8, 2024
186da0b
Merge branch 'master' into develop
devdattakulkarni May 9, 2024
ed510d8
README updated
devdattakulkarni May 9, 2024
cf2e0dc
Merge branch 'master' into develop
devdattakulkarni May 9, 2024
47d084a
Examples - cleanup
devdattakulkarni May 10, 2024
0b2b896
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
8ffb393
Docs cleanup
devdattakulkarni May 10, 2024
93e8eb5
mutating-webhook - folder cleanup
devdattakulkarni May 10, 2024
c192a2c
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
9243351
platform-operator cleanup
devdattakulkarni May 10, 2024
5099a47
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
57fac82
plugins folder cleanup
devdattakulkarni May 10, 2024
0e41c1a
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
52626c0
More cleanup
devdattakulkarni May 10, 2024
e42a952
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
14d5e9f
Cleanup ++
devdattakulkarni May 10, 2024
56e5b86
Dockerfile updates to download kubectl and helm binaries
devdattakulkarni May 11, 2024
49b4d8e
KubePlus chart - 3.0.39
devdattakulkarni May 11, 2024
007654e
Merge branch 'master' into develop
devdattakulkarni May 11, 2024
07f4eda
Added link to KubePlus mailing list
devdattakulkarni May 14, 2024
1685579
Merge branch 'master' into develop
devdattakulkarni May 16, 2024
dd0ec71
README updates
devdattakulkarni May 16, 2024
13fdc8e
README update
devdattakulkarni May 31, 2024
753bdf2
Merge branch 'master' into develop
devdattakulkarni Jun 3, 2024
9053ff7
GitHub Actions
devdattakulkarni Jun 3, 2024
03d789b
Github actions - take 2
devdattakulkarni Jun 3, 2024
c2c7506
Github actions - take 4
devdattakulkarni Jun 3, 2024
94b44ba
Github actions - take 5
devdattakulkarni Jun 3, 2024
1bc0b62
Github actions - take 6
devdattakulkarni Jun 3, 2024
3d7e0e9
Github actions - take 7
devdattakulkarni Jun 3, 2024
df0b3c7
Github actions - trial 8
devdattakulkarni Jun 3, 2024
dee417f
Github actions - trial 9
devdattakulkarni Jun 3, 2024
b69a489
Github actions - trial 10
devdattakulkarni Jun 3, 2024
181688e
README update
devdattakulkarni Jun 3, 2024
35ef449
Merge branch 'master' into develop
devdattakulkarni Jun 4, 2024
1952e6f
Github actions update - running tests
devdattakulkarni Jun 4, 2024
7c3e246
Github actions - enabling detailed logs
devdattakulkarni Jun 4, 2024
af80362
Github action - Added sleep and enabling test output
devdattakulkarni Jun 4, 2024
b9a027b
Tests update
devdattakulkarni Jun 4, 2024
ce04dd5
Tests update
devdattakulkarni Jun 4, 2024
c60a03e
Github action - running tests
devdattakulkarni Jun 4, 2024
0beca73
Github action update - installing KubePlus chart from deploy dir
devdattakulkarni Jun 4, 2024
f81c66a
Github action update - installing KubePlus chart from deploy dir
devdattakulkarni Jun 4, 2024
f0c326c
Merge branch 'master' into develop
devdattakulkarni Jun 4, 2024
8b39592
Merge branch 'develop' of github.com:cloud-ark/kubeplus into develop
devdattakulkarni Jun 4, 2024
9d75c5b
Updates to helmer and tests
devdattakulkarni Jun 5, 2024
782fff0
KubePlus chart - 3.0.40
devdattakulkarni Jun 5, 2024
6493a81
Support for application force delete
devdattakulkarni Jun 6, 2024
2cf8401
Merge branch 'master' into develop
devdattakulkarni Jun 6, 2024
d474c4a
KubePlus chart update - 3.0.41
devdattakulkarni Jun 6, 2024
ae89314
Merge branch 'master' into develop
devdattakulkarni Jun 10, 2024
48a7897
README update - Referencing GitHub pages site
devdattakulkarni Jun 10, 2024
680538a
Updating import
devdattakulkarni Jun 11, 2024
85f3021
Merge branch 'master' into develop
devdattakulkarni Jun 11, 2024
0c60975
GitHub Action update
devdattakulkarni Jun 11, 2024
9be6cb7
GitHub action update
devdattakulkarni Jun 11, 2024
14c565d
GitHub action update
devdattakulkarni Jun 11, 2024
6d0717c
GitHub action update - take 4
devdattakulkarni Jun 11, 2024
27fd4c2
GitHub action update - take 5
devdattakulkarni Jun 11, 2024
e5f60ba
GitHub action update - take 6
devdattakulkarni Jun 12, 2024
d798544
GitHub action update - take 7
devdattakulkarni Jun 12, 2024
009001c
GitHub action update - take 8
devdattakulkarni Jun 12, 2024
ad4a657
GitHub action update - take 9
devdattakulkarni Jun 12, 2024
bde3617
GitHub action update - take 10
devdattakulkarni Jun 12, 2024
c4dfabf
GitHub action update - take 11
devdattakulkarni Jun 12, 2024
b07fd98
GitHub action update - take 12
devdattakulkarni Jun 12, 2024
156f16f
GitHub action update - take 13
devdattakulkarni Jun 12, 2024
bd4dc71
GitHub action update - take 14
devdattakulkarni Jun 12, 2024
7b8467f
Merge branch 'master' into develop
devdattakulkarni Jun 12, 2024
88cebd5
platform-operator updates
devdattakulkarni Jun 12, 2024
445ca2c
KubePlus chart - 3.0.42
devdattakulkarni Jun 12, 2024
5e138c7
Merge branch 'master' into develop
devdattakulkarni Jun 12, 2024
f08e7f8
Removing kubediscovery as submodule
devdattakulkarni Jun 12, 2024
87ca40b
Merge branch 'master' into develop
devdattakulkarni Jun 12, 2024
bdec5a8
Merge branch 'master' into develop
devdattakulkarni Jun 13, 2024
ac5606b
Added ephemeral-storage request to component containers
devdattakulkarni Jun 13, 2024
ffcb794
Merge branch 'master' into develop
devdattakulkarni Jun 16, 2024
3cfef41
Day2 operation example update
devdattakulkarni Jun 16, 2024
c222e72
Example updates
devdattakulkarni Jun 19, 2024
b5c485b
Examples update - cleanup
devdattakulkarni Jun 19, 2024
20b234d
Merge branch 'master' into develop
devdattakulkarni Jun 19, 2024
56bf569
Merge branch 'master' into develop
devdattakulkarni Jun 22, 2024
af51633
KubePlus chart update - version 3.0.44
devdattakulkarni Jun 22, 2024
65bdcfe
Merge branch 'master' into develop
devdattakulkarni Jul 25, 2024
66578a1
Ignoring Succeeded Pods when calculating num_of_not_running pods
devdattakulkarni Jul 25, 2024
8d858ca
Rejecting cr instance creation if previous NS is in Terminating state
devdattakulkarni Jul 25, 2024
71408e2
Merge branch 'master' into develop
devdattakulkarni Jul 25, 2024
15f457c
AdmissionResponse cannot be empty string
devdattakulkarni Jul 25, 2024
71d7f6d
Correctly checking if previous NS not in Terminating state
devdattakulkarni Jul 26, 2024
1039bc2
Merge branch 'master' into develop
devdattakulkarni Jul 26, 2024
fce2971
Merge branch 'master' into develop
devdattakulkarni Jul 26, 2024
55a2165
KubePlus chart - 3.0.45
devdattakulkarni Jul 26, 2024
3f9d5cb
WIP: Licensing support
devdattakulkarni Aug 2, 2024
dbd5e8f
Merge branch 'master' into develop
devdattakulkarni Aug 2, 2024
e41ec1b
License support - tests
devdattakulkarni Aug 3, 2024
6c4f032
License support - GH action typo fix
devdattakulkarni Aug 3, 2024
432f2de
License support - Test cleanup and README update
devdattakulkarni Aug 3, 2024
18f016a
License support - tests and README update
devdattakulkarni Aug 3, 2024
a5e62f8
License support - review feedback update
devdattakulkarni Aug 3, 2024
0d119a9
Merge branch 'master' into develop
devdattakulkarni Aug 3, 2024
a56456b
KubePlus chart - 3.0.46
devdattakulkarni Aug 3, 2024
f2719af
Merge branch 'master' into develop
devdattakulkarni Aug 6, 2024
9f238a8
Example update - hello-world
devdattakulkarni Aug 6, 2024
74be66b
Merge branch 'master' into develop
devdattakulkarni Aug 6, 2024
a133e94
Ensuring that app status field is correctly updated on app update
devdattakulkarni Aug 7, 2024
4f2cbe0
Ensuring app status field is correctly updated on status update
devdattakulkarni Aug 8, 2024
7549718
KubePlus chart - 3.0.47
devdattakulkarni Aug 8, 2024
a526c35
Merge branch 'master' into develop
devdattakulkarni Aug 9, 2024
edbb76e
Updating cleanup Job
devdattakulkarni Aug 9, 2024
e9efee8
Updating delete kubeplus components script
devdattakulkarni Aug 9, 2024
10c2c4d
KubePlus chart - 4.0.0
devdattakulkarni Aug 9, 2024
d1ee14a
Merge branch 'master' into develop
devdattakulkarni Oct 25, 2024
0fb031b
README updates
devdattakulkarni Oct 25, 2024
23f9850
Updating GH action
devdattakulkarni Oct 25, 2024
755704b
Skipping test_application_upgrade from CI run
devdattakulkarni Oct 25, 2024
beacded
Adding detailed (describe) output to spot check
devdattakulkarni Oct 25, 2024
36fb02e
Tests update - Printing out of 'kubectl appstatus' instead of asserts
devdattakulkarni Oct 25, 2024
2dd75d7
Merge branch 'master' into develop
devdattakulkarni Nov 13, 2024
8624e43
Mutating webhook updates
devdattakulkarni Nov 14, 2024
66208d2
README and Docs update to refer to 4.0.1 chart
devdattakulkarni Nov 14, 2024
442e96a
Updates to GH action
devdattakulkarni Nov 14, 2024
a45c177
Merge branch 'master' into develop
devdattakulkarni Nov 20, 2024
230ee68
Updates to provider-kubeconfig.py to generate consumer kubeconfig
devdattakulkarni Nov 21, 2024
835a768
Merge branch 'master' into develop
devdattakulkarni Dec 2, 2024
e7999ff
Merge branch 'master' into develop
devdattakulkarni Jan 14, 2025
8c326de
Adding request limits to ephemeral-storage
devdattakulkarni Jan 14, 2025
0f4bbd4
KubePlus chart - 4.0.2
devdattakulkarni Jan 14, 2025
e02fe35
Merge branch 'master' into develop
devdattakulkarni Jan 14, 2025
acd9576
Merge branch 'master' into develop
devdattakulkarni Jan 21, 2025
84f7c0c
Mutating webhook update
devdattakulkarni Jan 22, 2025
781da1c
KubePlus chart - 4.0.3
devdattakulkarni Jan 22, 2025
fe42042
KubePlus chart update - 4.0.4
devdattakulkarni Jan 31, 2025
d4c9222
Merge branch 'master' into develop
devdattakulkarni Jan 31, 2025
38b2f7d
Merge branch 'master' into develop
devdattakulkarni Jan 31, 2025
87c1553
Updating the resources intercepted in MutatingWebhookConfiguration
devdattakulkarni Jan 31, 2025
bf46f19
KubePlus chart update - 4.1.0
devdattakulkarni Jan 31, 2025
ad30e6b
Merge branch 'master' into develop
devdattakulkarni Feb 21, 2025
03971e5
Consumer ui - new image
devdattakulkarni Feb 21, 2025
b42d606
Merge branch 'master' into develop
devdattakulkarni Feb 21, 2025
94b2d0b
Application migration between Kinds
devdattakulkarni Feb 23, 2025
ba54501
KubePlus chart - 4.1.2
devdattakulkarni Feb 23, 2025
77e8ee2
Merge branch 'master' into develop
devdattakulkarni Feb 23, 2025
ba85870
Hello world example updates
devdattakulkarni Feb 24, 2025
b29bdfe
Merge branch 'master' into develop
devdattakulkarni Mar 4, 2025
1853c8f
GitHub action updated
devdattakulkarni Mar 4, 2025
0858ab5
GH action update
devdattakulkarni Mar 4, 2025
8b26b34
GH action update
devdattakulkarni Mar 4, 2025
4314a87
GitHub action updated
devdattakulkarni Mar 4, 2025
4d2acb3
Dockerfiles update
devdattakulkarni Mar 4, 2025
c7ecd5f
GitHub action update
devdattakulkarni Mar 4, 2025
e63179c
GH action updates cont.
devdattakulkarni Mar 4, 2025
410fac0
Merge branch 'master' into develop
devdattakulkarni Mar 4, 2025
6970aed
Updating component versions which had to be built with new Ubuntu base
devdattakulkarni Mar 9, 2025
dc94624
Merge branch 'master' into develop
devdattakulkarni Mar 9, 2025
387a38f
Merge branch 'master' into develop
devdattakulkarni Mar 9, 2025
4865996
KubePlus chart - 4.1.3
devdattakulkarni Mar 9, 2025
d80eba6
Metrics plugin update
devdattakulkarni Mar 9, 2025
b702da8
Merge branch 'master' into develop
devdattakulkarni Mar 11, 2025
e7ea3e8
kubectl metrics plugin update
devdattakulkarni Mar 11, 2025
6bc0ec9
Merge branch 'master' into develop
devdattakulkarni Mar 11, 2025
6e41c5a
Updated kubectl applogs plugin to remove Namespace parameter
devdattakulkarni Mar 11, 2025
1b8ba1f
Merge branch 'master' into develop
devdattakulkarni Mar 11, 2025
f29578c
kubectl appurl plugins update
devdattakulkarni Mar 12, 2025
dad7784
Merge branch 'master' into develop
devdattakulkarni Mar 12, 2025
06ca48c
Removing Namespace parameter from kubectl plugins
devdattakulkarni Mar 12, 2025
18a7581
Merge branch 'master' into develop
devdattakulkarni Mar 13, 2025
8a09e43
Merge branch 'master' into develop
devdattakulkarni Mar 18, 2025
6778e06
provider-kubeconfig updates
devdattakulkarni Mar 18, 2025
63d6876
Merge branch 'master' into develop
devdattakulkarni Mar 18, 2025
7825e63
Updated getting-started with explanation of namespace to use
devdattakulkarni Mar 18, 2025
1e2a984
Addressing issues related to multiple apps with same name and differe…
devdattakulkarni Mar 19, 2025
9e3c371
KubePlus chart - 4.1.4
devdattakulkarni Mar 19, 2025
4f15767
Merge branch 'master' into develop
devdattakulkarni Mar 20, 2025
477b9f0
Displaying individual Pod metrics (CPU and Memory)
devdattakulkarni Mar 20, 2025
c78cd64
Merge branch 'master' into develop
devdattakulkarni Mar 20, 2025
82ae114
Modifying Pod names to remove hypens to make them compatible with Pro…
devdattakulkarni Mar 20, 2025
e3a654e
Merge branch 'master' into develop
devdattakulkarni Mar 20, 2025
769ea78
Merge branch 'master' into develop
devdattakulkarni Mar 20, 2025
63d0a82
WIP: RAG setup example
devdattakulkarni Mar 21, 2025
90fbc0d
Merge branch 'master' into develop
devdattakulkarni Mar 25, 2025
830d211
Updated the GitHub action to release plugins
devdattakulkarni Mar 25, 2025
f183762
Merge branch 'master' into develop
devdattakulkarni Mar 25, 2025
75f6eef
Updates to crd-helper/kubeconfiggenerator
devdattakulkarni Jul 13, 2025
17073f0
KubePlus chart - 4.2.0
devdattakulkarni Jul 15, 2025
7088f90
README updated to refer to kubectl plugins generated by GH action
devdattakulkarni Nov 4, 2025
1fa0bbd
Merge branch 'master' into develop
devdattakulkarni Nov 4, 2025
bf843b8
README updated
devdattakulkarni Nov 4, 2025
de65523
Merge branch 'master' into develop
devdattakulkarni Nov 4, 2025
2a10341
Merge branch 'master' into develop
devdattakulkarni Feb 9, 2026
3738860
Merge branch 'master' into develop
devdattakulkarni Feb 12, 2026
c86e373
Merge branch 'master' into develop
devdattakulkarni Feb 17, 2026
236028e
README updates
devdattakulkarni Feb 18, 2026
64f2003
KubePlus helm chart clean up
devdattakulkarni Feb 19, 2026
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
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
# KubePlus - Kubernetes Operator for Multi-Instance Multi-tenancy

KubePlus is a Kubernetes Operator that enables teams to deliver applications as managed, multi-tenant services on Kubernetes. It bridges the gap between deploying an application and operating it at scale for multiple customers or internal teams, automating the isolation, access control, and lifecycle management that true multi-tenancy requires.

Many teams find that simply deploying a Helm chart is not enough when they need to offer the same application to many tenants or customers. Each tenant typically needs a separate instance with its own namespace, controlled access, resource limits, and upgrade paths. Building and maintaining this automation — and doing so safely for non-admin users — can require significant engineering effort.

KubePlus addresses these challenges by converting a Helm chart into a Kubernetes custom API (CRD) and managing the full lifecycle of each instance. When a user creates an instance of the custom resource, KubePlus creates a dedicated namespace, applies appropriate policies and quotas, deploys the underlying Helm release, and tracks all resources owned by that instance. This model enables safe delegation and operational visibility, while keeping everything within Kubernetes’ native API machinery.


## Intro

KubePlus is a turn-key solution that transforms any containerized application into a multi-instance SaaS.
KubePlus is a turn-key Kubernetes Operator that transforms any containerized application packaged as a Helm chart into a managed, multi-tenant service. It implements the multi-instance multi-tenancy (MIMT) pattern, providing isolated application instances per tenant along with governance, policy enforcement, and lifecycle automation.

<p align="center">
<img src="./docs/application-stacks-1.png" width="700" height="150" class="center">
</p>

Multi-instance multi-tenancy (MIMT) is a software architecture pattern in which a separate instance of an application is provided per tenant. The typical adopters of this pattern are application hosting providers, platform engineering teams, and B2B software vendors that need to host and manage dedicated instances of a software application for different tenants and effectively deliver that application as a managed service. KubePlus is a turn-key solution to build such managed services on Kubernetes.
It comes with end to end automation to help you deploy and manage your application on Kubernetes following the MIMT pattern. This includes isolation and security between instances along with easy to use APIs for managing upgrades, customization and resource utilization.
In the context of Kubernetes, multi-instance multi-tenancy (MIMT) means providing each tenant with its own isolated application instance, typically in a dedicated namespace. Unlike shared multi-tenant models where many tenants share the same application instance, MIMT ensures isolation, controlled access, and predictable resource usage. KubePlus implements the MIMT pattern by automating namespace creation, policy enforcement, RBAC mappings, and lifecycle operations for each tenant instance. The typical adopters of this pattern are application hosting providers, platform engineering teams, and B2B software vendors that need to host and manage dedicated instances of a software application for different tenants and effectively deliver that application as a managed service.
KubePlus provides end-to-end automation to deploy and operate applications following the MIMT pattern on Kubernetes, including instance isolation, resource governance, RBAC enforcement, customization, and upgrades.

KubePlus takes an application Helm chart and wraps it under a Kubernetes API (CRD). Whenever an application instance is created using this API, KubePlus ensures that every instance is created in a separate namespace and the required multi-tenancy policies are applied in order to ensure isolation between instances. The API supports CRUD operations on the instances of the CRD, RBAC, version upgrades, and additional customizations for each instance.

<p align="center">
<img src="./docs/kubeplus-with-properties.png" width="700" height="250" class="center">
Expand All @@ -25,7 +31,7 @@ KubePlus takes an application Helm chart and wraps it in a Kubernetes API (CRD).

### Security

The KubePlus Operator does not need any admin-level permissions on a cluster for application providers. This allows application providers to offer their managed services on any K8s clusters including those owned by their customers. KubePlus comes with a small utility that allows you to create provider specific kubeconfig on a cluster in order to enable application deployments and management. Providers have an ability to create a consumer specific further limited kubeconfig to allow for self-service provisioning of application instances as well.
Because KubePlus creates custom APIs and controls instance provisioning, it enables service providers to delegate service operations without granting full cluster admin rights. This makes it practical to run managed services even on customer-owned clusters or shared environments. KubePlus comes with a small utility that allows you to create provider specific kubeconfig on a cluster in order to enable application deployments and management. Providers have an ability to create a consumer specific further limited kubeconfig to allow for self-service provisioning of application instances as well.


### Resource Utilization
Expand Down Expand Up @@ -127,7 +133,7 @@ https://github.com/cloud-ark/kubeplus/assets/732525/efb255ff-fc73-446b-a583-4b89
Follow: [Getting Started](examples/getting-started.md)
## Use Cases

KubePlus can be used for:
KubePlus supports a variety of production scenarios. Whether you are a platform team needing to deliver internal tools as self-service services, a hosting provider offering multiple instances of open source applications, or a software vendor building a SaaS offering on Kubernetes, KubePlus’ automation and isolation model simplifies operations.

- [Application Hosting](./examples/multitenancy/application-hosting/wordpress/steps.txt)
- [Platform Engineering](./examples/multitenancy/platform-engineering/steps.txt)
Expand Down
49 changes: 7 additions & 42 deletions deploy/kubeplus-chart/templates/kubeplus-components-6.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,6 @@ data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm
---
# No need for admin role in a namespace
#apiVersion: rbac.authorization.k8s.io/v1
#kind: RoleBinding
#metadata:
# name: kubeplus:namespace-admin
# namespace: {{ .Release.Namespace }}
#roleRef:
# apiGroup: rbac.authorization.k8s.io
# kind: ClusterRole
# name: admin
#subjects:
#- kind: ServiceAccount
# name: kubeplus
# namespace: {{ .Release.Namespace }}
# apiGroup: ""
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
Expand Down Expand Up @@ -135,10 +119,6 @@ subjects:
name: kubeplus
namespace: {{ .Release.Namespace }}
apiGroup: ""
#- kind: ServiceAccount
# name: kubeplus-saas-provider
# namespace: {{ .Release.Namespace }}
# apiGroup: ""
- kind: ServiceAccount
name: kubeplus-saas-consumer
namespace: {{ .Release.Namespace }}
Expand Down Expand Up @@ -169,10 +149,6 @@ subjects:
name: kubeplus
namespace: {{ .Release.Namespace }}
apiGroup: ""
#- kind: ServiceAccount
# name: kubeplus-saas-provider
# namespace: {{ .Release.Namespace }}
# apiGroup: ""
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
Expand All @@ -197,9 +173,6 @@ roleRef:
kind: Role
name: kubeplus-saas-provider-consumer
subjects:
#- kind: ServiceAccount
# name: kubeplus-saas-provider
# namespace: {{ .Release.Namespace }}
- kind: ServiceAccount
name: kubeplus-saas-consumer
namespace: {{ .Release.Namespace }}
Expand All @@ -213,12 +186,6 @@ metadata:
name: kubeplus
namespace: {{ .Release.Namespace }}
---
#kind: ServiceAccount
#apiVersion: v1
#metadata:
# name: kubeplus-saas-provider
# namespace: {{ .Release.Namespace }}
#---
kind: ServiceAccount
apiVersion: v1
metadata:
Expand Down Expand Up @@ -331,9 +298,8 @@ spec:
spec:
serviceAccount: kubeplus-saas-provider
initContainers:
#containers:
- name: webhook-cert-setup
image: {{ .Values.WEBHOOK_INIT_CONTAINER }} #gcr.io/cloudark-kubeplus/webhook-tls-getter:3.0.26
image: {{ .Values.WEBHOOK_INIT_CONTAINER }}
imagePullPolicy: IfNotPresent
env:
- name: KUBEPLUS_NAMESPACE
Expand All @@ -350,7 +316,7 @@ spec:
- "webhook-tls-certificates"
containers:
- name: kubeconfiggenerator
image: {{ .Values.CRD_REGISTRATION_HELPER }} #gcr.io/cloudark-kubeplus/kubeconfiggenerator:3.0.27
image: {{ .Values.CRD_REGISTRATION_HELPER }}
imagePullPolicy: IfNotPresent
resources:
requests:
Expand All @@ -362,15 +328,14 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
#command: ["./root/kubeconfiggenerator.sh"]
command: [ "python3", "/root/kubeconfiggenerator.py"]
args:
- "$(KUBEPLUS_NAMESPACE)"
volumeMounts:
- name: shared-data
mountPath: /crdinstances
- name: crd-hook
image: {{ .Values.MUTATING_WEBHOOK }} #gcr.io/cloudark-kubeplus/pac-mutating-admission-webhook:3.0.14
image: {{ .Values.MUTATING_WEBHOOK }}
imagePullPolicy: IfNotPresent
resources:
requests:
Expand All @@ -393,7 +358,7 @@ spec:
- name: shared-data
mountPath: /crdinstances
- name: platform-operator
image: {{ .Values.PLATFORM_OPERATOR }} #gcr.io/cloudark-kubeplus/platform-operator:3.0.6
image: {{ .Values.PLATFORM_OPERATOR }}
imagePullPolicy: IfNotPresent
resources:
requests:
Expand All @@ -402,7 +367,7 @@ spec:
ephemeral-storage: "10Mi"
command: [ "/platform-operator"]
- name: consumerui
image: {{ .Values.CONSUMERUI }} #gcr.io/cloudark-kubeplus/consumerui:0.0.6
image: {{ .Values.CONSUMERUI }}
imagePullPolicy: IfNotPresent
resources:
requests:
Expand All @@ -411,7 +376,7 @@ spec:
ephemeral-storage: "500Mi"
command: [ "python3", "/root/consumerui.py"]
- name: helmer
image: {{ .Values.HELMER }} #gcr.io/cloudark-kubeplus/helm-pod:3.0.17
image: {{ .Values.HELMER }}
imagePullPolicy: IfNotPresent
resources:
requests:
Expand Down Expand Up @@ -462,7 +427,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: {{ .Values.RESOURCE_CLEANER }} #gcr.io/cloudark-kubeplus/delete-kubeplus-resources:3.0.12
image: {{ .Values.RESOURCE_CLEANER }}
imagePullPolicy: IfNotPresent
command: ["./root/delete-kubeplus-components.sh"]
args:
Expand Down