Add hosted executor as agentless server implementation - #8301
Draft
brandond wants to merge 3 commits into
Draft
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #8301 +/- ##
==========================================
- Coverage 18.37% 15.48% -2.90%
==========================================
Files 47 52 +5
Lines 4859 5801 +942
==========================================
+ Hits 893 898 +5
- Misses 3923 4855 +932
- Partials 43 48 +5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
brandond
force-pushed
the
disable-agent
branch
8 times, most recently
from
May 29, 2025 08:13
04ed870 to
3bde1ba
Compare
--disable-agent flag
brandond
force-pushed
the
disable-agent
branch
2 times, most recently
from
July 29, 2025 22:25
40e50e2 to
b4c4dde
Compare
brandond
force-pushed
the
disable-agent
branch
2 times, most recently
from
July 29, 2025 23:11
84ee7e5 to
08cd1d8
Compare
brandond
force-pushed
the
disable-agent
branch
from
August 11, 2025 21:14
08cd1d8 to
448c152
Compare
This hasn't been necessary for a long time Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
brandond
force-pushed
the
disable-agent
branch
from
September 25, 2025 23:51
448c152 to
e48f48f
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Inspired by a discussion with @glennpratt
Proposed Changes
Add a new
hostedexecutor implementation that runs control-plane pods as Deployment/StatefulSet in a hosting cluster, with etcd data stored on PVs. This executor is used when RKE2 is started with --disable-agent. The "agent" is containerd and the kubelet, so without those around we need something else to run the pods - and it might as well be Kubernetes again.This is very similar to k3k, except in this case the nodes are expected to be normal RKE2 nodes; it is only the control-plane that is virtualized as pods.
Todo:
rke2 supervisorinstead ofrke2 server --disable-agent?Work for a CAPI control-plane operator to handle:
rke2 certificate/etcd-snapshot/secrets-encryptshould work as-is within supervisor pod, or remotely with correct token and server address.Here's an example deployment manifest:
Notes:
net.ipv4.ip_forwardsysctl added to the kubelet's allowed sysctl list; both k3s and rke2 automatically add this when servicelb is enabled (which it is not by default on rke2).service.status.ingressare supported; LoadBalancers that set a hostname will not work as the apiserver will only advertise IPs. Currently only the first IP is advertised.From the outer cluster (k3s):
RKE2 agents were joined against the apiserver loadbalancer address:
From the inner cluster (rke2) - note that there are no control-plane/etcd nodes; the control-plane is completely isolated from agents:
Types of Changes
enhancement
Verification
Testing
Linked Issues
User-Facing Change
Further Comments