Skip to content

docs: restructure Kola README for clarity and completeness #629

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

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

John15321
Copy link
Member

@John15321 John15321 commented Jun 6, 2025

This pull request updates the kola/README.md file to significantly enhance its structure and content, making it more comprehensive and user-friendly for contributors. The changes focus on improving the documentation for the Kola testing framework, providing detailed guidance for test writers and maintainers, and introducing a new section on adding test packages.

Part of: flatcar/Flatcar#651

@John15321 John15321 changed the title [Work in Progress but feel free to chip in your thoughts] docs: restructure Kola README for clarity and completeness docs: restructure Kola README for clarity and completeness Jun 10, 2025
@John15321 John15321 marked this pull request as ready for review June 10, 2025 13:33
@John15321 John15321 force-pushed the refactor-kola-readme branch from 778bbc7 to ab87592 Compare June 10, 2025 13:33
@John15321 John15321 requested a review from Copilot June 10, 2025 13:36
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.

Copy link
Contributor

@chewi chewi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing, thank you! Just a few suggestions.

@github-project-automation github-project-automation bot moved this from ✅ Testing / in Review to ⚒️ In Progress in Flatcar tactical, release planning, and roadmap Jun 10, 2025
Copy link
Member

@sayanchowdhury sayanchowdhury left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work - we should try to convert this into a demo. I've left a few minor comments.

kola/README.md Outdated
- Linux operating system
- SSH client and server
- **Sudo access for QEMU testing** (or use `qemu-unpriv` for single-node tests)
- Go 1.19+ for building from source
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's change the version to 1.23 here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated please check

kola/README.md Outdated
./build kola

# Check Go version
go version # Should be 1.19+
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here too 1.23?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated please check

kola/README.md Outdated

### AWS
```bash
# Set up credentials
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest this one as the recommended way

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated please check

cluster.AssertCmdOutputContains(machine, "command", "expected")
```

**Implementation Details:**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not understand this. Can you elaborate here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its about letting the person know how SSH works when tests are run in various environments etc. What about this description now?

Copy link
Contributor

@chewi chewi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fixes. I'm happy assuming Sayan's suggestions are applied.

John15321 and others added 2 commits June 11, 2025 10:17
Co-authored-by: Sayan Chowdhury <[email protected]>
Co-authored-by: Sayan Chowdhury <[email protected]>
Copy link
Contributor

@tormath1 tormath1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this. Overall it looks good and it is nice to have this documentation. Some additional notes:


# Run your specific test
sudo ./bin/kola run -p qemu \
--qemu-image ./flatcar_production_qemu_image.img \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure this will actually work. We need to provide some additional flags:

--qemu-firmware /home/tormath1/flatcar/flatcar_production_qemu_uefi_efi_code.qcow2 --qemu-ovmf-vars /home/tormath1/flatcar/flatcar_production_qemu_uefi_efi_vars.qcow2

This will just fail with:

qemu: could not load PC BIOS ...bios-256k.bin

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you working on WSL?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I work from a Linux machine.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure, but I think Kola is hardcoded to look for bios-256k.bin in the current directory, which is annoying. I've had to symlink it there. QEMU generally knows where to find it and will use it by default, so I think the Kola default should be to just assume it will work.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I just took the habit of using the firmware that we ship, like described here: https://github.com/flatcar/mantle?tab=readme-ov-file#run-tests-for-amd64 or like we do in the vendor-testing: https://github.com/flatcar/scripts/blob/main/ci-automation/vendor-testing/qemu.sh#L83 (I find explicit flags less prone to error)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, you should always specify it for UEFI because we do interesting things with that firmware, but we never touch SeaBIOS.

@John15321
Copy link
Member Author

I agree. Lets do that after everyone is happy with the new readme. Also what do you think about refreshing the other readmes? such that the main readme only has link to the subdirectories with their respective readmes?

@tormath1
Copy link
Contributor

I agree. Lets do that after everyone is happy with the new readme. Also what do you think about refreshing the other readmes? such that the main readme only has link to the subdirectories with their respective readmes?

Yes, looks good in follow-up PRs. Let's first ingest some of this content like you already did: https://github.com/flatcar/mantle?tab=readme-ov-file#kola-run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: ⚒️ In Progress
Development

Successfully merging this pull request may close these issues.

4 participants