Skip to content

Load test infra setup#3866

Merged
kcp-ci-bot merged 3 commits intokcp-dev:mainfrom
SimonTheLeg:load-test-infra-setup
Mar 31, 2026
Merged

Load test infra setup#3866
kcp-ci-bot merged 3 commits intokcp-dev:mainfrom
SimonTheLeg:load-test-infra-setup

Conversation

@SimonTheLeg
Copy link
Copy Markdown
Member

Summary

This PR adds a setup script to setup loadtesting on infra which has the required nodepools in place.

What Type of PR Is This?

/kind feature

Release Notes

NONE

@kcp-ci-bot kcp-ci-bot added release-note-none Denotes a PR that doesn't merit a release note. kind/feature Categorizes issue or PR as related to a new feature. dco-signoff: yes Indicates the PR's author has signed the DCO. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Feb 27, 2026
@SimonTheLeg SimonTheLeg force-pushed the load-test-infra-setup branch from 2e8c32c to c69d026 Compare February 27, 2026 09:58
@kcp-ci-bot kcp-ci-bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Feb 27, 2026
@SimonTheLeg SimonTheLeg force-pushed the load-test-infra-setup branch 2 times, most recently from cbe9740 to 31f3761 Compare February 27, 2026 10:54
@SimonTheLeg SimonTheLeg linked an issue Feb 27, 2026 that may be closed by this pull request
3 tasks
@SimonTheLeg SimonTheLeg force-pushed the load-test-infra-setup branch from 31f3761 to a050b19 Compare February 27, 2026 12:27
@ntnn
Copy link
Copy Markdown
Member

ntnn commented Mar 5, 2026

/assign

@ntnn
Copy link
Copy Markdown
Member

ntnn commented Mar 5, 2026

I'll give it a try tomorrow, thanks for the work!

Comment thread test/load/setup/setup.sh Outdated
Comment thread test/load/setup/setup.sh Outdated
Comment thread test/load/setup/setup.sh Outdated
Comment thread test/load/setup/Readme.md
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should explicitly list the expected node selector values, i.e. auxiliary, kcp-frontproxy, kcp-etcd, kcp-server

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I have now directly mentioned the kind example to look up to see all the different nodepools

Comment thread test/load/setup/manifests/kcp.yaml
@ntnn
Copy link
Copy Markdown
Member

ntnn commented Mar 9, 2026

For reference I deployed this in infra, where it looks like its working and in kind where it breaks.

The kind setup:

  1. Create kind with this config:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
    labels:
      role: "kcp-frontproxy"
  - role: worker
    labels:
      role: "kcp-etcd"
  - role: worker
    labels:
      role: "kcp-server"
  - role: worker
    labels:
      role: "auxiliary"
  1. Create the kcp namespace
  2. Create alias services:
apiVersion: v1
kind: Service
metadata:
  name: frontproxy
  namespace: kcp
spec:
  type: ExternalName
  externalName: frontproxy-front-proxy.kcp.svc.cluster.local
---
apiVersion: v1
kind: Service
metadata:
  name: root
  namespace: kcp
spec:
  type: ExternalName
  externalName: root-kcp.kcp.svc.cluster.local
---
apiVersion: v1
kind: Service
metadata:
  name: shard2
  namespace: kcp
spec:
  type: ExternalName
  externalName: shard2-shard-kcp.kcp.svc.cluster.local
---
apiVersion: v1
kind: Service
metadata:
  name: shard3
  namespace: kcp
spec:
  type: ExternalName
  externalName: shard3-shard-kcp.kcp.svc.cluster.local
  1. Source these env values:
export NODEPOOL_SELECTOR="role"
export GATEWAY_BASE_URL="kcp.svc.cluster.local"
export GATEWAY_ANNOTATIONS="{'hello':'world'}"
  1. Run setup.sh

Then e.g. front proxy fails with these messages:

E0309 09:35:22.187099       1 reflector.go:200] "Failed to watch" err="failed to list *v1alpha1.LogicalCluster: Get \"https://shard2.kcp.svc.cluster.local:6443/clusters/%2A/apis/core.kcp.io/v1alpha1/logicalclusters?limit=500&resourceVersion=0\": tls: failed to verify certificate: x509: certificate is valid for localhost, shard2-shard-kcp.kcp.svc.cluster.local, not shard2.kcp.svc.cluster.local" logger="UnhandledError" reflector="k8s.io/client-go@v0.0.0-20251113163256-f038ec6bf609/tools/cache/reflector.go:285" type="*v1alpha1.LogicalCluster"

I think adding the cert template should make this work in more setups

@kcp-ci-bot kcp-ci-bot added kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Mar 30, 2026
@ntnn ntnn added this to tbd Mar 30, 2026
@github-project-automation github-project-automation bot moved this to Backlog in tbd Mar 30, 2026
On-behalf-of: SAP <simon.bein@sap.com>
Signed-off-by: Simon Bein <simontheleg@gmail.com>
On-behalf-of: SAP <simon.bein@sap.com>
Signed-off-by: Simon Bein <simontheleg@gmail.com>
@SimonTheLeg SimonTheLeg force-pushed the load-test-infra-setup branch from 8dff1a5 to 7f22c11 Compare March 30, 2026 08:22
@kcp-ci-bot kcp-ci-bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Mar 30, 2026
On-behalf-of: SAP <simon.bein@sap.com>
Signed-off-by: Simon Bein <simontheleg@gmail.com>
@SimonTheLeg SimonTheLeg force-pushed the load-test-infra-setup branch from 6605deb to a9ee7e5 Compare March 30, 2026 16:27
@SimonTheLeg
Copy link
Copy Markdown
Member Author

I think all comments have been addressed ptal

@ntnn ntnn moved this from Backlog to Reviewing in tbd Mar 31, 2026
@kcp-ci-bot kcp-ci-bot added the lgtm Indicates that a PR is ready to be merged. label Mar 31, 2026
@kcp-ci-bot
Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: cff99879aab7e7c86f735beeaf3135acc4e6a2e3

@ntnn
Copy link
Copy Markdown
Member

ntnn commented Mar 31, 2026

/lgtm
/approve

@kcp-ci-bot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ntnn

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 Mar 31, 2026
@kcp-ci-bot kcp-ci-bot merged commit f3bde95 into kcp-dev:main Mar 31, 2026
14 checks passed
@github-project-automation github-project-automation bot moved this from Reviewing to Done in tbd Mar 31, 2026
@ntnn ntnn moved this from Done to Reviewing in tbd Apr 1, 2026
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. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature. lgtm Indicates that a PR is ready to be merged. 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.

task: Deploy kcp on infra

3 participants