Skip to content

Commit af13b41

Browse files
committed
docs
1 parent d76d14e commit af13b41

8 files changed

Lines changed: 706 additions & 5 deletions

File tree

README.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,25 @@ To get familiar with setting up the environment, please check out docs at [kube-
6464

6565
## API Changes in v0.6.0 release
6666

67-
Addition of `PermissionClaims` to APIServiceExportSpec. It allows service provider to specify what additional resources are needed by the service consumer to effectively use the exported API. In example of a database service, the service consumer might need to create Secrets for database credentials, or ConfigMaps for configuration settings.
68-
69-
Because objects are namespaced on provider and consumer side, to establish correct RBAC `APIServiceNamespace` controller now creates Roles and RoleBindings.
70-
There is caviate that if backend operates in `ClusterScope` mode, the necessary cluster-wide permissions are created.
71-
Importnat: If provider wants to iniciate object, like `ConfigMap` or `Secret`, the provider needs to create `APIServiceNamespace` first, so that the necessary Roles and RoleBindings are created. This will
67+
### Catalog API
68+
Introduction of new `Collection` and `Module` CRDs for better service organization:
69+
- **Collections**: Function as folders in the UI, grouping related modules
70+
- **Modules**: Group multiple CRDs with their related resources and permission claims
71+
72+
### Enhanced Permission Claims
73+
Major improvements to `PermissionClaims` in APIServiceExportSpec:
74+
- **NamedResources**: Specify exact resources by name and namespace
75+
- **Combined Selectors**: Use both label selectors AND named resources (both must match)
76+
- **Granular Control**: More precise access control for service resources
77+
78+
### Provider-side Namespace Management
79+
Enhanced namespace management on the provider side:
80+
- **APIServiceNamespace Controller**: Automatically creates Roles and RoleBindings
81+
- **Namespace Isolation**: Each consumer gets isolated provider-side namespaces
82+
- **RBAC Automation**: Proper permissions created based on scope (namespaced vs cluster-scoped)
83+
- **Namespace Pre-provisioning**: Providers can pre-create namespaces for better UX
84+
85+
**Important**: When `ClusterScope` mode is used, cluster-wide permissions are created instead of namespaced ones.
7286

7387
## API Changes in v0.5.0 release
7488

docs/content/.pages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ nav:
22
- Home:
33
- index.md
44
- Setup: setup
5+
- Usage: usage
56
- Contributing: contributing
67
- Developers: developers
78
- Reference: reference

docs/content/index.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ kube-bind is a prototype project that aims to provide better support for service
1111
- The service provider does not inject controllers/operators into the service consumer's cluster.
1212
- A single vendor-neutral, OpenSource agent per consumer cluster connects it with the requested services.
1313

14+
## Key Features
15+
16+
- **Catalog API**: Organize exported services using Collections (folders) and Modules (service definitions)
17+
- **Provider-side Namespace Management**: Automatic namespace provisioning and RBAC setup on provider clusters
18+
- **Enhanced Permission Claims**: Granular resource access with both label selectors and named resource support
19+
- **Multi-backend Support**: Works with standard Kubernetes and KCP backends through multicluster-runtime
20+
1421
## Quickstart
1522

1623
To get started with trying out kube-bind on your local system, check out our [Quickstart](./setup/quickstart.md) instructions.

docs/content/setup/index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,12 @@ Choose the setup that best fits your use case:
2929
- Use **Helm Deployment** for production environments with standard Kubernetes
3030
- Use **KCP Integration** for advanced multi-tenant scenarios with workspace isolation
3131

32+
## Next Steps
33+
34+
After completing your setup, explore these guides:
35+
36+
- **[Usage Guide](../usage/index.md)**: Learn common workflows and the new Catalog API
37+
- **[Migration Guide](../usage/migration.md)**: Upgrade from previous versions
38+
- **[Developer Documentation](../developers/index.md)**: Understand the architecture and contribute
39+
3240
{% include "partials/section-overview.html" %}

docs/content/setup/quickstart.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,47 @@ kubectl ws create provider --enter
7575
kubectl apply -f deploy/examples/crd-foo.yaml
7676
```
7777

78+
* Optionally, create Catalog API resources for better organization (v0.6.0+):
79+
80+
```shell
81+
# Create a Module for better service definition
82+
kubectl apply -f - <<EOF
83+
apiVersion: catalog.kube-bind.io/v1alpha1
84+
kind: Module
85+
metadata:
86+
name: mongodb-module
87+
spec:
88+
scope: Namespaced
89+
resources:
90+
- group: mangodb.com
91+
version: v1alpha1
92+
resource: mangodbs
93+
permissionClaims:
94+
- groupResource:
95+
group: ""
96+
resource: "secrets"
97+
selector:
98+
labelSelector:
99+
matchLabels:
100+
app: "mongodb"
101+
namedResources:
102+
- name: "mongodb-credentials"
103+
namespace: "default"
104+
EOF
105+
106+
# Create a Collection to group services
107+
kubectl apply -f - <<EOF
108+
apiVersion: catalog.kube-bind.io/v1alpha1
109+
kind: Collection
110+
metadata:
111+
name: database-services
112+
spec:
113+
description: "Database services from our platform"
114+
modules:
115+
- name: mongodb-module
116+
EOF
117+
```
118+
78119
* start the backend binary with the right flags:
79120
```shell
80121
make build

docs/content/usage/.pages

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
title: Usage
2+
nav:
3+
- index.md
4+
- migration.md

0 commit comments

Comments
 (0)