Skip to content

docs: add Cozystack v1.x Package-based configuration#412

Draft
IvanHunters wants to merge 2 commits intomainfrom
docs/cozystack-v1-configuration
Draft

docs: add Cozystack v1.x Package-based configuration#412
IvanHunters wants to merge 2 commits intomainfrom
docs/cozystack-v1-configuration

Conversation

@IvanHunters
Copy link
Contributor

Summary

Adds comprehensive documentation for Cozystack v1.x Package-based configuration system and restructures installation guides for better version navigation.

New Documentation

Package Configuration Reference

Location: content/en/docs/operations/configuration/package.md

Complete reference for v1.x Package resource:

  • All configuration fields with descriptions and defaults
  • Bundle variants: isp-full, isp-hosted, distro-full
  • Networking, publishing, authentication, and resource settings
  • Runtime configuration updates via kubectl patch
  • Migration guide from v0.x ConfigMap to v1.x Package
  • Troubleshooting section

Installation Guide Structure

Location: content/en/docs/getting-started/install-cozystack/

Restructured installation guides with version selection:

  • Landing page (_index.md) - helps users choose between versions
  • v1.x guide (v1.md) - Package-based configuration (Recommended)
  • v0.x guide (v0.md) - ConfigMap-based configuration (Legacy)

Key Features

Version Navigation

  • Clear landing page explaining differences between v1.x and v0.x
  • v1.x marked as "Recommended" for new installations
  • v0.x marked as "Legacy" for existing installations
  • Cross-references between versions throughout documentation

Package Configuration

  • Unified configuration through single Package resource
  • New bundle variant naming scheme (isp-* instead of paas-*)
  • Detailed field reference with types and defaults
  • Practical runtime configuration examples

Migration Support

  • Step-by-step migration path from v0.x to v1.x
  • Configuration mapping table (ConfigMap keys → Package paths)
  • Troubleshooting guide for common migration issues

Documentation Structure

Menu Organization

Getting Started
└── 3. Install Cozystack
    ├── v1.x (Recommended)
    └── v0.x (Legacy)

Operations > Configuration  
├── Package (v1.x)
└── ConfigMap (v0.x)

Updated Files

  • content/en/docs/operations/configuration/configmap.md - marked as v0.x, added v1.x reference
  • content/en/docs/getting-started/install-cozystack/v0.md - renamed and marked as legacy
  • content/en/docs/getting-started/install-cozystack/v1.md - new v1.x installation guide
  • content/en/docs/getting-started/install-cozystack/_index.md - new landing page
  • content/en/docs/operations/configuration/package.md - new Package configuration reference

Checklist

  • Documentation follows existing style and format
  • All internal links verified and working
  • Hugo builds successfully without errors
  • Proper weight ordering for logical menu flow
  • Version labels clear throughout documentation
  • English language throughout
  • Cross-references between v0.x and v1.x guides
  • Migration guide with practical examples

ohotnikov.ivan added 2 commits February 4, 2026 23:18
Add comprehensive guide for migrating virtual machines from Proxmox VE
to Cozystack. The guide covers disk export, image upload via virtctl,
and VM deployment with troubleshooting section.

Signed-off-by: ohotnikov.ivan <ohotnikov.ivan@e-queo.net>
Add comprehensive documentation for Cozystack v1.x with Package-based
configuration system and restructure installation guides.

New documentation:
- Package configuration reference with all available options
- v1.x installation guide using Package resource
- Landing page with version selection
- Migration guide from v0.x ConfigMap to v1.x Package
- Runtime configuration examples with kubectl patch

Restructured installation guides:
- Created install-cozystack/ directory with version subpages
- Main page explains differences and helps choose version
- v1.x guide marked as "Recommended"
- v0.x guide marked as "Legacy"

Configuration documentation:
- v1.x Package guide (weight: 5) - recommended approach
- v0.x ConfigMap guide (weight: 10) - legacy reference
- Both marked with version labels and cross-references

Bundle variants in v1.x:
- isp-full: full platform with all system components
- isp-hosted: hosted variant without system components
- distro-full: distribution variant

Signed-off-by: ohotnikov.ivan <ohotnikov.ivan@e-queo.net>
@netlify
Copy link

netlify bot commented Feb 4, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 1b41d32
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6983b57ba0e6780008b8b390
😎 Deploy Preview https://deploy-preview-412--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 Feb 4, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/cozystack-v1-configuration

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.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @IvanHunters, 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 significantly enhances the Cozystack documentation by introducing detailed guides for the new v1.x Package-based configuration. It reorganizes the installation process to provide clear version-specific instructions and includes a comprehensive reference for the v1.x configuration model. Additionally, a new guide for migrating virtual machines from Proxmox to Cozystack is added, improving the platform's interoperability and user onboarding experience.

Highlights

  • New v1.x Package Configuration Documentation: Introduces comprehensive documentation for Cozystack v1.x's new Package-based configuration system, detailing its structure, fields, and usage.
  • Restructured Installation Guides: Reorganizes the installation guides with a new landing page to clearly differentiate between v1.x (Package-based, recommended) and v0.x (ConfigMap-based, legacy) installation paths.
  • Migration Guide from v0.x to v1.x: Provides a detailed guide for migrating existing Cozystack v0.x ConfigMap configurations to the new v1.x Package format, including a configuration mapping table.
  • Proxmox VM Migration Guide: Adds a new step-by-step guide for migrating virtual machines from Proxmox VE to Cozystack, covering disk export, image upload, and VM instance creation.
  • Updated v0.x Documentation: Existing v0.x ConfigMap reference and installation guides are updated to clearly mark them as legacy and provide cross-references to the new v1.x documentation.

🧠 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/getting-started/install-cozystack/_index.md
    • Added a new landing page to help users choose between Cozystack v1.x (recommended) and v0.x (legacy) installation guides, detailing their respective configuration approaches.
  • content/en/docs/getting-started/install-cozystack/v0.md
    • The existing installation guide was renamed from install-cozystack.md to v0.md and updated to explicitly mark it as the legacy guide for Cozystack v0.x, including a version note.
  • content/en/docs/getting-started/install-cozystack/v1.md
    • A new, extensive installation guide for Cozystack v1.x was added, focusing on the Package-based configuration, storage setup with LINSTOR, networking (MetalLB/Public IP), and dashboard access.
  • content/en/docs/operations/configuration/configmap.md
    • Modified the title and added an informational alert to clearly indicate that this document pertains to Cozystack v0.x ConfigMap-based configuration, with a cross-reference to the new v1.x Package configuration.
  • content/en/docs/operations/configuration/package.md
    • A new, in-depth reference document was added for Cozystack v1.x's Package-based configuration, detailing its overview, key changes from v0.x, minimal and full examples, configuration fields, runtime changes, migration guide, and troubleshooting.
  • content/en/docs/virtualization/proxmox-migration.md
    • A new guide was added to assist users in migrating virtual machines from Proxmox VE to Cozystack, covering prerequisites, disk export, VMDisk creation, image upload using virtctl, VMInstance creation, and troubleshooting.
Activity
  • No human activity (comments, reviews, or progress updates) has been recorded for 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 significantly improves the documentation by adding guides for the new Cozystack v1.x Package-based configuration and restructuring the installation guides for better version navigation. The new documentation is comprehensive and covers installation, configuration, and migration. My review focuses on ensuring consistency and correctness, particularly in distinguishing between v0.x (ConfigMap) and v1.x (Package) configurations. I've identified several instances where v0.x commands and concepts were used in the new v1.x guides, which could lead to confusion and misconfiguration. I've provided suggestions to correct these to align with the v1.x Package-based approach. Additionally, I've made a few suggestions to improve clarity and consistency throughout the new documentation pages.

Comment on lines +473 to +481
First, patch the ConfigMap with IPs to expose:

```bash
kubectl patch -n cozy-system configmap cozystack --type=merge -p '{
"data": {
"expose-external-ips": "192.168.100.11,192.168.100.12,192.168.100.13"
}
}'
```
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

This section incorrectly instructs the user to patch a ConfigMap, which is a v0.x configuration method. For v1.x, configuration should be done by patching the Package resource. Using the wrong command will lead to misconfiguration.

First, patch the Package with IPs to expose:

```bash
kubectl patch package cozystack.cozystack-platform -n cozy-system --type merge -p '{
  "spec": {
    "components": {
      "platform": {
        "values": {
          "publishing": {
            "externalIPs": [
              "192.168.100.11",
              "192.168.100.12",
              "192.168.100.13"
            ]
          }
        }
      }
    }
  }
}'

Comment on lines +613 to +618
If you left this line in the ConfigMap, Cozystack Dashboard must be already available at this moment:

```yaml
data:
expose-services: "dashboard,api"
```
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

This section incorrectly refers to ConfigMap and shows a ConfigMap data structure, which is for v0.x. For v1.x, this should refer to the Package resource and its publishing.exposedServices field. For example:

spec:
  components:
    platform:
      values:
        publishing:
          exposedServices:
            - dashboard
            - api

Comment on lines +622 to +626
```bash
kubectl patch -n cozy-system cm cozystack --type=merge -p '{"data":{
"expose-services": "dashboard"
}}'
```
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

This command patches a ConfigMap (cm), which is for v0.x. For v1.x, you should patch the Package resource to update exposedServices.

Suggested change
```bash
kubectl patch -n cozy-system cm cozystack --type=merge -p '{"data":{
"expose-services": "dashboard"
}}'
```
kubectl patch package cozystack.cozystack-platform -n cozy-system --type merge -p '{
"spec": {
"components": {
"platform": {
"values": {
"publishing": {
"exposedServices": ["dashboard"]
}
}
}
}
}
}'

Comment on lines +23 to +28
- Modify your Cozystack ConfigMap to enable `cdi-uploadproxy`:
```bash
kubectl patch cm -n cozy-system cozystack --type merge -p='{"data":{
"expose-services": "dashboard,cdi-uploadproxy"
}}'
```
Copy link
Contributor

Choose a reason for hiding this comment

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

high

This command uses kubectl patch cm to patch a ConfigMap, which is the configuration method for Cozystack v0.x. This guide should provide instructions for v1.x, which uses a Package resource. Please update the command to patch the Package resource or clarify which Cozystack version this guide applies to.

Suggested change
- Modify your Cozystack ConfigMap to enable `cdi-uploadproxy`:
```bash
kubectl patch cm -n cozy-system cozystack --type merge -p='{"data":{
"expose-services": "dashboard,cdi-uploadproxy"
}}'
```
- Modify your Cozystack Package to enable `cdi-uploadproxy`:
```bash
kubectl patch package cozystack.cozystack-platform -n cozy-system --type merge -p='{
"spec": {
"components": {
"platform": {
"values": {
"publishing": {
"exposedServices": ["dashboard", "cdi-uploadproxy"]
}
}
}
}
}
}'
```

Comment on lines +29 to +33
- Configure the CDI upload proxy endpoint in your Cozystack values:
```yaml
values-cdi: |
uploadProxyURL: https://cdi-uploadproxy.example.org
```
Copy link
Contributor

Choose a reason for hiding this comment

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

high

The instruction to configure uploadProxyURL is unclear. The values-cdi: syntax is for a v0.x ConfigMap. For v1.x, this configuration should be part of the Package resource. Please clarify how to set this value for v1.x, for example by showing how to patch the Package resource under spec.components.<component-name>.values.

joinCIDR: "100.64.0.0/16"
publishing:
host: "example.org"
apiServerEndpoint: "https://192.168.1.10:6443"
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 apiServerEndpoint in this minimal example uses an IP address, which is inconsistent with other examples in the documentation (e.g., in v1.md and the full example in this file) that use a domain name like api.example.org. Using a domain name is generally better practice. For consistency, please update this to use api.example.org.

Suggested change
apiServerEndpoint: "https://192.168.1.10:6443"
apiServerEndpoint: "https://api.example.org:6443"

Comment on lines +318 to +321
```bash
kubectl get package cozystack.cozystack-platform -n cozy-system \
-o jsonpath='{.spec.components.platform.values}' | yq
```
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 command uses yq, which is a third-party tool that might not be installed on the user's system. It's good practice to either mention yq as a prerequisite or provide an alternative. Consider adding a note for the user to install yq.


| v0.x ConfigMap Key | v1.x Package Path |
|--------------------|-------------------|
| `bundle-name: paas-full` | `spec.variant: isp-full` |
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 mapping for bundle-name is very specific. It would be more helpful to explain the general mapping rule for bundle names from v0.x to v1.x (e.g., paas-full -> isp-full, paas-hosted -> isp-hosted) or make the table entry more generic.

Suggested change
| `bundle-name: paas-full` | `spec.variant: isp-full` |
| `bundle-name: paas-*` | `spec.variant: isp-*` (e.g., `paas-full` -> `isp-full`) |

Comment on lines +78 to +80
```bash
kubectl apply -f vmdisk-upload.yaml
```
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 filename vmdisk-upload.yaml is used in this command, but its content is not defined earlier. It would be helpful to instruct the user to create this file with the YAML content provided in the preceding code block.

Comment on lines +135 to +137
```bash
kubectl apply -f vminstance.yaml
```
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Similar to the previous step, the filename vminstance.yaml is used here without being defined. Please add instructions for creating this file with the YAML content from the preceding block.

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