Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
576af4a
Initial release of the Redis Cluster Operator with CRD update from th…
albertompe Apr 1, 2025
50dbbb7
Formatting code, updating Makefile goals to check the code and update…
albertompe Apr 7, 2025
cc99f44
Add GitHub workflow for static code analysis and unit testing
albertompe Apr 8, 2025
2c73421
Fix webhook build
albertompe Apr 8, 2025
f0c95df
Initial version of the release GH workflow
albertompe Apr 9, 2025
1bc36da
Add header Copyright and License info to all files containing code
albertompe Apr 9, 2025
6e91fb8
Do not add innecesunnecessary log messages
albertompe Apr 23, 2025
2f3b512
update docs with status codes and status transitions
albertompe Apr 30, 2025
ac9ca3e
update docs with status codes and status transitions
albertompe Apr 30, 2025
cf0f7f1
fix: ubuntu runners version (#7)
Jun 4, 2025
adad176
Parallelize Ginkgo tests to reduce runtime by ~50% (#3)
Dav1dPF Jun 12, 2025
6b0dfad
Architecture redefinition and performance improvements (#5)
albertompe Jul 8, 2025
4aa6fe4
Robin integration
albertompe Aug 12, 2025
753170b
Renaming RedisCluster as RedKeyCluster (#10)
albertompe Aug 28, 2025
ecce0ec
Fast scaling recreates the cluster through Robin (#11)
albertompe Sep 8, 2025
9f249c6
Update SECURITY.md (#12)
javi-patch Sep 8, 2025
d0e57e5
Check for open slots over reconciliations when upgrading and fixing u…
albertompe Oct 21, 2025
3ae3d01
Deploy sample RedKeyCluster for Robin debugging using make (#14)
albertompe Nov 4, 2025
5db1bbd
Fixes and stabilization (#15)
albertompe Nov 18, 2025
ebab5e5
Strengthening cluster upgrading to replicas updates (#16)
albertompe Nov 21, 2025
d953b2b
Update docs (#17)
albertompe Nov 24, 2025
db8784a
Update Redis deployment section in TOC
DanielDorado Nov 25, 2025
a247009
Fix duplicate entry for Redis Cluster deployment
DanielDorado Nov 26, 2025
f8914ae
Fix capitalization of 'RedKey Robin' in TOC
DanielDorado Nov 26, 2025
4abd09c
Refine documentation for Ephemeral Mode
DanielDorado Nov 26, 2025
4ed3f9f
CRD and docs update, removing the webhook (#18)
albertompe Dec 3, 2025
57b6a58
Remove redkeycluster_conversion.go file
albertompe Dec 3, 2025
0707797
Update CRD
albertompe Dec 4, 2025
b1d0c37
Robin using primaries and decoupling Operator from Redis (#19)
albertompe Dec 4, 2025
3bcc653
Changes in development guide and tests fixes (#20)
DanielDorado Dec 18, 2025
6230551
Add Manager Profiling
albertompe Dec 22, 2025
5342a70
fix: Removing PDB if Zero and scaling up Robin to 1 when needed (#22)
DanielDorado Dec 22, 2025
a4adb38
feat: refactor test (#23)
DanielDorado Dec 23, 2025
62172f1
Redkeyoperator timeout each test
DanielDorado Jan 7, 2026
fae744a
Lowering the ErrorRequeueTimeout from 30 seconds to 5 seconds. (#25)
DanielDorado Jan 8, 2026
bce2e60
Prevent the use of purgeKeysOnRebalance on non-ephemeral clusters (#27)
albertompe Jan 12, 2026
7532ca0
Fix Robin integration in E2E tests (#28)
miguelmdh Jan 15, 2026
5b9bd51
[OSOFFICE-88][OSS Release][Redkey Operator] Code checks (#26)
AdriaBergeAguilar Jan 16, 2026
1178e82
Handle scaling up from 0 primaries (#31)
albertompe Jan 20, 2026
2638e71
Update tools versions (#32)
albertompe Jan 20, 2026
d213923
fix: .tool-version file. (#33)
DanielDorado Jan 20, 2026
b4bfa78
Use Robin internal cluster status (#34)
albertompe Jan 22, 2026
5c4f76d
Use PartialPodTemplateSpec in RobinSpec instead of corev1.PodTemplate…
albertompe Jan 26, 2026
a002f89
Refactoring slow upgrade and renaming substates (#38)
albertompe Jan 29, 2026
128a4ff
Prepare release (#39)
albertompe Feb 10, 2026
8db53a4
Fix test-e2e-cov goal config
albertompe Feb 10, 2026
a99aa67
Add job to install CRD before launching e2e tests in the wf
albertompe Feb 10, 2026
4c9cfdb
Use the public Robin image
albertompe Feb 11, 2026
65a498f
Update E2E tests workflow
albertompe Feb 11, 2026
cc3ebc3
Update E2E tests workflow
albertompe Feb 11, 2026
de41dcb
Update E2E tests workflow
albertompe Feb 11, 2026
3a6646a
Update E2E tests workflow
albertompe Feb 11, 2026
db0d354
Parallel E2E Tests factor: 2
albertompe Feb 11, 2026
94b54e1
Parallel E2E Tests factor 1 and increased timeout in primary/replica …
albertompe Feb 11, 2026
f939042
Reduce pods in primary/replica tests
albertompe Feb 11, 2026
cf016b1
Do not execute primary/replica e2e tests till the repo is configured …
albertompe Feb 11, 2026
d4f18de
Do not execute primary/replica e2e tests till the repo is configured …
albertompe Feb 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL, S.A. (INDITEX, S.A.)
#
# SPDX-License-Identifier: Apache-2.0

# Ignore build and test binaries.
bin/
6 changes: 6 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL, S.A. (INDITEX, S.A.)
#
# SPDX-License-Identifier: Apache-2.0

# Auto detect text files and perform LF normalization
* text=auto
12 changes: 12 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# all users in this group will be requested
# for review when someone opens a pull request.

# Default reviewers
* @InditexTech/redisoperator

# CI/CD workflows reviewers
.github/workflows/* @InditexTech/redisoperator

# Other reviewers
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/1-bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0
name: Bug Report
description: Report a reproducible bug
title: '[Bug] '
labels: ['bug']
assignees: []

body:
- type: textarea
id: description
attributes:
label: Description
description: What's the problem?
placeholder: |
A clear and concise description of what the problem is.
Please include logs, screenshots or whatever other information to reproduce the error.
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: How can we reproduce the bug?
placeholder: |
1. Go to ...
2. Run ...
3. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
validations:
required: false

- type: input
id: version
attributes:
label: Version / Environment
placeholder: "e.g. v0.3.2, Node 18, macOS"
validations:
required: false

- type: textarea
id: notes
attributes:
label: Additional context or logs
validations:
required: false
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/2-feature.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0
name: Feature Request
description: Suggest a feature or improvement
title: '[Feature] '
labels: ['enhancement']
assignees: []

body:
- type: textarea
id: proposal
attributes:
label: Feature description
description: What would you like to see added or changed?
validations:
required: true

- type: textarea
id: motivation
attributes:
label: Use case or motivation
description: Why is this feature useful?

- type: dropdown
id: contribution
attributes:
label: Would you like to work on this?
options:
- Yes, I'd like to open a PR
- Maybe, I'd need help
- No, I'm just proposing it
validations:
required: true
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/3-other.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0
name: Other
description: Use this for anything that doesn't fit the other templates
title: '[Other] '
labels: ['discussion']
assignees: []

body:
- type: textarea
id: context
attributes:
label: Context or topic
description: Briefly explain what this is about — question, idea, feedback, etc.
validations:
required: true

- type: textarea
id: details
attributes:
label: Details or background
description: Add any supporting info, links, logs, or notes that may be useful.
placeholder: |
Example:
- I'm wondering if we should improve X
- This tool might be useful for Y
- We discussed this in meeting Z

- type: dropdown
id: nextstep
attributes:
label: What are you hoping to do next?
options:
- Just opening this for awareness
- Looking for input before starting work
- Need help or advice
- Happy to open a PR based on feedback
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0
blank_issues_enabled: false
21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<!--
SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)

SPDX-License-Identifier: Apache-2.0
-->

## Summary

Briefly describe the purpose of this PR and what changes it introduces.

## Checklist

- [ ] Commits are **signed** (`git commit -S`)
- [ ] Commit messages follow **Conventional Commits**
- [ ] Documentation has been updated (if needed)
- [ ] I have read and agree to the project’s [Code of Conduct](../CODE_OF_CONDUCT.md)
- [ ] I have signed the [Contributor License Agreement (CLA)](../CONTRIBUTING.md)

## Additional context

Add any screenshots, test output, or notes for reviewers here.
46 changes: 46 additions & 0 deletions .github/workflows/actions/check-version/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0

name: Check if new version is greater than last repository released version

inputs:
new_version:
required: true

runs:
using: composite
steps:
- id: get_latest_release
name: Get latest released version from GitHub
uses: actions/github-script@v7
with:
script: |
const repo = {
owner: context.repo.owner,
repo: context.repo.repo,
};
let release
try {
release = await github.rest.repos.getLatestRelease(repo);
} catch(e) {
console.log(e);
}
if (release.status === '404') {
return 'v0.0.0';
}
return release.data.tag_name;
result-encoding: string
- name: Check new version is coherent
shell: bash
run: |
CURRENT_VERSION=${{ steps.get_latest_release.outputs.result }}
EXTRACTED_VERSION=v${{ inputs.new_version }} # Prepending 'v' to match GitHub format
if [ "$EXTRACTED_VERSION" = "$CURRENT_VERSION" ]; then
echo "New version ($EXTRACTED_VERSION) is equal to the current release ($CURRENT_VERSION). Failing the job."
exit 1
elif [ "$(printf '%s\n' "$CURRENT_VERSION" "$EXTRACTED_VERSION" | sort -V | head -n1)" != "$CURRENT_VERSION" ]; then
echo "New version ($EXTRACTED_VERSION) is less than the current release ($CURRENT_VERSION). Failing the job."
exit 1
else
echo "Version check passed. New version ($EXTRACTED_VERSION) is greater than the current release ($CURRENT_VERSION)."
fi
19 changes: 19 additions & 0 deletions .github/workflows/actions/get-version-from-makefile/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0

name: Get version from Makefile

outputs:
version:
description: Current makefile version
value: ${{ steps.makefile_version.outputs.version }}

runs:
using: composite
steps:
- name: Extract version
id: makefile_version
shell: bash
run: |
VERSION=$(make version)
echo "version=$VERSION" >> $GITHUB_OUTPUT
26 changes: 26 additions & 0 deletions .github/workflows/code-verify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0

name: Static code analysis and unit testing
on:
push:
paths-ignore:
- 'docs/**'
workflow_dispatch:

jobs:
code-verify:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- id: parse-gomod
name: Extract Go version from go.mod file
uses: Arthur1/parse-gomod-action@v0
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ steps.parse-gomod.outputs.go}}
- name: Run code checks and unit tests
run: |
make verify
85 changes: 85 additions & 0 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0

name: E2E tests

on:
pull_request:
branches: [main]
paths-ignore: ['docs/**']

workflow_dispatch:
inputs:
test_parallel_process:
description: Number of parallel processes for the E2E test suite
default: '1'
required: false

concurrency:
group: e2e-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

env:
OPERATOR_NAME: redkey-operator
OPERATOR_VERSION: test-e2e
KUBECONFIG: ${{ github.workspace }}/.kube/config
LOCAL_CLUSTER_NAME: test-e2e-cluster
LOCAL_REGISTRY: test-e2e-registry
LOCAL_REGISTRY_PORT: 5001

jobs:
e2e-tests:
runs-on: ubuntu-24.04
timeout-minutes: 120
defaults:
run:
shell: bash -eu -o pipefail {0}

steps:
- name: 📥 Checkout code
uses: actions/checkout@v4

- name: 🏗️ Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true

- name: 🔧 Install kubectl
uses: azure/setup-kubectl@v3
with:
version: v1.30.0

- name: 🌱 Kubernetes KinD Cluster
id: kind
uses: helm/kind-action@v1
with:
cluster_name: ${{ env.LOCAL_CLUSTER_NAME }}
registry: true
registry_name: ${{ env.LOCAL_REGISTRY }}
registry_port: ${{ env.LOCAL_REGISTRY_PORT }}

- name: 🏗️ Build operator image
run: make docker-build IMG=${{ steps.kind.outputs.LOCAL_REGISTRY }}/redkey-operator:${{ env.OPERATOR_VERSION }}

- name: 📥 Push operator image
run: make docker-push IMG=${{ steps.kind.outputs.LOCAL_REGISTRY }}/redkey-operator:${{ env.OPERATOR_VERSION }}

- name: 📚 Install Ginkgo CLI
run: go install github.com/onsi/ginkgo/v2/ginkgo@latest

- name: 📚 Install CRD
run: make install

- name: ✅ Run E2E test suite
env:
TEST_PARALLEL_PROCESSES: ${{ github.event.inputs.test_parallel_process || 1 }}
run: |
make test-e2e \
IMG=${{ steps.kind.outputs.LOCAL_REGISTRY }}/redkey-operator:${{ env.OPERATOR_VERSION }} \
TEST_PARALLEL_PROCESS=${{ env.TEST_PARALLEL_PROCESSES }} \
GOMAXPROCS=${{ env.TEST_PARALLEL_PROCESSES }}

- name: 🧹 Delete KinD cluster (always)
if: always()
run: kind delete cluster --name ${{ env.LOCAL_CLUSTER_NAME }}
Loading
Loading