Skip to content
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

[ci.jenkins.io] Create private EKS cluster with "side" services (datadog, ACP, etc.) #4319

Closed
Tracked by #4313
dduportal opened this issue Sep 28, 2024 · 28 comments
Closed
Tracked by #4313

Comments

@dduportal
Copy link
Contributor

dduportal commented Sep 28, 2024

We need a private EKS cluster to run ci.jenkins.io container agents.

@dduportal dduportal changed the title Move "side" services to AWS [ci.jenkins.io] Create private EKS cluster and Move "side" services to AWS Sep 28, 2024
@dduportal dduportal changed the title [ci.jenkins.io] Create private EKS cluster and Move "side" services to AWS [ci.jenkins.io] Create private EKS cluster with "side" services (datadog, ACP, etc.) Sep 28, 2024
@dduportal dduportal added this to the infra-team-sync-2024-10-01 milestone Sep 28, 2024
@dduportal dduportal removed this from the infra-team-sync-2024-10-15 milestone Oct 14, 2024
@dduportal dduportal added this to the infra-team-sync-2024-10-29 milestone Oct 15, 2024
@dduportal dduportal removed the triage Incoming issues that need review label Oct 15, 2024
@dduportal
Copy link
Contributor Author

Discussed with @smerle33:

@smerle33
Copy link
Contributor

change of usage for the module since last time we used it https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/docs/UPGRADE-20.0.md

@smerle33
Copy link
Contributor

smerle33 commented Nov 4, 2024

We choose to deal with all the IAM usage within the private repository https://github.com/jenkins-infra/terraform-states/commit/cfd08c45dd4153d676c9223670f927d515585679
instead of giving the module user too much power.

dduportal added a commit to jenkins-infra/kubernetes-management that referenced this issue Jan 3, 2025
Related to
jenkins-infra/helpdesk#4319 (comment)

This PR introduces ACP in the AWS EKS cluster `cijenkinsio-agents-2`.
it's the first set of hypothesis (EBS persistence on gp3)
@dduportal
Copy link
Contributor Author

First set of working hypothesis for the initial deployment: Internal SVC and EBS persistence

ACP is now installed (jenkins-infra/terraform-aws-sponsorship#74, jenkins-infra/terraform-aws-sponsorship#75, jenkins-infra/kubernetes-management#6073)

@dduportal
Copy link
Contributor Author

dduportal commented Jan 6, 2025

Next steps (all elements have the same priority):

@smerle33
Copy link
Contributor

smerle33 commented Jan 6, 2025

for part 1 (jenkins namespace, service account, rbac and iam link with VM iam identity and kubernetes service account):

namespace, service account and rbac are dealt with the helm chart: https://github.com/jenkins-infra/helm-charts/tree/main/charts/jenkins-kubernetes-agents

@dduportal
Copy link
Contributor Author

for part 1 (jenkins namespace, service account, rbac and iam link with VM iam identity and kubernetes service account):

namespace, service account and rbac are dealt with the helm chart: https://github.com/jenkins-infra/helm-charts/tree/main/charts/jenkins-kubernetes-agents

Continuing the Jenkins container Agents related tasks in #4317 (comment)

@smerle33

This comment has been minimized.

@dduportal
Copy link
Contributor Author

dduportal commented Jan 17, 2025

Update about the "private link" (e.g. allowing VM agents in other private subnets to access ACP):

As per https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html#network-load-balancer:

You can launch Network Load Balancers in any subnet in your cluster’s VPC, including subnets that weren’t specified when you created your cluster.

=> It means we only need a LB set to internal and associated to the VM agents subnets in the EKS cluster to allow access. No need for private link which is more a "VPC to VPC" tool.

Next steps:

@dduportal
Copy link
Contributor Author

Update: edited body of the issue to specify we want to use Karpenter (https://karpenter.sh/v0.32/concepts/)

@dduportal
Copy link
Contributor Author

dduportal commented Jan 17, 2025

Update: edited body of the issue to specify we want to use Karpenter (https://karpenter.sh/v0.32/concepts/)

Last step: Remove cluster autoscaler and set up Karpenter instead.

Rationale of using Karpenter instead of Cluster Autoscaler: instead of artificially constraining nodes to some size, we can relax these constraint to always get a node at the right price.
It also makes node groups and node management easier. Additionally, it support taints, Windows, Linux arm64.

@dduportal
Copy link
Contributor Author

Karpenter is installed (ref. jenkins-infra/terraform-aws-sponsorship#91) : the cluster is now ready.

Let's continue in #4317

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

No branches or pull requests

2 participants