kurtosis-tech / kurtosis

A platform for packaging and launching ephemeral backend stacks with a focus on approachability for the average developer.
https://docs.kurtosistech.com/
Apache License 2.0
385 stars 55 forks source link

Unable to use docker image sha256 #2460

Closed prestonvanloon closed 6 months ago

prestonvanloon commented 6 months ago

What's your CLI version?

0.89.10

Description & steps to reproduce

Problem

Kurtosis seems to blow up when using a sha256 string for a docker image. This is a valid string and works fine in kubernetes.

There was an error interpreting Starlark code 
Evaluation error: Cannot construct 'ServiceConfig' from the provided arguments.
        Caused by: The following argument(s) could not be parsed or did not pass validation: {"labels":"An error occurred validating service config labels 'map[ethereum-package.client:geth ethereum-package.client-image:ethereum-client-go@sha256-2246c2df2eef7e1f88213cc6b98c3f180ddfd6c16a96e634143e47a3de2d313c ethereum-package.client-type:execution ethereum-package.connected-client:prysm]'\n\tCaused by: Invalid service config label value 'ethereum-client-go@sha256-2246c2df2eef7e1f88213cc6b98c3f180ddfd6c16a96e634143e47a3de2d313c'\n --- at /home/circleci/project/container-engine-lib/lib/backend_interface/objects/service/service_config_validators.go:27 (ValidateServiceConfigLabels) ---\nCaused by: Expected label string 'ethereum-client-go@sha256-2246c2df2eef7e1f88213cc6b98c3f180ddfd6c16a96e634143e47a3de2d313c' to be a Kubernetes label value, instead it failed validation:\nmust be no more than 63 characters\n\na valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue',  or 'my_value',  or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')\n --- at /home/circleci/project/container-engine-lib/lib/backend_impls/kubernetes/object_attributes_provider/kubernetes_label_value/kubernetes_label_value.go:42 (ValidateKubernetesLabelValue) ---"}
        at [github.com/kurtosis-tech/ethereum-package/main.star:126:55]: run
        at [github.com/kurtosis-tech/ethereum-package/src/participant_network.star:144:48]: launch_participant_network
        at [github.com/kurtosis-tech/ethereum-package/src/el/el_launcher.star:141:35]: launch
        at [github.com/kurtosis-tech/ethereum-package/src/el/geth/geth_launcher.star:128:24]: launch
        at [github.com/kurtosis-tech/ethereum-package/src/el/geth/geth_launcher.star:374:25]: get_config
        at [0:0]: ServiceConfig

Error encountered running Starlark code.

To reproduce:

kurtosis run github.com/kurtosis-tech/ethereum-package --args-file ./testing/kurtosis/presubmit.yaml

presubmit.yaml can be found in the gist below.

https://gist.github.com/prestonvanloon/f72a26df7b647af6c5b36f4377d5c06a

Desired behavior

We must have consistency and reproducibility in our CI and will not accept using docker labels. We must use sha256 strings for our docker image definitions and this should work fine.

What is the severity of this bug?

Critical; I am blocked and Kurtosis is unusable for me because of this bug.

What area of the product does this pertain to?

CLI: the Command Line Interface

prestonvanloon commented 6 months ago

Confirming that reverting https://github.com/kurtosis-tech/ethereum-package/pull/634 fixes my issue.

OK to move this issue to that repo or close this.

prestonvanloon commented 6 months ago

Fixed by https://github.com/kurtosis-tech/ethereum-package/pull/636