-
Notifications
You must be signed in to change notification settings - Fork 37
Update docs for v0.5 #324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Update docs for v0.5 #324
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| /* | ||
| Copyright 2025 The Kube Bind Authors. | ||
|
|
||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||
| you may not use this file except in compliance with the License. | ||
| You may obtain a copy of the License at | ||
|
|
||
| http://www.apache.org/licenses/LICENSE-2.0 | ||
|
|
||
| Unless required by applicable law or agreed to in writing, software | ||
| distributed under the License is distributed on an "AS IS" BASIS, | ||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| See the License for the specific language governing permissions and | ||
| limitations under the License. | ||
| */ | ||
|
|
||
| package provider | ||
|
|
||
| import "sigs.k8s.io/multicluster-runtime/pkg/multicluster" | ||
|
|
||
| // MultiClusterProvider is an interface that combines multicluster.Provider and multicluster.ProviderRunnable. | ||
| type MultiClusterProvider interface { | ||
| multicluster.Provider | ||
| multicluster.ProviderRunnable | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,65 @@ | ||
| # Backend | ||
|
|
||
| The kube-bind backend provides service export and binding capabilities for single Kubernetes clusters acting as backend or many clusters with support for multiple cluster providers through the multicluster-runtime architecture. | ||
|
|
||
| ## Architecture | ||
|
|
||
| Starting with v0.5.0, the backend leverages `sigs.k8s.io/multicluster-runtime` for enhanced cluster management capabilities. | ||
|
|
||
| ### Key Components | ||
|
|
||
| - **MultiCluster Runtime Integration**: Built on `sigs.k8s.io/multicluster-runtime` for provider-agnostic cluster operations | ||
| - **Provider Support**: Extensible provider system supporting different backend implementations | ||
| - **Manager Architecture**: Uses `mcmanager.Manager` for cluster-aware resource management | ||
|
|
||
| ### Supported Providers | ||
|
|
||
| - **Default Provider**: Standard Kubernetes cluster support | ||
| - **KCP Provider**: Integration with [kcp](https://github.com/kcp-dev/kcp) through `github.com/kcp-dev/multicluster-provider` | ||
|
|
||
| ## Configuration | ||
|
|
||
| The backend can be configured to use different providers: | ||
|
|
||
| ```bash | ||
| ./bin/backend \ | ||
| --multicluster-runtime-provider kcp \ | ||
| --server-url=$(kubectl get apiexportendpointslice kube-bind.io -o jsonpath="{.status.endpoints[0].url}") \ | ||
| # ... other options | ||
| ``` | ||
|
|
||
| ### Provider Configuration | ||
|
|
||
| #### KCP Provider | ||
|
|
||
| When using the KCP provider (`--multicluster-runtime-provider kcp`), the backend: | ||
|
|
||
| - Connects to kcp workspaces through APIExports | ||
| - Manages resources across logical clusters | ||
| - Supports advanced multi-tenancy features | ||
| - Enables workspace-based isolation | ||
|
|
||
| #### Default Provider | ||
|
|
||
| The default provider works with standard Kubernetes clusters and provides: | ||
|
|
||
| - Direct cluster connectivity | ||
| - Namespace-based isolation | ||
| - Standard RBAC integration | ||
|
|
||
| ## API Changes | ||
|
|
||
| The backend now supports the v1alpha2 API with significant architectural improvements: | ||
|
|
||
| - **Resource-Based Exports**: APIServiceExport now uses resource references instead of embedded CRDs | ||
| - **BoundSchema Support**: Integration with BoundSchema resources for better schema management | ||
| - **Multi-Resource Support**: Single exports can reference multiple CRDs efficiently | ||
|
|
||
| ## Controllers | ||
|
|
||
| The backend includes several controllers for managing the export/binding lifecycle: | ||
|
|
||
| - **ClusterBinding Controller**: Manages cluster binding lifecycle | ||
| - **ServiceExport Controller**: Handles APIServiceExport resources | ||
| - **ServiceExportRequest Controller**: Processes export requests | ||
| - **ServiceNamespace Controller**: Manages namespace isolation |
14 changes: 11 additions & 3 deletions
14
docs/content/developers/konnector/controllers/cluster/apiserviceexport.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
docs/content/developers/konnector/controllers/cluster/boundschema.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # BoundSchema | ||
|
|
||
| The BoundSchema controller manages `BoundSchema` resources in the consumer cluster, introduced in v1alpha2. | ||
|
|
||
| `BoundSchema` represents bound API resource schemas in consumer clusters and tracks the underlying status of synced resources. | ||
|
|
||
| ## Key Features | ||
|
|
||
| - **Schema Validation**: Ensures the bound schema is valid and properly applied | ||
| - **Drift Detection**: Monitors for differences between expected and actual schema state | ||
| - **Condition Management**: Provides status conditions for validation and drift detection | ||
|
|
||
| ## BoundSchema Structure | ||
|
|
||
| ```yaml | ||
| apiVersion: kube-bind.io/v1alpha2 | ||
| kind: BoundSchema | ||
| metadata: | ||
| labels: | ||
| kube-bind.io/exported: "true" | ||
| name: cowboys.wildwest.dev | ||
| namespace: kube-bind-flsd8 | ||
| spec: | ||
| group: wildwest.dev | ||
| informerScope: Namespaced | ||
| names: | ||
| kind: Cowboy | ||
| listKind: CowboyList | ||
| plural: cowboys | ||
| singular: cowboy | ||
| scope: Namespaced | ||
| versions: ... | ||
| ``` | ||
|
|
||
| ## Integration with APIServiceExport | ||
|
|
||
| BoundSchema works closely with the APIServiceExport resource-based model: | ||
|
|
||
| 1. APIServiceExport references multiple resources via `Resources []APIServiceExportResource` | ||
| 2. Each resource can map to a BoundSchema in the consumer cluster | ||
| 3. BoundSchema tracks the actual application and status of these schemas | ||
| 4. This enables better multi-resource management and status tracking |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,32 @@ | ||
| # Setting Up kube-bind | ||
|
|
||
| kube-bind supports multiple deployment scenarios and backend providers to meet different requirements. | ||
|
|
||
| ## Setup Options | ||
|
|
||
| ### Standard Kubernetes Setup | ||
|
|
||
| - **[Quickstart](quickstart.md)**: Get started quickly with the default provider | ||
| - **[Helm Deployment](helm.md)**: Production deployment using Helm charts | ||
| - **[Local Setup with Kind](local-setup-with-kind.md)**: Local development environment | ||
| - **[kubectl Plugin](kubectl-plugin.md)**: Install and use the kubectl-bind plugin | ||
|
|
||
| ### Advanced Multi-Cluster Setup | ||
|
|
||
| - **[KCP Integration](kcp-setup.md)**: Advanced multi-tenant setup with kcp workspaces and APIExports | ||
|
|
||
| ## Architecture Overview | ||
|
|
||
| Starting with v0.5.0, kube-bind uses a multicluster-runtime architecture that supports: | ||
|
|
||
| - **Multiple Providers**: Choose between standard Kubernetes or KCP backends | ||
| - **Enhanced API**: v1alpha2 API with resource-based exports and BoundSchema support | ||
| - **Flexible Deployment**: Support for various cluster topologies and requirements | ||
|
|
||
| Choose the setup that best fits your use case: | ||
|
|
||
| - Use **Quickstart** or **Local Setup with Kind** for development and testing | ||
| - Use **Helm Deployment** for production environments with standard Kubernetes | ||
| - Use **KCP Integration** for advanced multi-tenant scenarios with workspace isolation | ||
|
|
||
| {% include "partials/section-overview.html" %} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.