Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
3d61e0f
feat: update Operator to the new architecture
albertompe May 12, 2026
27fc8ea
feat: add devcontainer configuration
albertompe May 12, 2026
065b9de
feat: add CI goals to Makefile
albertompe May 12, 2026
91e1ce9
feat: fix linting in integration tests code
albertompe May 12, 2026
b1f2203
feat: add chaos tests
albertompe May 12, 2026
3ccd8f8
feat: add chaos tests goals to Makefile
albertompe May 12, 2026
269e523
feat: remove chaos test for now
albertompe May 12, 2026
c404e61
feat: add license headers
albertompe May 12, 2026
73f3769
feat: docs/images cleanup
albertompe May 12, 2026
019d82f
feat: docs/images cleanup
albertompe May 12, 2026
ccd8fe9
feat: remove generated files from REUSE
albertompe May 12, 2026
4ef5814
feat: add proposal
albertompe May 12, 2026
9cd4a5e
feat: add license headers to proposal
albertompe May 12, 2026
76bcf7b
feat: adding some logging info
albertompe May 12, 2026
902946f
feat: cleanup files not needed
albertompe May 12, 2026
3f4aa5b
feat: show substatus and partition in RedkeyClusterConfiguration CRs
albertompe May 12, 2026
a149bcc
feat: cleanup of superseded configurations modified to keep the last …
albertompe May 12, 2026
d59268f
feat: fix lint
albertompe May 12, 2026
91c630d
feat: add AGENTS.md file
albertompe May 12, 2026
a9000ad
feat: set cluster-name and namespace paramters in Robin deployment
albertompe May 12, 2026
6bbd6d8
feat: add -count=1 flag to integration tests command to force not cac…
albertompe May 13, 2026
d34583a
feat: add -count=1 flag to unit tests command to force not caching te…
albertompe May 13, 2026
dea2c89
feat: add mandatory checks on every change to AGENTS.md file
albertompe May 13, 2026
0477c26
feat: robin config properties cleaunp
albertompe May 14, 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
14 changes: 14 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"version": "2.16.1",
"resolved": "ghcr.io/devcontainers/features/docker-in-docker@sha256:ce078b7bf7d9ef3bcb9813b32103795d8d72172446890b64772cbe1dec6baafd",
"integrity": "sha256:ce078b7bf7d9ef3bcb9813b32103795d8d72172446890b64772cbe1dec6baafd"
},
"ghcr.io/devcontainers/features/git:1": {
"version": "1.3.5",
"resolved": "ghcr.io/devcontainers/features/git@sha256:27905dc196c01f77d6ba8709cb82eeaf330b3b108772e2f02d1cd0d826de1251",
"integrity": "sha256:27905dc196c01f77d6ba8709cb82eeaf330b3b108772e2f02d1cd0d826de1251"
}
}
}
3 changes: 3 additions & 0 deletions .devcontainer/devcontainer-lock.json.license
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
42 changes: 42 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
//
// SPDX-License-Identifier: Apache-2.0

{
"name": "Redkey Operator DevContainer",
"image": "golang:1.26.2-trixie",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"moby": false
},
"ghcr.io/devcontainers/features/git:1": {}
},

"containerEnv": {
"GOROOT": "/usr/local/go",
"GOPATH": "/go"
},

"remoteEnv": {
"PATH": "/usr/local/go/bin:/go/bin:${containerEnv:PATH}"
},

"runArgs": ["--network=host"],

"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"extensions": [
"golang.Go",
"ms-kubernetes-tools.vscode-kubernetes-tools",
"ms-azuretools.vscode-docker",
"redhat.vscode-yaml"
]
}
},

"onCreateCommand": "bash .devcontainer/post-install.sh"
}

86 changes: 86 additions & 0 deletions .devcontainer/post-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0

#!/usr/bin/env bash
set -euxo pipefail

KIND_VERSION="v0.22.0"
KUBECTL_CHANNEL="stable-1.33"

export GOROOT="${GOROOT:-/usr/local/go}"
export GOPATH="${GOPATH:-/go}"
export PATH="${GOROOT}/bin:${GOPATH}/bin:${PATH}"

OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"

case "$ARCH" in
x86_64)
ARCH="amd64"
;;
aarch64|arm64)
ARCH="arm64"
;;
*)
echo "Unsupported architecture: $ARCH" >&2
exit 1
;;
esac

apt-get update
apt-get install -y --no-install-recommends ca-certificates curl gzip make tar
rm -rf /var/lib/apt/lists/*

install_binary() {
local url="$1"
local destination="$2"

curl -fsSL "$url" -o "$destination"
chmod +x "$destination"
}

install_kind() {
install_binary "https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-${OS}-${ARCH}" /usr/local/bin/kind
}

install_kubebuilder() {
install_binary "https://go.kubebuilder.io/dl/latest/${OS}/${ARCH}" /usr/local/bin/kubebuilder
}

install_kubectl() {
local kubectl_version
kubectl_version="$(curl -fsSL "https://dl.k8s.io/release/${KUBECTL_CHANNEL}.txt")"
install_binary "https://dl.k8s.io/release/${kubectl_version}/bin/${OS}/${ARCH}/kubectl" /usr/local/bin/kubectl
}

install_helm() {
local helm_version
local helm_archive
local temp_dir

helm_version="$(curl -fsSL https://api.github.com/repos/helm/helm/releases/latest | grep '"tag_name":' | head -n1 | cut -d '"' -f4)"
helm_archive="/tmp/helm-${helm_version}-${OS}-${ARCH}.tar.gz"
temp_dir="$(mktemp -d)"

curl -fsSL "https://get.helm.sh/helm-${helm_version}-${OS}-${ARCH}.tar.gz" -o "$helm_archive"
tar -C "$temp_dir" -xzf "$helm_archive"
install -m 0755 "$temp_dir/${OS}-${ARCH}/helm" /usr/local/bin/helm

rm -rf "$temp_dir" "$helm_archive"
}

install_kind
install_kubebuilder
install_kubectl
install_helm

if ! docker network inspect kind >/dev/null 2>&1; then
docker network create -d=bridge --subnet=172.19.0.0/24 kind
fi

kind version
kubebuilder version
helm version --short
docker --version
go version
kubectl version --client=true
6 changes: 0 additions & 6 deletions .dockerignore

This file was deleted.

39 changes: 8 additions & 31 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,54 +8,31 @@
*.dll
*.so
*.dylib
bin
testbin/*
config/test/tests.yaml
target/
.local/
__debug_bin*
bin/*
Dockerfile.cross

# Test binary, build with `go test -c`
# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out
coverage.html

# Output of Goland coverage
cover.out
# Go workspace file
go.work

# Kubernetes Generated files - skip generated files, except for vendored files

!vendor/**/zz_generated.*

# editor and IDE paraphernalia
.idea
.vscode
*.swp
*.swo
*~
.vscode/settings.json

state/

# Directory used to generate kustomized yamls for deployment
deployment

# Deployment temp files
config/aks/aks.yaml
config/init-test/tests.yaml

# Bundle temporary files
bundle
bundle_*
bundle-*
bundle.Dockerfile

# Certificates
certs/

# OSS Review Toolkit (ORT) temporary files
ort/

# Log files generated by tests
hack/local/k6.log
hack/local/manager.log
*.log
55 changes: 55 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0

version: "2"
run:
allow-parallel-runners: true
linters:
default: none
enable:
- copyloopvar
- dupl
- errcheck
- ginkgolinter
- goconst
- gocyclo
- govet
- ineffassign
- lll
- misspell
- nakedret
- prealloc
- revive
- staticcheck
- unconvert
- unparam
- unused
settings:
revive:
rules:
- name: comment-spacings
- name: import-shadowing
exclusions:
generated: lax
rules:
- linters:
- lll
path: api/*
- linters:
- dupl
- lll
path: internal/*
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
- goimports
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
3 changes: 2 additions & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# SPDX-FileCopyrightText: 2025 INDUSTRIA DE DISEÑO TEXTIL S.A. (INDITEX S.A.)
# SPDX-License-Identifier: Apache-2.0
golang 1.25.8
golang 1.26.2
kind latest
18 changes: 6 additions & 12 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,16 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [

{
"name": "Redkey Manager",
"name": "Redkey Operator Controller Manager",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "cmd/main.go"
},
{
"name": "Connect to Manager",
"type": "go",
"request": "attach",
"mode": "remote",
"remotePath": "${workspaceFolder}",
"port": 40000,
"host": "127.0.0.1",
"trace": "verbose"
}
]
}
}
Loading
Loading