Skip to content
This repository was archived by the owner on Jun 29, 2022. It is now read-only.

Add Packet CCM to Packet platform#1155

Merged
invidian merged 8 commits intomasterfrom
knrt10/packet-ccm
Dec 3, 2020
Merged

Add Packet CCM to Packet platform#1155
invidian merged 8 commits intomasterfrom
knrt10/packet-ccm

Conversation

@knrt10
Copy link
Contributor

@knrt10 knrt10 commented Nov 3, 2020

See commits for more information

Closes #548
Closes #1126

Signed-off-by: knrt10 kautilya@kinvolk.io

@knrt10 knrt10 changed the title Add packet ccm to Packet platforms Add packet ccm to Packet platform Nov 3, 2020
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch 2 times, most recently from 059ac6b to 1cd889b Compare November 3, 2020 09:25
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch 5 times, most recently from 906894d to 4a7eb43 Compare November 3, 2020 14:18
@knrt10 knrt10 requested a review from surajssd November 3, 2020 14:18
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch 2 times, most recently from a8573fa to c061070 Compare November 3, 2020 15:02
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch from c061070 to 0049640 Compare November 4, 2020 14:10
Copy link
Member

@invidian invidian left a comment

Choose a reason for hiding this comment

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

Looking better.

@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch from 0049640 to a8ac0c2 Compare November 5, 2020 11:42
@knrt10 knrt10 requested a review from invidian November 5, 2020 11:53
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch from a8ac0c2 to 37c9299 Compare November 5, 2020 14:31
Copy link
Member

@invidian invidian left a comment

Choose a reason for hiding this comment

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

Just some nits for the most recent changes. Do keep in mind that previous review comments which has not been resolved are still relevant.

@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch 2 times, most recently from 9b662f4 to 8ff429b Compare November 6, 2020 06:15
@knrt10 knrt10 requested a review from invidian November 6, 2020 06:22
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch from 8ff429b to e8969e9 Compare November 6, 2020 06:31
@knrt10
Copy link
Contributor Author

knrt10 commented Nov 6, 2020

Latest Update: CCM works fine. It is currently deployed as a Deployment and run via bootstrapping.

CCM uses --cloud-provider=external for all kubelet which will taint all nodes in a cluster with node.cloudprovider.kubernetes.io/uninitialized. The CCM itself will untaint those nodes when it initializes them. Any pod that does not tolerate that taint will be unscheduled until the CCM is running.

We are not deploying upstream MetalLB as deploying loadbalancer with CCM is optional. When the user applies Lokomotive's MetalLB component CCM will automatically pick it up. Also the previous issue that was failing CCM on re-applying is fixed with upstrem PR. CCM is tested with latest docker image packethost/packet-ccm:f669a86 and it worked fine.

We should wait for their latest release, which will address all the bugs. We have also opened an issue upstream for creating an managing Helm chart for CCM.

Previous review comments all are almost addressed. Would recommend for reviews again.

@invidian
Copy link
Member

invidian commented Nov 9, 2020

I'll pick it up and continue working on it.

@invidian invidian force-pushed the knrt10/packet-ccm branch 2 times, most recently from b6c6797 to c17e8d7 Compare November 10, 2020 17:44
@invidian invidian force-pushed the knrt10/packet-ccm branch 2 times, most recently from d679af6 to 7fe4480 Compare November 20, 2020 13:34
@knrt10 knrt10 force-pushed the knrt10/packet-ccm branch 3 times, most recently from 3f58bef to 0306aa7 Compare November 23, 2020 02:56
invidian
invidian previously approved these changes Nov 23, 2020
@invidian invidian requested a review from iaguis November 23, 2020 12:34
@iaguis
Copy link
Contributor

iaguis commented Dec 2, 2020

This needs a rebase.

@invidian invidian force-pushed the knrt10/packet-ccm branch 2 times, most recently from 1cee197 to c7022ef Compare December 2, 2020 12:43
knrt10 added 2 commits December 3, 2020 10:04
Running CCM on Packet requires passing Packet API key to the deployment,
which is currently done trough Terraform, so we can no longer just let
Packet Terraform provider read this environment variable for it's
operation, but we must pass it to Terraform module.

This commit ensures, that if user did not configure auth token, value
from environment variable will be still written into Terraform code and
passed to the controller module.

Signed-off-by: knrt10 <kautilya@kinvolk.io>
Using CCM on Kubernetes requires --cloud-provider to be set to
"external".

This commit enables this customization. Default value remains empty
string, so no flag will be set for compatibility with other platforms.

Refs #548

Signed-off-by: knrt10 <kautilya@kinvolk.io>
This commit add packet-ccm Helm chart based on manifests from
https://github.com/packethost/packet-ccm/tree/master/deploy/template,
but with Lokomotive-specific modifications like using image with BGP
Node Selector support, enabled leader election for HA, removed
unnecessary RBAC grants etc.

This chart will be used to enable CCM on Packet platform.

Refs #548

Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
This label will be used by Packet CCM to select which nodes should have
BGP session created.

Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
There is no need to manually label the nodes now for tests, as
Lokomotive on Packet ships those labels automatically for all worker
nodes.

Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
So we don't hit a regression when we move the responsibility of enabling
BGP for nodes from Terraform to Packet CCM.

Refs #548

Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
Which are set by Packet CCM right now.

Refs #548

Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
This commit enables CCM for Packet platform to allow dropping hacky way
of labeling Node objects on Packet via Ignition script for MetalLB
autodiscovery to work, which we are doing right now.

Closes #548

Signed-off-by: Mateusz Gozdek <mateusz@kinvolk.io>
Copy link
Contributor

@iaguis iaguis left a comment

Choose a reason for hiding this comment

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

lgtm

@invidian invidian merged commit 16c5ff8 into master Dec 3, 2020
@invidian invidian deleted the knrt10/packet-ccm branch December 3, 2020 11:30
@invidian invidian mentioned this pull request Dec 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

priority/P3 Low priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MetalLB: BGP labels don't update on node replacement Add Packet CCM to Packet Lokomotive clusters

4 participants