sigstore / root-signing-staging

Staging TUF repository for Sigstore trust root
https://tuf-repo-cdn.sigstage.dev/
Apache License 2.0
3 stars 6 forks source link

tests: more client support #79

Closed jku closed 5 months ago

jku commented 6 months ago

I was not originally convinced that root-signing should test all clients as it moves the testing burden on root-signing instead of the clients, but I changed my mind after discussions in kubecon:

I think we should add the same clients to our tests that current prod root-signing uses to ensure the migration to tuf-on-ci is smooth: This should not be a large amount of work and after both prod production and staging are running tuf-on-ci successfully and all clients are testing against staging, we can maybe start removing tests from root-signing.

sub-issues:

jku commented 6 months ago

@kommendorkapten is there a good reason to test with tuf clients like root-signing tuf_client_tests.yml does?

My instinct was to use sigstore clients instead so the actual trust root changes get tested

kommendorkapten commented 6 months ago

@jku Testing with Sigstore client is of course better. But the reason it's not done universially is that most of the Sigstore clients are just language packages, and so any integration for testing would be more complicated (need to write more custom code). With that reason the tests has mostly been using the underlying TUF client as the ones currently in the test file have some limited cli.

jku commented 6 months ago

most of the Sigstore clients are just language packages

can you eloborate what makes this an issue? Do you mean that there is no straightforward way to run the sigstore client in general, or that modifying the TUF repository URL is tricky?

These are the (sigstore equivalents to) currently tested TUF clients in tuf_client_tests.yml:

EDIT: there is a sigstore-js CLI -- then I really don't know what the issue is...

kommendorkapten commented 6 months ago

Oh, I wasn't aware that the sigstore-js cli exposed that option.

For sigstore-go I'm not sure if there is a good OSS client that can initialize the TUF repo. There is simple cli to use it for verification (which will init the TUF root), maybe that can be bent into only init the TUF root.

Cosign is used in the client tests today: https://github.com/sigstore/root-signing/blob/main/.github/workflows/cosign-test.yml#L48

jku commented 6 months ago

another custom-test.yml feature I've thought about but not written down: would be great to test with both

Every client does not have to do this but one of them could...

jku commented 5 months ago

Closing this: -js and -go have been added, -rs was not since there's no client application (just a library)