gardener / landscapercli

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot upload blob files in GitHub workflow due to ":" Colon

DenisDuev opened this issue · comments

What is the problem:

We are using landscapercli in a GitHub workflow to generate component-descriptor, blueprint, and deployitems based on helm charts.
The helm charts are local and blobs are generated.
When we try to upload the artifacts using actions/upload-artifacts we get an error:

Error: Artifact path is not valid: /blobs/sha256:2bd6ba29e8317150032676053759ed56cb26a56db023f2531f7be9a4b7920109. Contains character: ":". Invalid characters include: ",:,<,>,|,*,?.

What you expected to happen:

Successfully uploaded artifacts in GitHub workflow. File names do not contain characters that do not work on most operating systems. See more here

How to reproduce it (as minimally and precisely as possible):

Greate repository containing a file with ":" in its name, use the https://github.com/actions/upload-artifact to upload it to workflow

Hi,

the generation of the blob files are done by the component-cli . The commands for adding resources are just imported by the landscaper-cli. I guess it would be a good idea to open an issue in that project.

I am closing this issue as the unwanted behaviour comes from component-cli

Why do you need to upload the blobs? Would it perhaps be sufficient to upload the component before converting the local resources to blobs via the add resource command?

I wanted all the artifacts to be packed as artifact and then upload them to OCI Registry for installation with the landscaper.

I was following the [create_component docs] https://github.com/gardener/landscapercli/blob/master/docs/commands/create_component/create.md
The idea is to have one action to generate the blueprint and component (steps 1 and 2) and store the files temporary as artifacts. Then another action to read this artifact and upload the to OCI Registry (step 3)

But why not just uploading all the stuff generated before calling the command "add resources". This is the complete description of your component. When you upload it to the oci registry, just make the "add" resources" before and you do not need to store the blobs somewhere. The blobs are just an internal storage detail of the component which could be always recreated from your configuration. Therefore no need to store them somewhere.

I know that the component cli is working toward a command creating the blobs and uploading the component to the registry in one step and even better without presenting the blobs to the end user anymore.