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

Integration of OCI delivery in gardenlinux build pipelines #15

Open
2 tasks
Vincinator opened this issue Jul 18, 2024 · 5 comments
Open
2 tasks

Integration of OCI delivery in gardenlinux build pipelines #15

Vincinator opened this issue Jul 18, 2024 · 5 comments
Assignees

Comments

@Vincinator
Copy link
Contributor

Vincinator commented Jul 18, 2024

Integrate oci delivery gear into Garden Linux build pipelines.

Requirements:

Tasks:

  • Check and set defaults for gardenlinux/gardenlinux use case (path to pub/priv keys)
  • Deploy gl-oci in pipelines (check what method is best)
@Vincinator Vincinator mentioned this issue Sep 10, 2024
2 tasks
@pnpavlov pnpavlov changed the title Integration of OCI delivery in gardenlinux build pipelines, so that early adopters and internal team members can already consume garden linux via oci Integration of OCI delivery in gardenlinux build pipelines Jul 25, 2024
@Vincinator Vincinator self-assigned this Aug 12, 2024
@Vincinator Vincinator transferred this issue from gardenlinux/gl-oci Aug 19, 2024
@Vincinator
Copy link
Contributor Author

Vincinator commented Aug 21, 2024

Currently debugging an issue where GitHub returns "UNSUPPORTED" operation when pushing a layer blob during the pipelines.

I think we have an issue with asynchrony in general. Multiple jobs try in parallel to edit the OCI-Index. I think we need to handle this differently.

I think the best would be to do the following:

Introduce an additional upload OCI stage, that runs in series[1] for all targets, and then uploads these step by step. This is also true for attaching layers, since the digest is changing and must be updated in the oci-index.

[1] jobs.<job_id>.strategy.max-parallel

@mxmxchere
Copy link
Contributor

I went through the currently failed action steps of the PR and found the following reasons for failed runs:

@mxmxchere
Copy link
Contributor

I also had an error where GitHub returned UNSUPPORTED. That went away when i used glcli oci --insecure

@mxmxchere
Copy link
Contributor

I think we are close to try the GitHub Actions integration again. My current idea: Use https://github.com/gardenlinux/gardenlinux/blob/main/.github/workflows/release-page.yml#L71 as an outset and build a similar, manually triggered action. The linked line provides the relevant context needed for the current state of the program:

  • cname
  • version
  • arch
  • release tarball in xz format

The only missing parameter is the registry endpoint (could be hardcoded or supplied via a variable), its credentials and key and certificate for signing/verifying.

@mxmxchere
Copy link
Contributor

A remark regarding the parallel execution using the github matrix approach. This is not safe to use in our context. The same index is altered by all flavors. The alteration process downloads the current state of the index alters it locally and pushes the complete changed version. Although the process is quick it is only a matter of time when a racecondition happens so we have to take it sequentially here.

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 a pull request may close this issue.

2 participants