Skip to content

feat(blog): add etcd-operator v1alpha2 announcement#573

Merged
Andrei Kvapil (kvaps) merged 1 commit into
mainfrom
blog/etcd-operator-joins-cozystack
Jun 10, 2026
Merged

feat(blog): add etcd-operator v1alpha2 announcement#573
Andrei Kvapil (kvaps) merged 1 commit into
mainfrom
blog/etcd-operator-joins-cozystack

Conversation

@kvaps

@kvaps Andrei Kvapil (kvaps) commented Jun 10, 2026

Copy link
Copy Markdown
Member

Summary

Add a blog post announcing the donation of etcd-operator to the Cozystack project and the new etcd-operator.cozystack.io/v1alpha2 API.

The post covers the project history, the new Membership-API-based lifecycle that replaces the StatefulSet model, key features, changes compared to v1alpha1, the in-place migration path, and a status comparison against the official etcd-io/etcd-operator roadmap.

Adapted from the announcement article in the operator repository: cozystack/etcd-operator#329

Summary by CodeRabbit

  • Documentation
    • Added blog post announcing etcd-operator's integration with Cozystack, featuring the new API version, operator architecture, scaling capabilities, storage options, and migration guidance.

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

A new blog post announces the donation of etcd-operator to Cozystack. It introduces the v1alpha2 API, describes the operator architecture and key features, documents migration from v1alpha1, and compares coverage against the official etcd-io operator roadmap.

Changes

etcd-operator Announcement

Layer / File(s) Summary
Blog Post Announcement
content/en/blog/2026-06-10-etcd-operator-joins-cozystack.md
Blog post announces etcd-operator donation to Cozystack, introduces v1alpha2 API design (Membership API-driven), documents EtcdCluster + EtcdMember architecture, lists core features (scaling, pause/resume, storage modes, TLS/auth, snapshots, PDB, CEL validation, scale subresource, kubectl plugin), details v1alpha1 differences (API group, resources, options, naming, validation), describes etcd-migrate in-place adoption, and maps roadmap coverage including multi-tenant capabilities.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested reviewers

  • lllamnyp

Poem

A rabbit hops with joy so bright, 🐰
etcd-operator finds new home tonight!
From donation to v1alpha2's grace,
Cozystack gives it a welcoming place.
Docs and dashboards shine so fine,
This operator's future is divine!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat(blog): add etcd-operator v1alpha2 announcement' directly and clearly summarizes the main change—adding a blog post announcing the v1alpha2 release of etcd-operator.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch blog/etcd-operator-joins-cozystack

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 gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

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 adds a new blog post announcing that the etcd-operator project has joined Cozystack with a new v1alpha2 API, detailing its features, migration path, and comparison with the official operator. The review feedback focuses on minor grammatical corrections, such as capitalizing "Ænix" for consistency and improving punctuation around abbreviations like "e.g.".

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.


The [etcd-operator](https://github.com/cozystack/etcd-operator) project, which develops an operator for deploying and maintaining [etcd](https://etcd.io) clusters on Kubernetes, has been donated to the [Cozystack](https://cozystack.io) project. Alongside the donation, a from-scratch implementation of the operator has been published under a new API version — `etcd-operator.cozystack.io/v1alpha2`, superseding the previous `etcd.aenix.io/v1alpha1`. Instead of managing members through a StatefulSet, the new implementation directly drives etcd's native Membership API (the MemberAdd, MemberPromote and MemberRemove operations), giving the operator full control over cluster membership. The new implementation was written by [Timofei Larkin](https://github.com/lllamnyp), one of the maintainers of the previous codebase, which is preserved in the [v1alpha1](https://github.com/cozystack/etcd-operator/tree/v1alpha1) branch. The project is written in Go and distributed under the Apache 2.0 license.

The project was started by Ænix, which assembled an initiative group from the Russian-speaking Kubernetes community to build it. After the base implementation was completed, an attempt was made to donate the project to the CNCF. Prompted by this initiative, the etcd project concluded that an official operator was needed and formed its own working group, which, after evaluating existing implementations, chose to develop a codebase from scratch — this is how [etcd-io/etcd-operator](https://github.com/etcd-io/etcd-operator) came to be. Feature-wise the official operator has not yet caught up with the aenix etcd-operator, which is already used in production by the community and by projects such as Cozystack and [Kamaji](https://github.com/clastix/kamaji), so the project has continued its own independent line of development (a comparison with the official operator is given at the end of this article).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

For consistency with the previous mention of the company name "Ænix", "aenix" should be capitalized. Also, adding a comma after "Feature-wise" improves readability.

Suggested change
The project was started by Ænix, which assembled an initiative group from the Russian-speaking Kubernetes community to build it. After the base implementation was completed, an attempt was made to donate the project to the CNCF. Prompted by this initiative, the etcd project concluded that an official operator was needed and formed its own working group, which, after evaluating existing implementations, chose to develop a codebase from scratch — this is how [etcd-io/etcd-operator](https://github.com/etcd-io/etcd-operator) came to be. Feature-wise the official operator has not yet caught up with the aenix etcd-operator, which is already used in production by the community and by projects such as Cozystack and [Kamaji](https://github.com/clastix/kamaji), so the project has continued its own independent line of development (a comparison with the official operator is given at the end of this article).
The project was started by Ænix, which assembled an initiative group from the Russian-speaking Kubernetes community to build it. After the base implementation was completed, an attempt was made to donate the project to the CNCF. Prompted by this initiative, the etcd project concluded that an official operator was needed and formed its own working group, which, after evaluating existing implementations, chose to develop a codebase from scratch — this is how [etcd-io/etcd-operator](https://github.com/etcd-io/etcd-operator) came to be. Feature-wise, the official operator has not yet caught up with the Ænix etcd-operator, which is already used in production by the community and by projects such as Cozystack and [Kamaji](https://github.com/clastix/kamaji), so the project has continued its own independent line of development (a comparison with the official operator is given at the end of this article).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Applied the comma fix and reworded the sentence. Kept aenix etcd-operator lowercase deliberately — that's how the project is referred to in the comparison context.


The implementation covers most items of the [roadmap](https://github.com/etcd-io/etcd-operator/blob/main/docs/roadmap.md) of the official [etcd-operator](https://github.com/etcd-io/etcd-operator) developed by the etcd project. Status by roadmap item:

1. Create a new etcd cluster, e.g 3 or 5 members cluster of a specified etcd version — implemented.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The phrasing "e.g 3 or 5 members cluster" has minor grammatical issues. It should be "e.g., a 3- or 5-member cluster" for correct English grammar and punctuation.

Suggested change
1. Create a new etcd cluster, e.g 3 or 5 members cluster of a specified etcd version — implemented.
1. Create a new etcd cluster, e.g., a 3- or 5-member cluster of a specified etcd version — implemented.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Applied.

2. Understand health of a cluster — implemented.
3. Enabling TLS communication, including cert renewal — implemented.
4. Upgrade across patches or one minor version — partially implemented: `spec.version` applies only to newly created members.
5. Scale in and out, e.g 1 -> 3 -> 5 members and vice versa — implemented.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

Add a comma after "e.g." to follow standard English punctuation rules.

Suggested change
5. Scale in and out, e.g 1 -> 3 -> 5 members and vice versa — implemented.
5. Scale in and out, e.g., 1 -> 3 -> 5 members and vice versa — implemented.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Applied.

Announce the donation of etcd-operator to Cozystack and the new
etcd-operator.cozystack.io/v1alpha2 API.

Co-Authored-By: Andrey Kolkov <androndo@gmail.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
@netlify

netlify Bot commented Jun 10, 2026

Copy link
Copy Markdown

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit c5a49e9
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6a295922c511c800091ba180
😎 Deploy Preview https://deploy-preview-573--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.

@netlify

netlify Bot commented Jun 10, 2026

Copy link
Copy Markdown

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 1e5110a
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6a2959eaa688b100087fe034
😎 Deploy Preview https://deploy-preview-573--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.

@kvaps Andrei Kvapil (kvaps) marked this pull request as ready for review June 10, 2026 13:37

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@content/en/blog/2026-06-10-etcd-operator-joins-cozystack.md`:
- Line 15: The post's top-level content heading "etcd-operator Joins Cozystack
with a New v1alpha2 API" is currently an h3 (###) and duplicates the frontmatter
title; either change the heading to h2 (replace "###" with "##") if you want it
in-content, or remove that heading line entirely to avoid redundancy with
Hugo-rendered frontmatter (removing is the recommended option for Hugo blog
posts).
- Around line 1-12: The first in-article heading is mistakenly a level-3 heading
(`###`) immediately after the front matter; change that heading marker from
`###` to a level-2 marker `##` so the post body uses consistent heading
hierarchy (front matter title is the page-level title), leaving the rest of the
content unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 22667f71-a8bb-46d4-814a-c478dd5390aa

📥 Commits

Reviewing files that changed from the base of the PR and between a28843b and 1e5110a.

📒 Files selected for processing (1)
  • content/en/blog/2026-06-10-etcd-operator-joins-cozystack.md

Comment thread content/en/blog/2026-06-10-etcd-operator-joins-cozystack.md
Comment thread content/en/blog/2026-06-10-etcd-operator-joins-cozystack.md
@kvaps Andrei Kvapil (kvaps) merged commit 85317f4 into main Jun 10, 2026
6 checks passed
@kvaps Andrei Kvapil (kvaps) deleted the blog/etcd-operator-joins-cozystack branch June 10, 2026 15:10
Andrei Kvapil (kvaps) added a commit that referenced this pull request Jun 10, 2026
## Summary

Add a blog post announcing the donation of etcd-operator to the
Cozystack project and the new `etcd-operator.cozystack.io/v1alpha2` API.

The post covers the project history, the new Membership-API-based
lifecycle that replaces the StatefulSet model, key features, changes
compared to `v1alpha1`, the in-place migration path, and a status
comparison against the official etcd-io/etcd-operator roadmap.

Adapted from the announcement article in the operator repository:
cozystack/etcd-operator#329

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Added blog post announcing etcd-operator's integration with Cozystack,
featuring the new API version, operator architecture, scaling
capabilities, storage options, and migration guidance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
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.

2 participants