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

feat(publick8s/updates.jenkins.io): deploys a dedicated httpd service with a distinct fileshare #5192

Conversation

dduportal
Copy link
Contributor

@dduportal dduportal commented May 2, 2024

Related to jenkins-infra/helpdesk#2649 (comment).

The goal of this PR is to instantiate an httpd service for the azure.updates.jenkins.io webservice with its own distinct fileshare.

It is a second tentative of delivering #5184 with an additional fixup commit to ensure PV + PVC are created without error and it reverts #5190.

The httpd chart does not require (at least for now) a change: we can set up a statically provisioned PVC.

Validations:

  • The official AKS documentation was used to set up the attributes: https://learn.microsoft.com/en-us/azure/aks/azure-csi-files-storage-provision#statically-provision-a-volume
  • The resulting YAML had been statically verified:
    • The command helmfile template -f ./clusters/publick8s.yaml -l name=updates-jenkins-io-httpd > .tmp/uc-httpd.yaml has been used to generate a local Kubernetes manifest file for ALL objects
    • This file has been linted and validated with the official Kubernetes JSON schemas to ensure all attributes are 👍
  • Then, the triplet secret + PV + PVC had been provisionned in the default namespace of publick8s using the (stripped from other objects such as Deployment file tmp/uc-httpd.yaml) with success: the PVC was seen as a 1 Gb Bound volume!).

…ompliant CSI spec

Signed-off-by: Damien Duportal <damien.duportal@gmail.com>
@dduportal dduportal changed the title Feat/publick8s/updates.jenkins.io/httpd/pvc feat(publick8s/updates.jenkins.io): deploys a dedicated httpd service with a distinct fileshare May 2, 2024
@dduportal dduportal requested a review from lemeurherve May 2, 2024 14:07
@dduportal dduportal marked this pull request as ready for review May 2, 2024 14:07
@dduportal dduportal requested a review from a team as a code owner May 2, 2024 14:07
Copy link
Member

@lemeurherve lemeurherve left a comment

Choose a reason for hiding this comment

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

Thanks!

@dduportal dduportal merged commit 30b48e4 into jenkins-infra:main May 2, 2024
8 checks passed
@dduportal dduportal deleted the feat/publick8s/updates.jenkins.io/httpd/pvc branch May 2, 2024 14:12
@dduportal
Copy link
Contributor Author

For info:

  • This PR failed to deploy. The helmfile release failed to deploy with a Context deadline exceeded error meaning there was a (many?) Kubernetes object not able to be created properly. ⚔️

  • Secret, PV and PVC were created with success and PVC was marked as Bound ✅

  • But the 2 pods were stuck at the ContainerCreating phase. A describe pod command showed the following error message:

     MountVolume.MountDevice failed for volume "updates-jenkins-io-httpd" : rpc error: code = InvalidArgument desc = GetAccountInfo(updates-jenkins-io-httpd) failed with error: could not find accountname or azurestorageaccountname field in secrets
    
  • The Secret name is properly used by the PV. But the content of the secret is not structured as expected. We updated the secret data keys for mirrorbits-parent chart to support CSI, but we never cherry-picked this for httpd secrets.

  • Problem fixed by @lemeurherve by updating the chart secrets in (private link) https://github.com/jenkins-infra/charts-secrets/commit/634e3502e6f228b329e61517bc45f77e3d31a18d

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

Successfully merging this pull request may close these issues.

None yet

2 participants