change: URL for install etcd-operator - #298
Closed
Winicius Allan (winiciusallan) wants to merge 210 commits into
Closed
change: URL for install etcd-operator#298Winicius Allan (winiciusallan) wants to merge 210 commits into
Winicius Allan (winiciusallan) wants to merge 210 commits into
Conversation
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Add LICENSE file
Initializing the project
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Update kubebuilder to v3.14.0
Generated and wrote the most basic EtcdCluster custom resource. See cozystack#9
Fixes from comments cozystack#15 - Fix API group name for custom resources - remove unnecessary comment lines
demo: https://github.com/aenix-io/etcd-operator/tree/basic-readme fixes cozystack#10 Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
1. Union argument layers and copy source code. 2. Changed layers order final image for grow cache hit
fixes: cozystack#10 Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
- Added basic validating and defaulting webhooks - Added simple test for defaulting webhook
Controller now can successfully bootstrap etcd cluster :) Controller creates Service, ConfigMap and StatefulSet based on EtcdCluster CR Only EmptyDir storage is supported Initialized status is being set and updated
) This reverts commit 3334e1e.
Proof that it works: https://github.com/hiddenmarten/etcd-operator/pull/1 After that just changed the name of the label, to the easier one.
Update cluster Ready status according to StatefulSet status and update ConfigMap cluster state to `existing` after first time STS is ready fixes cozystack#24
fixes cozystack#23 fixes cozystack#30 --------- Co-authored-by: Kirill Ilin <stitch14@yandex.ru> Co-authored-by: Kirill Garbar <kirill@garbar.pro>
The auxiliary GH action to setup release drafts and update change log accordingly. Configured with autolabeler, so the PRs will be labeled according to the PR branch name and/or files changed: | Branch name | Files changed | Resulting label | | ------------- | ------------- | ------------- | | deps/* | | `dependencies` | | chore/* | | `chore` | | docs/* | **/*.md | `documentation` | | enh/* | | `enhancement` | | feature/* | | `feature` | | fix/* | | `bugfix` | | bugfix/* | | `bugfix` | | | /api/* | `api-change` | | | /internal/* | `controllers` | Based on labels release draft will be updated with 'Features', 'Bug Fixes' and 'Maintenance' categories which will include corresponding PR's title. It's also possible to manage release draft's version by applying `major`, `minor` and `patch` labels on PR. By default the version will be the next patch version after the last release, v0.0.1 if none. --------- Signed-off-by: Artem Bortnikov <artem.bortnikov@telekom.com>
Explicit RW permissions for content and pull requests required, due to repository settings, which grants to workflows only read permissions in the repository for the contents and packages scopes. - RW for content is required for release draft creation (release-drafter). - RW for pull-requests is required for adding labels to PRs (auto-labeler). Signed-off-by: Artem Bortnikov <artem.bortnikov@telekom.com>
…ck#44) in order to access cluster from clients using one IP we decided to use ClusterIP Service
Created basic docs site and filled content for main pages
This is important when scaling cluster up for this operation to be zero down time fixes cozystack#25
In case error happens during status update request, reconcile will not be requeued. So, this call should be moved ouside `defer` function fixes cozystack#36
Just an idea to create `CODEOWNERS` to automatically assign reviewers when changing specific part of code. Is there anybody who would like to keep informed about updates? Aproove from codeowners is required to merge every specific change.
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated ownership assignments for various directories and file types to include new code owners. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Artem Bortnikov <artem.bortnikov@telekom.com>
this PR fixes the errors: ``` E0924 11:31:59.069472 1 reflector.go:150] pkg/mod/k8s.io/client-go@v0.30.2/tools/cache/reflector.go:232: Failed to watch *v1.StorageClass: unknown (get storageclasses.storage.k8s.io) E0924 11:32:57.379956 1 reflector.go:150] pkg/mod/k8s.io/client-go@v0.30.2/tools/cache/reflector.go:232: Failed to watch *v1.StorageClass: unknown (get storageclasses.storage.k8s.io) E0924 11:33:50.776342 1 reflector.go:150] pkg/mod/k8s.io/client-go@v0.30.2/tools/cache/reflector.go:232: Failed to watch *v1.StorageClass: unknown (get storageclasses.storage.k8s.io) E0924 11:34:21.872401 1 reflector.go:150] pkg/mod/k8s.io/client-go@v0.30.2/tools/cache/reflector.go:232: Failed to watch *v1.StorageClass: unknown (get storageclasses.storage.k8s.io) ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced role permissions to include the ability to monitor changes to resources in real-time by adding the `watch` verb. - **Bug Fixes** - Improved resource management capabilities for the `EtcdClusterReconciler` by updating permissions to allow watching of storage classes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
# Motivation I started some "R'n'D" (scare quotes intended) for implementing scale up, scale down, self-healing and so on and quickly realized, that the coding of the member add/member remove and similar steps is the more trivial part of the undertaking. The difficult part is coming up with a working algorithm that can correctly deduce the cluster's state and execute the necessary actions at the right time. To better reason about the controller's algorithm now, and to better develop it going forward, I feel it is important to have good documentation of the current design and the intended next steps, so I started with trying to document the current state of the code. # Results This document contains a mermaid flowchart that outlines the reconciliation loop. It is better viewed in [rendered form](https://github.com/aenix-io/etcd-operator/blob/docs/design/docs/DESIGN.md). Going forward, I envision this document to have at least three purposes: * Let the developers spot flaws and prompt them to open issues. * Act as a more detailed form of documentation for advanced users. * Be a blueprint for implementing anything non-trivial. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Updated the design document for the `EtcdCluster` custom resources with a detailed flowchart illustrating the reconciliation process and lifecycle management within a Kubernetes environment. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Hidden Marten <hiddenmarten@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Artem Bortnikov <artem.bortnikov@telekom.com>
Subj. Without such import, there is auth error: ``` Error setting up etcd client: error creating Kubernetes client: no Auth Provider found for name "oidc" ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced commands for managing etcd pods, including status checks, defragmentation, compaction, alarm management, and member management. - **Bug Fixes** - Standardized error handling for improved user feedback during command execution. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
* We create several etcd clients in the reconciliation loop, but never had a defer .Close() for them. * We erroneously try to configure these clients with etcd-0 instead of etcd-0.etcd-headless.namespace as the url. Now fixed. Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
* Several `defer c.Close()` added to clean up etcd clients after reconciliation. * DNS names targeting etcd cluster members fixed to resolve properly. * TLS capability added to etcd clients created during reconciliation.
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Added Kirill Klinchenkov and Timofei Larkin as new maintainers in the maintainers list. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
The link has a latest tag that it is not working. I've got the working link from releases page Signed-off-by: Winicius Silva <winiciusab12@gmail.com>
Winicius Allan (winiciusallan)
requested review from
Kirill-Garbar,
Artem Bortnikov (aobort),
Andrei Kvapil (kvaps) and
Timofei Larkin (lllamnyp)
as code owners
September 25, 2025 23:52
Contributor
WalkthroughUpdated a single getting-started documentation page to point the kubectl apply command at a fixed v0.4.0 manifest URL instead of a latest-release URL. No other steps or code were changed. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
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. Comment |
Andrei Kvapil (kvaps)
force-pushed
the
main
branch
from
June 9, 2026 08:00
ce98e5f to
9a6cc65
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The link has a latest tag that it is not working. I've got the working link from releases page
Closes: #288
Summary by CodeRabbit