Skip to content

Comments

docs: add quickstart guide for kcp with kind and helm#3774

Open
majiayu000 wants to merge 9 commits intokcp-dev:mainfrom
majiayu000:fix-3723-feature-quick-start-kind-docum-0101-2313
Open

docs: add quickstart guide for kcp with kind and helm#3774
majiayu000 wants to merge 9 commits intokcp-dev:mainfrom
majiayu000:fix-3723-feature-quick-start-kind-docum-0101-2313

Conversation

@majiayu000
Copy link

@majiayu000 majiayu000 commented Jan 1, 2026

Summary

  • Fix kind NodePort mapping and helm install flags
  • Add hostAliases upgrade step for in-cluster kcp.dev.local resolution
  • Bump cert-manager to v1.19.2

What Type of PR Is This?

/kind documentation

Related Issue(s)

Fixes #3723

Release Notes

NONE

Add comprehensive documentation for deploying kcp on a kind cluster
using Helm. The guide covers:
- Setting up a kind cluster with port mapping
- Installing cert-manager for TLS management
- Deploying kcp via the official Helm chart
- Creating multiple team workspaces
- Generating client certificates for teams
- Configuring RBAC for workspace access

Fixes kcp-dev#3723

Signed-off-by: majiayu000 <1835304752@qq.com>
@kcp-ci-bot kcp-ci-bot added dco-signoff: yes Indicates the PR's author has signed the DCO. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. do-not-merge/needs-kind Indicates a PR lacks a `kind/foo` label and requires one. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jan 1, 2026
@kcp-ci-bot
Copy link
Contributor

Hi @majiayu000. Thanks for your PR.

I'm waiting for a kcp-dev member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Copy link
Contributor

@mjudeikis mjudeikis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good start but still missing some parts.
In addition it would be great to have this quite in 2 parts:

  1. helm (as is now)
  2. kcp-operator.

We dont need todo part2 now, but once we get this working and merged, we can create follow-up issue to update this document :)

kcp requires cert-manager for TLS certificate management:

```bash
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.yaml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.19.2 is latest. any reason we use old one?

Install kcp:

```bash
helm upgrade --install kcp kcp/kcp \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have only few values. Can we merge values with helm command and use --set flag?

kcpFrontProxy:
service:
type: NodePort
nodePort: 8443
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure this work?

~/go/src/github.com/kcp-dev/kcp @826066e1* ❯ helm upgrade --install kcp kcp/kcp \                                                                                                                                                                                                                                                                                        08:07:30
  --namespace kcp \
  --create-namespace \
  --values kcp-values.yaml \
  --wait
Release "kcp" does not exist. Installing it now.
Error: 1 error occurred:
        * Service "kcp-front-proxy" is invalid: spec.ports[0].nodePort: Invalid value: 8443: provided port is not in the valid range. The range of valid ports is 30000-32767

Should nodeports be higher up? Or its might be "mac" thing. What os did you tested this on?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

making this 30443 ?

Create four workspaces for different teams:

```bash
kubectl ws create team-alpha --enter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should fail as your kcp deployment does not have host-alias set:

328","apf_pl":"exempt","apf_fs":"exempt","apf_iseats":1,"apf_fseats":0,"apf_additionalLatency":"0s","apf_execution_time":"31.679064ms","resp":200}
{"ts":1767594287729.2998,"caller":"httplog/httplog.go:134","msg":"HTTP","v":3,"verb":"GET","URI":"/livez","latency":"2.296612ms","userAgent":"kube-probe/1.33","audit-ID":"d3763a4f-1dae-4751-8f72-7999ef2bd896","srcIP":"10.244.0.1:46340","apf_pl":"catch-all","apf_fs":"catch-all","apf_iseats":1,"apf_fseats":0,"apf_additionalLatency":"0s","apf_execution_time":"1.932382ms","resp":200}
{"ts":1767594287733.6992,"caller":"httplog/httplog.go:134","msg":"HTTP","v":3,"verb":"GET","URI":"/readyz","latency":"1.820817ms","userAgent":"kube-probe/1.33","audit-ID":"19ff54c8-c6e3-4f20-91a4-542bf9c084d6","srcIP":"10.244.0.1:46342","apf_pl":"catch-all","apf_fs":"catch-all","apf_iseats":1,"apf_fseats":0,"apf_additionalLatency":"0s","apf_execution_time":"1.566277ms","resp":200}
{"ts":1767594288377.4663,"logger":"UnhandledError","caller":"workspace/workspace_controller.go:229","msg":"Unhandled Error","err":"\"kcp-workspace\" controller failed to sync \"root|team-beta\", err: Get \"https://kcp.dev.local:443/clusters/22mycglge1n5hnl0/apis/core.kcp.io/v1alpha1/logicalclusters/cluster\": dial tcp: lookup kcp.dev.local on 10.96.0.10:53: server misbehaving"}
{"ts":1767594289389.4412,"caller":"httplog/httplog.go:134","msg":"HTTP","v":3,"verb":"PUT","URI":"/clusters/system:admin/apis/coordination.k8s.io/v1/namespaces/kube-system/lease

Basically, the pod inside does not know how to reach recursively kcp.dev.local. WE have helm values for this but it need some scripting to detect right IP of the service to use here.

@kcp-ci-bot kcp-ci-bot added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Jan 5, 2026
@mjudeikis
Copy link
Contributor

In addition - please instruct your AI bot to follow our PR template :) it prevents all the CI jobs from running if not confogured right

Copy link
Contributor

@mjudeikis mjudeikis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few comments

@majiayu000
Copy link
Author

@mjudeikis Thanks for your review! I will fix those comments and improve my bot !

@kcp-ci-bot kcp-ci-bot added dco-signoff: no Indicates the PR's author has not signed the DCO. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. release-note-none Denotes a PR that doesn't merit a release note. and removed dco-signoff: yes Indicates the PR's author has signed the DCO. release-note Denotes a PR that will be considered when it comes time to generate release notes. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Jan 5, 2026
Signed-off-by: lif <1835304752@qq.com>
@majiayu000 majiayu000 force-pushed the fix-3723-feature-quick-start-kind-docum-0101-2313 branch from 2753592 to 55202c4 Compare January 5, 2026 13:10
@kcp-ci-bot kcp-ci-bot added dco-signoff: yes Indicates the PR's author has signed the DCO. and removed dco-signoff: no Indicates the PR's author has not signed the DCO. labels Jan 5, 2026
@majiayu000
Copy link
Author

@mjudeikis Thanks for the detailed review! I updated the doc to use cert-manager v1.19.2, switched Helm values to --set flags, fixed NodePort to 30443, and added a hostAliases upgrade step for in-cluster kcp.dev.local resolution. I also noted that the guide currently covers Helm only (operator in follow-up). Appreciate another look when you have a chance.

Copy link
Contributor

@mjudeikis mjudeikis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I really appreciate the effort, this PR looks like it was not tested by human. There are issues in the PR which prevents it from working (see comments).

While you use tools to help, I would really appreciate it if you do a dry run after and make sure it works. And provide logs of the working system in the comments. Else reviewers need to do this, and this is very time-consuming. Especially when you have n other AI-assited PRs to review.

@kcp-ci-bot kcp-ci-bot added dco-signoff: no Indicates the PR's author has not signed the DCO. and removed dco-signoff: yes Indicates the PR's author has signed the DCO. labels Jan 20, 2026
@majiayu000
Copy link
Author

Thanks for the review! I've updated the quickstart guide with the following fixes:

  • Switched to kcp.local.test to avoid macOS mDNS issues with .local.
  • Added quotes to Helm --set arguments to prevent shell globbing with array indices.
  • Corrected the admin kubeconfig server URL to include the /clusters/root context.
  • Confirmed nodePort is set to 30443 and cert-manager is at v1.19.2.

Ready for re-review.

…g, url)

Signed-off-by: majiayu000 <1835304752@qq.com>
@kcp-ci-bot kcp-ci-bot added dco-signoff: yes Indicates the PR's author has signed the DCO. and removed dco-signoff: no Indicates the PR's author has not signed the DCO. labels Jan 22, 2026
@mjudeikis
Copy link
Contributor

mjudeikis commented Feb 3, 2026

@majiayu000 any output from the last changes?

- Add kcpFrontProxy.hostAliases to helm upgrade for full DNS resolution
- Add workspace isolation verification in Step 10
- Remove stale kcp-values.yaml reference from cleanup
- Add Linux sed syntax note for cross-platform cleanup
- Make verify script idempotent (skip existing workspaces)
- Show actual kubectl output in verify script instead of suppressing
- Add workspace isolation check to verify script

Signed-off-by: lif <1835304752@qq.com>
@majiayu000
Copy link
Author

@mjudeikis Updated based on your feedback. Changes in this commit:

Fixes:

  • Added kcpFrontProxy.hostAliases to the helm upgrade step (previously only kcp.hostAliases was set)
  • Removed stale rm -f kcp-values.yaml from cleanup (values file approach was removed earlier)
  • Added Linux sed -i syntax note for cross-platform cleanup

Verification improvements:

  • Step 10 now includes workspace isolation test — verifies that team-alpha cannot access team-beta's workspace
  • Verification script no longer suppresses kubectl get namespaces output (was > /dev/null 2>&1)
  • Verification script is now idempotent — skips workspace creation if already exists
  • Added workspace isolation check to the verify script as well

Helm chart verification (from helm show values kcp/kcp):

  • externalPort=8443 ✅ valid value (defaults to 443 for non-LoadBalancer, so explicit set is needed)
  • kcp-ca ✅ correct secret name (created by server-ca.yaml template, used as root CA signed by kcp-pki)
  • kcp-front-proxy-client-issuer ✅ correct Issuer name (created by front-proxy-issuers.yaml, uses kcp-front-proxy-client-ca)
  • NodePort 30443 ✅ in valid range 30000-32767
  • --set arguments with array indices are properly quoted ✅

Will run a full end-to-end test and post the output shortly.

@kcp-ci-bot kcp-ci-bot added dco-signoff: no Indicates the PR's author has not signed the DCO. and removed dco-signoff: yes Indicates the PR's author has signed the DCO. labels Feb 4, 2026
@majiayu000
Copy link
Author

Added an explicit write-access check in Step 10 and the verify script: each team now creates (idempotently) a per-team namespace and verifies it. This exercises RBAC beyond just listing pods/namespaces.

@mjudeikis
Copy link
Contributor

You added the script but not the result of script running and showing it works.
If you use AI to help with the code, I would expect some effort to be done to double check it works too.

Signed-off-by: majiayu000 <1835304752@qq.com>
Signed-off-by: majiayu000 <1835304752@qq.com>
@majiayu000 majiayu000 force-pushed the fix-3723-feature-quick-start-kind-docum-0101-2313 branch from 224379b to 769030b Compare February 5, 2026 02:14
@kcp-ci-bot kcp-ci-bot added dco-signoff: yes Indicates the PR's author has signed the DCO. and removed dco-signoff: no Indicates the PR's author has not signed the DCO. labels Feb 5, 2026
Signed-off-by: majiayu000 <1835304752@qq.com>
@majiayu000
Copy link
Author

majiayu000 commented Feb 5, 2026

Ran the full verification script on kind (darwin/arm64). Output below:

Verification started at: 2026-02-05T03:22:23Z
KCP_EXTERNAL_HOSTNAME=kcp.local.test
KCP_PORT=8443
KIND_KUBECONFIG=/Users/lifcc/.kube/config
KIND_CONTEXT=kind-kcp
kind: kind v0.31.0 go1.25.5 darwin/arm64
kubectl: Client Version: v1.34.1
Kustomize Version: v5.7.1
helm: v4.1.0+g4553a0a
Starting verification...
=== Step 6: Creating team workspaces ===
Workspace team-alpha already exists, skipping...
Workspace team-beta already exists, skipping...
Workspace team-gamma already exists, skipping...
Workspace team-delta already exists, skipping...
Current workspace is 'root' (type root).
Workspaces created:
.
└── root
    ├── team-alpha
    ├── team-beta
    ├── team-delta
    └── team-gamma

=== Step 7: Generating team certificates ===
Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`.
certificate.cert-manager.io/team-alpha-cert created
Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`.
certificate.cert-manager.io/team-beta-cert created
Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`.
certificate.cert-manager.io/team-gamma-cert created
Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`.
certificate.cert-manager.io/team-delta-cert created
Waiting for certificates to be ready...
certificate.cert-manager.io/team-alpha-cert condition met
certificate.cert-manager.io/team-beta-cert condition met
certificate.cert-manager.io/team-gamma-cert condition met
certificate.cert-manager.io/team-delta-cert condition met
=== Step 8: Granting workspace access ===
Configuring access for team-alpha...
Current workspace is 'root:team-alpha' (type root:organization).
clusterrolebinding.rbac.authorization.k8s.io/team-alpha-admin created
Configuring access for team-beta...
Current workspace is 'root:team-beta' (type root:organization).
clusterrolebinding.rbac.authorization.k8s.io/team-beta-admin created
Configuring access for team-gamma...
Current workspace is 'root:team-gamma' (type root:organization).
clusterrolebinding.rbac.authorization.k8s.io/team-gamma-admin created
Configuring access for team-delta...
Current workspace is 'root:team-delta' (type root:organization).
clusterrolebinding.rbac.authorization.k8s.io/team-delta-admin created
Current workspace is 'root' (type root).
=== Step 9: Creating team kubeconfigs ===
Processing team-alpha...
Cluster "kcp" set.
User "team-alpha" set.
Context "team-alpha" created.
Switched to context "team-alpha".
Processing team-beta...
Cluster "kcp" set.
User "team-beta" set.
Context "team-beta" created.
Switched to context "team-beta".
Processing team-gamma...
Cluster "kcp" set.
User "team-gamma" set.
Context "team-gamma" created.
Switched to context "team-gamma".
Processing team-delta...
Cluster "kcp" set.
User "team-delta" set.
Context "team-delta" created.
Switched to context "team-delta".
=== Step 10: Verifying team access ===
--- team-alpha ---
NAME      STATUS   AGE
default   Active   3m17s
Team alpha: Access granted (SUCCESS)
--- team-beta ---
NAME      STATUS   AGE
default   Active   3m15s
Team beta: Access granted (SUCCESS)
--- team-gamma ---
NAME      STATUS   AGE
default   Active   3m14s
Team gamma: Access granted (SUCCESS)
--- team-delta ---
NAME      STATUS   AGE
default   Active   3m11s
Team delta: Access granted (SUCCESS)
namespace/demo-alpha created
namespace/demo-beta created
namespace/demo-gamma created
namespace/demo-delta created
=== Verifying workspace isolation ===
OK: Team Alpha cannot access Team Beta workspace (isolation works)

All verification checks passed!

Also fixed two issues found while running the guide:

  • Helm install needed --set-string externalPort=8443 (chart expects a string).
  • cert-manager resources must use the kind kubeconfig (kcp API doesn’t include cert-manager CRDs).

EOF
```

### Team Gamma
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's reduce the example to alpha, beta. All the rest are the same and just copy-sate

EOF
```

### Team Gamma Access
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here. keep it to 2

@@ -0,0 +1,200 @@
#!/bin/bash
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

name the file based on docs page it verified:
verify-docs-quickstart-kind.sh

@mjudeikis
Copy link
Contributor

@majiayu000 any chance you can turn on your AI agent? :D

…ript

Signed-off-by: majiayu000 <1835304752@qq.com>
@majiayu000
Copy link
Author

Sorry, I am currently on vacation and do not have access to a computer capable of running Docker for testing. However, I have simplified the guide to 2 teams and renamed the verification script as suggested, verifying the changes via static analysis.

Copy link

@mjudeikis-bot mjudeikis-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested end-to-end locally on Linux with kind v0.30.0, kubectl-kcp/kubectl-ws v0.30.0, helm v3.19.0, cert-manager v1.19.2. Full flow verified:

✅ kind cluster creation with NodePort mapping
✅ cert-manager install & readiness
✅ kcp helm install (initial + hostAliases upgrade)
✅ Admin kubeconfig setup
✅ Team workspace creation (team-alpha, team-beta)
✅ Team cert issuance via cert-manager
✅ RBAC binding per workspace
✅ Team kubeconfig generation
✅ Team access verified — each team can list namespaces and create resources
✅ Workspace isolation verified — team-alpha correctly denied access to team-beta workspace

Two notes below, neither blocking.

All pods should reach the `Running` state.

## Step 5: Configure Admin Access

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heads-up: kubectl ws create is deprecated in v0.30.0. When run against a v0.30.0 kcp instance, users will see:

Command "create" is deprecated, install the 'kubectl create-workspace' plugin instead, compare https://docs.kcp.io/kcp/latest/setup/kubectl-plugin/.

The command still works (workspace is created successfully), so it's not breaking. But it would be worth either:

  • updating the doc to use kubectl create workspace <name> (requires the kubectl-create-workspace plugin), or
  • adding a note that this deprecation warning is expected and harmless for now.

Same applies to the verification script's workspace create calls.

KCP_PORT=${KCP_PORT:-8443}
KIND_KUBECONFIG=${KIND_KUBECONFIG:-"${HOME}/.kube/config"}
KIND_CONTEXT=${KIND_CONTEXT:-"kind-kcp"}
KCP_VERIFY_LOG=${KCP_VERIFY_LOG:-""}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor: cert-manager >= v1.18.0 changed the default spec.privateKey.rotationPolicy from Never to Always. Since the guide installs v1.19.2, all Certificate objects in this script will emit a warning:

Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`.

Not harmful — the certificate is still issued correctly. But users may be confused if they see it. Could suppress it by explicitly adding rotationPolicy: Always to the Certificate specs, or just leave it since it's a warning not an error.

@mjudeikis-bot
Copy link

Local Test Run — Full Output

Tested on Linux, kind v0.30.0, helm v3.19.0, cert-manager v1.19.2, kubectl-kcp/kubectl-ws v0.30.0.

Step 1–4: Cluster + cert-manager + kcp helm install
$ cat <<EOF | kind create cluster --name kcp --config=-
Creating cluster "kcp" ...
 ✓ Ensuring node image (kindest/node:v1.34.0)
 ✓ Preparing nodes
 ✓ Writing configuration
 ✓ Starting control-plane
 ✓ Installing CNI
 ✓ Installing StorageClass
Set kubectl context to "kind-kcp"

$ kubectl wait --for=condition=Available deployment --all -n cert-manager --timeout=300s
deployment.apps/cert-manager condition met
deployment.apps/cert-manager-cainjector condition met
deployment.apps/cert-manager-webhook condition met

$ helm upgrade --install kcp kcp/kcp --namespace kcp --create-namespace \
  --set externalHostname=kcp.local.test --set-string externalPort=8443 \
  --set kcpFrontProxy.service.type=NodePort --set kcpFrontProxy.service.nodePort=30443 \
  --set audit.enabled=false --wait
NAME: kcp
STATUS: deployed
REVISION: 1

$ kubectl get pods -n kcp
NAME                               READY   STATUS    RESTARTS   AGE
kcp-8485b5b47c-ss7kt               1/1     Running   0          2m39s
kcp-etcd-0                         1/1     Running   0          2m39s
kcp-etcd-1                         1/1     Running   0          2m39s
kcp-etcd-2                         1/1     Running   0          2m39s
kcp-front-proxy-8478b6b5b8-fbfh4   1/1     Running   0          2m39s
Step 5: Admin access
$ KUBECONFIG=admin.kubeconfig kubectl ws tree
.
└── root
Steps 6–10: Workspaces, certs, RBAC, isolation
=== Step 6: Creating team workspaces ===
Workspace "team-alpha" (type root:organization) created. Waiting for it to be ready...
Workspace "team-alpha" (type root:organization) is ready to use.
Workspace "team-beta" (type root:organization) created. Waiting for it to be ready...
Workspace "team-beta" (type root:organization) is ready to use.
.
└── root
    ├── team-alpha
    └── team-beta

=== Step 7: Team certificates ===
certificate.cert-manager.io/team-alpha-cert created
certificate.cert-manager.io/team-beta-cert created
certificate.cert-manager.io/team-alpha-cert condition met
certificate.cert-manager.io/team-beta-cert condition met

=== Step 8: RBAC ===
clusterrolebinding.rbac.authorization.k8s.io/team-alpha-admin created
clusterrolebinding.rbac.authorization.k8s.io/team-beta-admin created

=== Step 10: Verify team access ===
--- team-alpha ---
NAME          STATUS   AGE
default       Active   34s
kube-system   Active   34s
team-alpha: ✅ access OK
--- team-beta ---
NAME          STATUS   AGE
default       Active   33s
kube-system   Active   33s
team-beta: ✅ access OK
namespace/demo-alpha created
team-alpha: ✅ namespace create OK
namespace/demo-beta created
team-beta: ✅ namespace create OK

=== Workspace isolation ===
✅ OK: team-alpha cannot access team-beta (isolation works)
✅ All checks passed!

Conclusion

LGTM — guide is accurate and works end-to-end. The NodePort mapping, hostAliases upgrade step, cert-manager integration, and workspace isolation all behave exactly as documented.

Two observations (neither blocking):

  1. kubectl ws create deprecation — v0.30.0 emits a deprecation warning pointing to the kubectl-create-workspace plugin. The command still works, so this is cosmetic. Worth a doc note or switching to the new command in a follow-up.

  2. cert-manager rotationPolicy warning — cert-manager >= v1.18.0 changed the default spec.privateKey.rotationPolicy. Since this guide pins v1.19.2, all Certificate manifests emit a benign warning. Can be silenced by explicitly setting rotationPolicy: Always in the specs.

Neither of these affects the correctness of the guide. Good to merge.

@mjudeikis
Copy link
Contributor

/lgtm
/approve

@kcp-ci-bot kcp-ci-bot added the lgtm Indicates that a PR is ready to be merged. label Feb 23, 2026
@kcp-ci-bot
Copy link
Contributor

LGTM label has been added.

DetailsGit tree hash: 44ba096fbc15e42af7df2f5bc7ebe97db755506e

@kcp-ci-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mjudeikis

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kcp-ci-bot kcp-ci-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 23, 2026
@kcp-ci-bot
Copy link
Contributor

@majiayu000: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-kcp-verify eae909c link true /test pull-kcp-verify

Full PR test history

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates the PR's author has signed the DCO. do-not-merge/needs-kind Indicates a PR lacks a `kind/foo` label and requires one. lgtm Indicates that a PR is ready to be merged. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. release-note-none Denotes a PR that doesn't merit a release note. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feature: quick start kind documentation

4 participants