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

AKS: add cluster publick8s and migrate prodpublick8s public services on it #3351

Closed
22 of 23 tasks
dduportal opened this issue Jan 23, 2023 · 40 comments
Closed
22 of 23 tasks

Comments

@dduportal
Copy link
Contributor

dduportal commented Jan 23, 2023

This issue tracks the work for spawning a new "public" AKS cluster for production to replace the former prodpublick8s.

Goals:

This issue is the "twin" of #2844 but for public network.


Some notes:

  • Node pools:
  • The Add a VPN for public network #3306 is NOT needed (we can reach the private-ingress endpoint using the private's VPN network peering to public)
  • We'll have to decide which can of "egress" (attribute outboundType) type to use: https://learn.microsoft.com/en-us/azure/aks/egress-outboundtype
  • We'll have to ensure that the CSI storage classe are set to retain for the non-default, and that any "custom" CSI classe is installed
  • We'll have to install in this cluster the following (usual) side services:
    • datadog
    • certmanager+acme
    • Nginx (private) ingress controller (with an internal load balancer that should be reachable from the peered private network), and should be the default
    • Nginx (public) ingress controller (with a public LB and public IP)
    • Falco (to ensure some policies are enforced on workloads)
  • We'll have to migrate the following services from prodpublick8s to this cluster:
    • plugin-site (plugins.jenkins.?io)
    • plugin-site-issues
    • reports (reports.jenkins.io)
    • jenkinsio (⚠️ when changing the DNS, we'll have to watch fastly) (origin.jenkins.io)
    • javadoc (javadoc.jenkins.io)
    • accountapp (accounts.jenkins.io)
    • ldap (ldap.jenkins.io with its own public LB)
    • uplink (uplink.jenkins.io)
    • mirrorbits (get.jenkins.io)
    • keycloak
    • incrementals-publisher
    • jenkins-weekly
    • jenkinsisthewayio-redirect
    • artifact-caching-proxy
    • plugin-health-scoring
    • wiki
    • rating

Tasks

Preview Give feedback
No tasks being tracked yet.
@lemeurherve
Copy link
Member

With this migration we'll be able to close #3209

@dduportal
Copy link
Contributor Author

Putting on hold: #2844 tracks the migration of release.ci from prodpublick8s to privatek8s, before proceeding forward here.

@lemeurherve
Copy link
Member

lemeurherve commented Jun 14, 2023

Cleanup of unused DNS records found while working on this issue

A records pointing to 52.167.253.43 (prodpublick8s public IP)

CNAME records pointing to publick.aks.jenkins.io (ie prodpublick8s cluster):

  • archives.azure.jenkins.io
  • mirror.azure.jenkins.io*
  • polls.jenkins.io
  • beta.accounts.jenkins.io
  • customize.jenkins.io

A records pointing to 10.0.2.5 (prodpublick8s private IP)

  • private.aks.jenkins.io

CNAME records pointing to private.aks.jenkins.io (ie prodpublick8s cluster):

  • release.pkg.jenkins.io
  • admin.polls.jenkins.io
  • release.repo.jenkins.io

Miscellaneous

  • archives.azure.jenkins.io
  • mirrors.azure.jenkins.io
  • mirrors2.jenkins-ci.org

*: need additional cleanup in:

@lemeurherve
Copy link
Member

lemeurherve commented Jun 14, 2023

As we've noticed quite a lot of remaining requests still send to mirrorbits on prodpublick8s, we'll postpone the cluster deletion to next week, and @dduportal will see for the publication of a blogpost indicating the migration of this service to the new cluster.

@dduportal
Copy link
Contributor Author

Namespaces removal: @lemeurherve and I paired and removed the following namespaces from prodpublick8s:

Remaining namespaces are required until #3351 (comment) is fixed.

@dduportal
Copy link
Contributor Author

dduportal commented Jun 22, 2023

As we've noticed quite a lot of remaining requests still send to mirrorbits on prodpublick8s, we'll postpone the cluster deletion to next week, and @dduportal will see for the publication of a blogpost indicating the migration of this service to the new cluster.

As discussed with the last infrastructure meeting:

@dduportal
Copy link
Contributor Author

Update:

@lemeurherve
Copy link
Member

Additional monitors added: jenkins-infra/datadog#195

Potential improvements for later:

  • use a PV/PVC instead of azurefile for plugin-site storage
  • evaluate if plugin-site needs the same GitHub and Jira credentials as plugin-site-api (optional)
  • create an issue for a mechanism to display a maintenance page on services while operating on them
  • activate the "secure transfer required" for javadoc storage account
  • add cluster outbound IPs as terraform output

After 3 years and 27 days of good and faithful service, prodpublick8s is not anymore, closing this issue 🤗

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