Skip to content

change: URL for install etcd-operator - #298

Closed
Winicius Allan (winiciusallan) wants to merge 210 commits into
cozystack:mainfrom
winiciusallan:docs/getting-started-manifest
Closed

change: URL for install etcd-operator#298
Winicius Allan (winiciusallan) wants to merge 210 commits into
cozystack:mainfrom
winiciusallan:docs/getting-started-manifest

Conversation

@winiciusallan

@winiciusallan Winicius Allan (winiciusallan) commented Sep 25, 2025

Copy link
Copy Markdown

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

  • Documentation
    • Updated the Getting Started guide to reference a fixed v0.4.0 kubectl apply URL for the prerequisite installation step, ensuring consistent setup instructions across environments.
    • Clarified that only the first prerequisite step is affected; all other steps remain unchanged.
    • No functional changes to the product or user workflows.

Andrei Kvapil (kvaps) and others added 30 commits March 7, 2024 16:21
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
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
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
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>
@coderabbitai

coderabbitai Bot commented Sep 25, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Updated 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

Cohort / File(s) Summary of changes
Docs
site/content/en/docs/v0.4/getting-started/_index.md
Changed kubectl apply URL in pre-requisite step 1 to target fixed v0.4.0 release manifest; no other edits.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

I hop through docs with gentle cheer,
A tiny link now crisp and clear.
From “latest” winds to “v0.4”,
The path is fixed—no guesswork more.
Thump-thump! says bunny QA bright—
Stable carrots, versions right. 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The title succinctly captures the primary change of updating the installation URL for the etcd-operator and does not include extraneous details or vague wording. It clearly indicates what was changed and is aligned with the PR’s main objective of fixing a broken “latest” tag link. This makes it easy for reviewers and future readers to understand the core purpose of the changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 25, 2025
@winiciusallan
Winicius Allan (winiciusallan) deleted the docs/getting-started-manifest branch June 9, 2026 08:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Getting Started documentation does not work anymore