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

mantle: a general way of globally specifying channel or version #42

Closed
dongsupark opened this issue Mar 11, 2020 · 7 comments
Closed

mantle: a general way of globally specifying channel or version #42

dongsupark opened this issue Mar 11, 2020 · 7 comments
Labels
kind/debt Technological debt. kind/infrastructure Issues concerning build / test / release tooling or infrastructure of Flatcar Container Linux.

Comments

@dongsupark
Copy link
Member

Since the docker 1.12 profile was removed in Edge, many kola tests started to fail to run, because of the missing docker 1.12 profile. Ideally we should be able to make a different set of profiles for each channel. Unfortunately the current Jenkins pipeline is not able to do that. It takes into account only flatcar-master branch.

For now we work around the specific issue by skipping tests for Edge. flatcar/mantle#61.

In the long run, however, in mantle, we should make a general way of globally specifying channel or version numbers, so that individual tests can selectively run based on the channel or versions.

@dongsupark dongsupark added the kind/debt Technological debt. label Mar 11, 2020
@t-lo t-lo added the kind/infrastructure Issues concerning build / test / release tooling or infrastructure of Flatcar Container Linux. label Mar 13, 2020
@t-lo
Copy link
Member

t-lo commented Apr 7, 2020

Had a quick sync with @sayanchowdhury on this - a good way to achieve the objective would be to use separate mantle branches for Alpha, Beta, Stable and Edge, respectively.

@pothos
Copy link
Member

pothos commented Apr 7, 2020

That won't work because we only build mantle once in Jenkins and then it is used for various channels. I don't understand why I would need to recompile kola each time I want to run a test for a different version.

@pothos
Copy link
Member

pothos commented Apr 7, 2020

The tests in kola are already annotated with distros and platforms they run on. Why not make another annotation for the channel? The original idea here was to have this checked at runtime by looking at the contents of the image. But we can even simplify this and introduce a command line parameter for the channel and have the test filter handle this before the tests are run.

@t-lo
Copy link
Member

t-lo commented Apr 7, 2020

I guess it depends on the actual amount of differences between any given channel (e.g. Edge vs. Stable). Both approaches have pros and cons.

I agree that distinguishing at the test execution level has the benefit of implementing coverage for all channels in the same file / branch.

On the other hand, if we need to update tests to cover new features, using separate channels would enable us to transition updated tests through Alpha -> Beta -> Stable alongside the actual updated packages.

@pothos
Copy link
Member

pothos commented Apr 7, 2020

Besides the efforts to reorganize how Jenkins runs mantle, it is also error-prone when running kola manually if people need to be aware of rebuilding each time with the correct branch.

@pothos
Copy link
Member

pothos commented Apr 7, 2020

Here you can see how tests are annotated to run only on cl (Container Linux) and not on a certain platform: https://github.com/flatcar-linux/mantle/blob/flatcar-master/kola/tests/docker/torcx_docker_flag.go#L55 We could use the same scheme to define channels or even versions as requirements for a test.

@sayanchowdhury
Copy link
Member

I did not mean create separate branches rather create an argument --channel which would help us achieve the same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/debt Technological debt. kind/infrastructure Issues concerning build / test / release tooling or infrastructure of Flatcar Container Linux.
Projects
None yet
Development

No branches or pull requests

4 participants