-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs(design): phase-1 docs for layer2 support in CAPP: version 1 #786
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: rahulii <[email protected]>
Welcome @rahulii! |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: rahulii The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Signed-off-by: rahulii <[email protected]>
Signed-off-by: rahulii <[email protected]>
Signed-off-by: rahulii <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
few minor comments, let's add a user flow diagram on the steps CAPP would perform for ease of understanding.
Will go through the user data script in more detail, at a glance it looks good to me.
Signed-off-by: rahulii <[email protected]>
Limitations | ||
=========== | ||
|
||
CAPP managed clusters running without internet connections would need to be able to pull images from a repository also in the layer2, or they would need a bastion host that acts as a gateway and NAT. This isn't supported today, so complete Layer2 will not be supported in the initial phases of the feature. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Noting some additional points. These limitations could be left to the user, to define their image store and routing within the L2 network. Other limitations that are perhaps more core to ClusterAPI and CPEM functioning is the need to interact with Equinix Metal APIs (including Metadata where userdata scripts are accessed at node startup). There may be clever ways to work around these limitations, but we are intentionally keeping ideation and solutioning around full layer2 modes out of scope to get the direct benefits of networking modes that enable L2 capabilities without removing the default L3 public address capabilities.
Signed-off-by: rahulii <[email protected]>
Co-authored-by: Marques Johansson <[email protected]> Co-authored-by: Nirav Parikh <[email protected]>
Co-authored-by: Marques Johansson <[email protected]>
I've converted this PR to a draft so that we can continue to iterate on design and implementation (#787 and others) in parallel while the design is being vetted. Sample userdata scripts are going to be hard to vet in markdown format and will be easier to verify in E2E tests from the implementation PRs. |
We'll want to update https://github.com/kubernetes-sigs/cluster-api-provider-packet/blob/main/docs/concepts/cluster.md and https://github.com/kubernetes-sigs/cluster-api-provider-packet/blob/main/docs/concepts/machine.md with the results of this design as we get closer to merging the design and implementation. |
yah, once we are closer I will make sure to add the changes in those files. Thanks for reminding! |
Signed-off-by: rahulii <[email protected]>
echo "8021q" >> /etc/modules | ||
|
||
# Generate the network configuration and append it to /etc/network/interfaces for each VLAN-tagged sub-interface. | ||
cat <<EOL >> /etc/network/interfaces |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can write out directly to interfaces.d/something. An example of that here:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Err .. nevermind that example.. It was more involved and manipulated cloud-config.d rather than interfaces.d, it also depended on changing the OS to use netplan:
That said, we could write out to an interfaces.d/ file directly. This is just a nitpic and there may be reasons why it is better to take the inline approach you offered, to ensure that the modification is made at the right time relative to other operations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really don't have any opinions on /etc/network/interfaces
vs /interfaces.d
directory 😅
If it seems reasonable to write into /interfaces.d
, I will try that out once.
Signed-off-by: rahulii <[email protected]>
Signed-off-by: rahulii <[email protected]>
Signed-off-by: rahulii <[email protected]>
Signed-off-by: rahulii <[email protected]>
Signed-off-by: rahulii <[email protected]>
name: capp-ip-allocations | ||
namespace: cluster-api-provider-packet-system | ||
Data: | ||
"da-1000-10.60.10.0/24": | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
examples need to be updated based on our recent discussions, it should not contain the ip cidr
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
What this PR does / why we need it:
📖 Proposal for adding layer2 support in CAPP
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Part of #613