Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion cli/cmd/kubectl-bind/cmd/kubectlBind_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ func TestKubectlBindCommand(t *testing.T) {
rootCmd := KubectlBindCommand()

require.Equal(t, "kubectl-bind", rootCmd.Use, "Unexpected one-line command description")
require.Equal(t, "kubectl plugin for Kube-Bind.io, bind different remote types into the current cluster.", rootCmd.Short, "Unexpected short command description")
require.Equal(t, "kubectl plugin for kube-bind, bind different remote types into the current cluster.", rootCmd.Short, "Unexpected short command description")
require.Contains(t, rootCmd.Long, "To bind a remote service, use the 'kubectl bind' command.", "Unexpected lond command Long")
require.Equal(t, rootCmd.Example, fmt.Sprintf(bindcmd.BindExampleUses, "kubectl"), "Unexpected command Example")
}
Expand Down
2 changes: 1 addition & 1 deletion cli/pkg/kubectl/bind/cmd/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ func New(streams genericclioptions.IOStreams) (*cobra.Command, error) {
opts := plugin.NewBindOptions(streams)
cmd := &cobra.Command{
Use: "bind",
Short: "kubectl plugin for Kube-Bind.io, bind different remote types into the current cluster.",
Short: "kubectl plugin for kube-bind, bind different remote types into the current cluster.",
Long: help.Doc(`
kube-bind is a project that aims to provide better support for
service providers and consumers that reside in distinct Kubernetes clusters.
Expand Down
2 changes: 1 addition & 1 deletion contrib/kcp/hack/update-kcp-codegen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ fi

REPO_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)

# Generate KCP API resources from CRDs
# Generate kcp API resources from CRDs
(
${KCP_APIGEN_GEN} --input-dir "${REPO_ROOT}"/deploy/crd --output-dir "${REPO_ROOT}"/contrib/kcp/deploy/resources
)
2 changes: 1 addition & 1 deletion contrib/kcp/test/e2e/backend.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func bootstrapBackend(t *testing.T, server kcptestingserver.RunningServer, scope

_, backendKubeconfig := wsConfig(t, server, logicalcluster.NewPath("root").Join("kube-bind"))

t.Log("Starting kube-bind backend for KCP")
t.Log("Starting kube-bind backend for kcp")
addr, _ := framework.StartBackend(t,
"--kubeconfig="+backendKubeconfig,
"--multicluster-runtime-provider=kcp",
Expand Down
2 changes: 1 addition & 1 deletion contrib/kcp/test/e2e/browser.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func performBindingWithBrowser(t *testing.T, backendAddr string, clusterID strin
})
}

// simulateKCPBrowser simulates browser interaction for KCP binding using templates.
// simulateKCPBrowser simulates browser interaction for kcp binding using templates.
func simulateKCPBrowser(t *testing.T, authURLCh chan string, template string) {
browser := surf.NewBrowser()
authURL := <-authURLCh
Expand Down
2 changes: 1 addition & 1 deletion contrib/kcp/test/e2e/kcp.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ func createApiBinding(t testing.TB, client *kcpclientset.ClusterClientset, path

func bootstrapKCP(t testing.TB, server kcptestingserver.RunningServer) {
t.Helper()
t.Log("Bootstrapping KCP")
t.Log("Bootstrapping kcp")

cfg := server.BaseConfig(t)
cfg.Host += "/clusters/root"
Expand Down
2 changes: 1 addition & 1 deletion contrib/kcp/test/e2e/kcp_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func TestKCPNamespacedScope(t *testing.T) {

func testKcpIntegration(t *testing.T, scope kubebindv1alpha2.InformerScope) {
t.Helper()
t.Logf("Testing KCP integration with informer scope %s, tempdir: %s", scope, t.TempDir())
t.Logf("Testing kcp integration with informer scope %s, tempdir: %s", scope, t.TempDir())

// dex
framework.StartDex(t)
Expand Down
4 changes: 2 additions & 2 deletions deploy/charts/backend/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: backend
description: A Helm chart for Kube-bind backend deployment
description: A Helm chart for kube-bind backend deployment

# A chart can be either an 'application' or a 'library' chart.
#
Expand All @@ -21,4 +21,4 @@ version: 0.1.0
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "v0.5.1"
appVersion: "v0.5.1"
8 changes: 4 additions & 4 deletions docs/content/developers/backend/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Starting with v0.5.0, the backend leverages `sigs.k8s.io/multicluster-runtime` f
### 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`
- **kcp Provider**: Integration with [kcp](https://www.kcp.io/) through `github.com/kcp-dev/multicluster-provider`

## Configuration

Expand All @@ -30,12 +30,12 @@ The backend can be configured to use different providers:

### Provider Configuration

#### KCP Provider
#### kcp Provider

When using the KCP provider (`--multicluster-runtime-provider kcp`), the backend:
When using the kcp provider (`--multicluster-runtime-provider kcp`), the backend:

- Connects to kcp workspaces through APIExports
- Manages resources across logical clusters
- Manages resources across logical clusters
- Supports advanced multi-tenancy features
- Enables workspace-based isolation

Expand Down
28 changes: 14 additions & 14 deletions docs/content/setup/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: >

# Installation with Helm

Kube-bind can be installed on an existing Kubernetes cluster using the official Helm OCI charts.
kube-bind can be installed on an existing Kubernetes cluster using the official Helm OCI charts.
The backend chart is available as an OCI image for service providers, with konnector charts coming soon for service consumers.

## Quick Start
Expand All @@ -21,21 +21,21 @@ The following prerequisites are required. Click the links below for detailed set
- **[cert-manager](#cert-manager-setup)** - For TLS certificate management
- **[OIDC provider](#oidc-provider-setup)** - For authentication (Dex, Keycloak, etc.)

### Install Kube-Bind Backend
### Install kube-bind Backend

1. **Get the latest chart version:**

Visit the [releases page](https://github.com/kube-bind/kube-bind/releases) or check available versions:
```bash
# For latest tag version (recommended for production):
VERSION=$(curl -s https://api.github.com/repos/kube-bind/kube-bind/releases/latest | grep '"tag_name"' | cut -d'"' -f4 | sed 's/v//')

# Or use a specific development version:
# VERSION=0.0.0-<git-sha>
```

2. **Configure your values:**

Edit `deploy/charts/backend/examples/values-local-development.yaml` and replace the placeholder values:
- `### REPLACE ME ###` with your actual OIDC credentials
- Update hostnames to match your setup
Expand All @@ -48,7 +48,7 @@ The following prerequisites are required. Click the links below for detailed set
--create-namespace \
--values ./deploy/charts/backend/examples/values-local-development.yaml \
kube-bind oci://ghcr.io/kube-bind/charts/backend --version ${VERSION}

# Or install a specific development version
# helm upgrade --install \
# --namespace kube-bind \
Expand Down Expand Up @@ -150,7 +150,7 @@ EOF

### OIDC Provider Setup

Kube-bind requires an OIDC provider for authentication. Here's how to set up Dex as an example:
kube-bind requires an OIDC provider for authentication. Here's how to set up Dex as an example:

#### Install Dex OIDC Provider

Expand Down Expand Up @@ -186,21 +186,21 @@ helm repo add dex https://charts.dexidp.io
cat > /tmp/dex-values.yaml <<EOF
config:
issuer: https://auth.example.com # Replace with your domain

logger:
level: "debug"

storage:
type: kubernetes
config:
inCluster: true

web:
https: 0.0.0.0:5557
tlsCert: /etc/dex/tls/tls.crt
tlsKey: /etc/dex/tls/tls.key
http: "0.0.0.0:5556"

connectors:
- type: github
id: github
Expand All @@ -210,7 +210,7 @@ config:
clientSecret: ### REPLACE ME ###
redirectURI: https://auth.example.com/callback
org: your-org # Replace with your GitHub org

staticClients:
- id: kube-bind
redirectURIs:
Expand Down Expand Up @@ -264,7 +264,7 @@ For production deployments, create your own values file based on the example.

## Available OCI Charts

Kube-bind Helm charts are published as OCI images to GitHub Container Registry:
kube-bind Helm charts are published as OCI images to GitHub Container Registry:

### Backend Chart
- **Registry**: `oci://ghcr.io/kube-bind/charts/backend`
Expand Down Expand Up @@ -292,7 +292,7 @@ Development charts are built from every commit to the main branch with the forma
# Install latest stable release (recommended for production)
helm upgrade --install kube-bind oci://ghcr.io/kube-bind/charts/backend --version ${VERSION}

# Install specific release version
# Install specific release version
helm upgrade --install kube-bind oci://ghcr.io/kube-bind/charts/backend --version 1.0.0

# Install development build (for testing)
Expand Down
6 changes: 3 additions & 3 deletions docs/content/setup/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,21 @@ kube-bind supports multiple deployment scenarios and backend providers to meet d

### Advanced Multi-Cluster Setup

- **[KCP Integration](kcp-setup.md)**: Advanced multi-tenant setup with kcp workspaces and APIExports
- **[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
- **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
- Use **kcp Integration** for advanced multi-tenant scenarios with workspace isolation

## Next Steps

Expand Down
12 changes: 6 additions & 6 deletions docs/content/setup/kcp-setup.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: >
Set up kube-bind with KCP provider for advanced multi-cluster scenarios.
Set up kube-bind with kcp provider for advanced multi-cluster scenarios.
---

# kcp Setup
Expand All @@ -24,7 +24,7 @@ The kcp provider integrates kube-bind with [kcp](https://github.com/kcp-dev/kcp)

## Setup Steps

### 1. Start KCP
### 1. Start kcp

```bash
make run-kcp
Expand Down Expand Up @@ -56,7 +56,7 @@ Start dex:
./bin/dex serve examples/config-dev.yaml
```

### 3. Bootstrap KCP
### 3. Bootstrap kcp

Create the kube-bind provider workspace and APIExport:

Expand All @@ -66,15 +66,15 @@ export KUBECONFIG=.kcp/backend.kubeconfig
./bin/kcp-init --kcp-kubeconfig $KUBECONFIG
```

### 4. Start Backend with KCP Provider
### 4. Start Backend with kcp Provider

Switch to the kube-bind workspace:

```bash
kubectl ws use :root:kube-bind
```

Start the backend with KCP provider:
Start the backend with kcp provider:

```bash
./bin/backend \
Expand Down Expand Up @@ -234,4 +234,4 @@ kubectl-s "$(kubectl get apiexportendpointslice kube-bind.io -o jsonpath="{.stat
- **Workspace Management**: Requires kcp workspace creation and management
- **APIExport Integration**: Leverages kcp's APIExport mechanism to enable shared backed service.
- **URL Structure**: Uses kcp-specific URLs with cluster identifiers. In production, this should be abstracted by a service wrapper.
- **Advanced Isolation**: Provides workspace-level isolation beyond namespaces
- **Advanced Isolation**: Provides workspace-level isolation beyond namespaces
8 changes: 4 additions & 4 deletions docs/content/setup/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@ description: >

- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)

## Start with Kube-Bind
## Start with kube-bind

This section allows you to run local kube-bind backend and konnector with the standard Kubernetes provider.

Starting with v0.5.0, kube-bind supports multiple backend providers through multicluster-runtime:

- **Standard Provider** (default): Works with regular Kubernetes clusters
- **KCP Provider**: Advanced multi-tenant setup with kcp workspaces (see [KCP Setup Guide](kcp-setup.md))
- **kcp Provider**: Advanced multi-tenant setup with kcp workspaces (see [kcp Setup Guide](kcp-setup.md))

This quickstart uses the default provider. For kcp integration, see the [KCP Setup Guide](kcp-setup.md).
This quickstart uses the default provider. For kcp integration, see the [kcp Setup Guide](kcp-setup.md).

### Using KCP for Local Development
### Using kcp for Local Development

For local development, we use [kcp](https://github.com/kcp-dev/kcp) to create multiple logical clusters under a single kcp instance, making them available and accessible via the same URL.

Expand Down
4 changes: 2 additions & 2 deletions docs/content/usage/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The v0.6.x release introduces several significant improvements:
- **Catalog API**: New `Collection` and `APIServiceExportTemplate` CRDs for better service organization
- **Enhanced Permission Claims**: Support for `NamedResources` alongside label selectors
- **Provider-side Namespace Management**: Automatic RBAC and namespace provisioning
- **Improved KCP Integration**: Better workspace and APIExport handling
- **Improved kcp Integration**: Better workspace and APIExport handling

## API Changes

Expand All @@ -21,4 +21,4 @@ If you encounter issues during migration:

1. **Check GitHub Issues**: [kube-bind issues](https://github.com/kube-bind/kube-bind/issues)
2. **Slack Channel**: [`#kube-bind` on Kubernetes Slack](https://kubernetes.slack.com/archives/C046PRXNJ4W)
3. **Mailing List**: [kube-bind-dev](https://groups.google.com/g/kube-bind-dev)
3. **Mailing List**: [kube-bind-dev](https://groups.google.com/g/kube-bind-dev)
3 changes: 1 addition & 2 deletions docs/generators/crd-ref/config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2021 The KCP Authors.
# Copyright 2021 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.
Expand Down Expand Up @@ -49,4 +49,3 @@ source_repositories:
- https://github.com/kube-bind/kube-bind
topics:
- apis