Skip to content

docs(install): add Ansible automated installation guide#442

Open
lexfrei wants to merge 4 commits intomainfrom
docs/ansible-installation
Open

docs(install): add Ansible automated installation guide#442
lexfrei wants to merge 4 commits intomainfrom
docs/ansible-installation

Conversation

@lexfrei
Copy link
Contributor

@lexfrei lexfrei commented Mar 4, 2026

Summary

  • Add documentation for deploying Cozystack using the cozystack.installer Ansible collection
  • Covers full pipeline: OS preparation, k3s bootstrap, and Cozystack installation
  • Includes per-distro playbook examples (Ubuntu/Debian, RHEL/Rocky, openSUSE/SLE), inventory template, and complete configuration reference
  • Emphasizes explicit version pinning for cozystack_chart_version to avoid unexpected upgrades
  • Add link to Ansible guide from the main installation index page

Summary by CodeRabbit

  • Documentation
    • Added comprehensive guide for automated installation using Ansible, including prerequisites, step-by-step workflow with inventory and playbook examples, and verification steps for deployment validation.

lexfrei added 4 commits March 4, 2026 16:56
Add documentation for the cozystack.installer Ansible collection
that automates full deployment pipeline: OS preparation, k3s
bootstrap, and Cozystack installation. Includes configuration
reference, per-distro playbook examples, and explicit warning
to pin cozystack_chart_version.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Fix prepare playbook references to use local files instead of
non-existent collection playbooks. Use correct ansible-galaxy
collection install command. Add security warning for k3s join
token. Add missing variables to configuration reference.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Download requirements.yml from git since it is excluded from
the packaged collection. List dependency collections explicitly.
Add cozystack_helm_binary and prepare playbook variables
(cozystack_flush_iptables, cozystack_k3s_extra_args) to the
configuration reference. Add k3s releases link for version.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Clarify that helm-diff is installed automatically for idempotent
upgrades. Add commented cozystack_k3s_extra_args example with
tls-san for NAT environments in the inventory sample.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
@netlify
Copy link

netlify bot commented Mar 4, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 55c125a
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/69a84329e32b940008d8b308
😎 Deploy Preview https://deploy-preview-442--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 4, 2026

📝 Walkthrough

Walkthrough

Documentation for automated Cozystack installation using Ansible has been added. The changes include a new reference in the installation guide index and comprehensive new documentation detailing the Ansible collection setup, inventory configuration, prerequisite checks, step-by-step workflow, verification steps, and example playbooks for multiple Linux distributions.

Changes

Cohort / File(s) Summary
Ansible Installation Documentation
content/en/docs/v1/install/_index.md, content/en/docs/v1/install/ansible.md
Added comprehensive Ansible-based installation guide covering collection setup, inventory configuration, playbook composition, OS-specific preparation steps, and verification procedures. Includes cross-references and examples for generic air-gapped Linux deployments.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 Hop along with Ansible's might,
Cozystack deploys with pure delight!
Playbooks dance through k3s and prep,
One command per system, not a single misstep!
Automation hops forward, efficient and bright!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs(install): add Ansible automated installation guide' directly and clearly describes the main change: adding documentation for Ansible-based installation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/ansible-installation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@lexfrei lexfrei marked this pull request as ready for review March 4, 2026 14:40
@lexfrei lexfrei requested review from kvaps and lllamnyp as code owners March 4, 2026 14:40
@lexfrei lexfrei self-assigned this Mar 4, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a significant enhancement to the Cozystack documentation by providing a detailed guide for automated installation using Ansible. This new resource streamlines the deployment process for users on generic Linux distributions, offering a repeatable and efficient method to set up Cozystack from a bare operating system to a fully running cluster. The guide aims to simplify the initial setup experience and reduce manual intervention.

Highlights

  • New Automated Installation Guide: Added comprehensive documentation for deploying Cozystack using the cozystack.installer Ansible collection, covering the full pipeline from OS preparation to k3s bootstrap and Cozystack installation.
  • Distro-Specific Examples: The new guide includes per-distro playbook examples for Ubuntu/Debian, RHEL/Rocky, and openSUSE/SLE, along with an inventory template and a complete configuration reference.
  • Version Pinning Emphasis: Explicitly highlighted the importance of pinning cozystack_chart_version to avoid unexpected upgrades during automated deployments.
  • Main Index Integration: Integrated a link to the new Ansible installation guide from the main installation index page for easy discoverability.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • content/en/docs/v1/install/_index.md
    • Added a new section for 'Automated Installation with Ansible' with a link to the dedicated guide.
  • content/en/docs/v1/install/ansible.md
    • Added a new documentation page detailing the automated installation process for Cozystack using the cozystack.installer Ansible collection.
    • Included sections on when to use Ansible, prerequisites, installation steps, inventory creation, playbook examples for various Linux distributions, and configuration references.
    • Provided verification steps and emphasized the idempotency of the Ansible playbook.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a comprehensive guide for automated Cozystack installation using Ansible, covering OS preparation, k3s bootstrap, and Cozystack deployment across various Linux distributions. It also updates the main installation index to link to this new guide. The documentation is well-structured and includes important warnings regarding security and version pinning.

Note: Security Review has been skipped due to the limited scope of the PR.

| Variable | Default | Description |
| --- | --- | --- |
| `cozystack_api_server_host` | *(required)* | Internal IP of the control-plane node. |
| `cozystack_chart_version` | `1.0.0-rc.1` | Version of the Cozystack Helm chart. **Pin this explicitly.** |
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The default value for cozystack_chart_version in the "Core Variables" table (1.0.0-rc.1) conflicts with the explicitly recommended version in the warning alert above (1.0.0-rc.2). This discrepancy can lead to confusion for users regarding which version to use or pin.

Suggested change
| `cozystack_chart_version` | `1.0.0-rc.1` | Version of the Cozystack Helm chart. **Pin this explicitly.** |
| cozystack_chart_version | 1.0.0-rc.2 | Version of the Cozystack Helm chart. **Pin this explicitly.** |

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
content/en/docs/v1/install/ansible.md (1)

4-4: Clarify platform wording in the page description.

At Line 4, “generic Kubernetes” is ambiguous for this flow, since this guide provisions k3s as part of installation. Consider “generic Linux with k3s bootstrap” to avoid confusion for readers with existing non-k3s clusters.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/en/docs/v1/install/ansible.md` at line 4, Update the YAML description
value for the page by replacing the ambiguous phrase "generic Kubernetes" with
clearer wording that reflects the guide bootstraps k3s (e.g., "generic Linux
with k3s bootstrap"), so change the description: "Deploy Cozystack on generic
Kubernetes using the cozystack.installer Ansible collection" to something like
"Deploy Cozystack on generic Linux with k3s bootstrap using the
cozystack.installer Ansible collection" (edit the description key).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@content/en/docs/v1/install/ansible.md`:
- Around line 15-16: The two distro lists are inconsistent: the list "You are
deploying on generic Linux (Ubuntu, Debian, RHEL, Rocky, openSUSE) rather than
Talos Linux" is missing Alma/SLE/CentOS Stream which are present in the later
list around the second paragraph; update the earlier list to match the later one
(add Alma, SLE, CentOS Stream) or explicitly mark either list as
"non-exhaustive" so both convey the same compatibility intent; adjust the
corresponding line(s) where the second list appears to ensure both sections use
the same wording (or the shared "non-exhaustive" qualifier) to avoid mixed
signals.

---

Nitpick comments:
In `@content/en/docs/v1/install/ansible.md`:
- Line 4: Update the YAML description value for the page by replacing the
ambiguous phrase "generic Kubernetes" with clearer wording that reflects the
guide bootstraps k3s (e.g., "generic Linux with k3s bootstrap"), so change the
description: "Deploy Cozystack on generic Kubernetes using the
cozystack.installer Ansible collection" to something like "Deploy Cozystack on
generic Linux with k3s bootstrap using the cozystack.installer Ansible
collection" (edit the description key).

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 98b7bc07-ebd7-4b07-9aa8-fac16b5ce740

📥 Commits

Reviewing files that changed from the base of the PR and between acd30be and 55c125a.

📒 Files selected for processing (2)
  • content/en/docs/v1/install/_index.md
  • content/en/docs/v1/install/ansible.md

Comment on lines +15 to +16
- You are deploying on generic Linux (Ubuntu, Debian, RHEL, Rocky, openSUSE) rather than Talos Linux
- You want to manage multiple nodes with a single inventory file
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Align supported distro lists across sections.

The support matrix is inconsistent: Line 15 omits Alma/SLE/CentOS Stream, while Line 29 includes them. Please make these lists consistent (or mark one as non-exhaustive) to avoid mixed compatibility signals.

Also applies to: 29-30

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@content/en/docs/v1/install/ansible.md` around lines 15 - 16, The two distro
lists are inconsistent: the list "You are deploying on generic Linux (Ubuntu,
Debian, RHEL, Rocky, openSUSE) rather than Talos Linux" is missing
Alma/SLE/CentOS Stream which are present in the later list around the second
paragraph; update the earlier list to match the later one (add Alma, SLE, CentOS
Stream) or explicitly mark either list as "non-exhaustive" so both convey the
same compatibility intent; adjust the corresponding line(s) where the second
list appears to ensure both sections use the same wording (or the shared
"non-exhaustive" qualifier) to avoid mixed signals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant