Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 2 additions & 18 deletions .github/workflows/ecr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,8 @@ jobs:
cache-from: type=registry,ref=${{ steps.ecr-login.outputs.registry }}/sei/build-cache:shared
cache-to: type=registry,ref=${{ steps.ecr-login.outputs.registry }}/sei/build-cache:shared,mode=max

# Monolithic Workflow-Task primitive binary (keygen, provision-snd,
# runner, ...) per https://github.com/sei-protocol/bdchatham-designs/blob/main/designs/test-harness/test-harness-lld.md. Published to
# sei/seitask-runner so scenarios keep the image-name muscle memory;
# the runner capability moves to args: ["runner", ...].
- name: Build and push seitask image
uses: docker/build-push-action@v6
with:
context: .
file: cmd/seitask/Dockerfile
push: true
platforms: linux/amd64
tags: ${{ steps.ecr-login.outputs.registry }}/sei/seitask-runner:${{ inputs.tag || github.sha }}
cache-from: type=registry,ref=${{ steps.ecr-login.outputs.registry }}/sei/build-cache:shared
cache-to: type=registry,ref=${{ steps.ecr-login.outputs.registry }}/sei/build-cache:shared,mode=max

# The Go-native integration harness (go test -c -tags integration), run by
# one CronJob per target (-test.run TestX). Replaces seitask-runner + the
# Chaos-Mesh Workflow scenarios once the nightly CronJobs cut over.
# The integration test suite compiled to an image (go test -c -tags
# integration), run by one nightly CronJob per target (-test.run TestX).
- name: Build and push integration-harness image
uses: docker/build-push-action@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ setCondition(obj, ConditionNetworkingReady, metav1.ConditionFalse,
The narrow exceptions to the always-present rule:

- **`*Needed`-style conditions** where `True` is the exception and `False` would be tautological with the absence of the feature. No current instances in this codebase; the exception is retained for future conditions where it genuinely fits.
- **`kubectl wait` consumer conditions** where present-vs-absent semantics are explicitly load-bearing. `SeiNodeTask.Status.Conditions[Ready|Failed]` is documented as latch-on-terminal-state because the seitask-runner depends on `kubectl wait --for=condition=Ready=true` (which matches `True` only) and `--for=condition=Failed=true` as the dual exit signal. The Ready+Failed pair is the documented exception to the "no mixed polarities for the same subject" rule below — both latch independently on terminal state.
- **`kubectl wait` consumer conditions** where present-vs-absent semantics are explicitly load-bearing. `SeiNodeTask.Status.Conditions[Ready|Failed]` is documented as latch-on-terminal-state because consumers wait on `kubectl wait --for=condition=Ready=true` (which matches `True` only) and `--for=condition=Failed=true` as the dual exit signal. The Ready+Failed pair is the documented exception to the "no mixed polarities for the same subject" rule below — both latch independently on terminal state.

Any new condition that doesn't fit one of these exceptions defaults to always-present.

Expand Down
12 changes: 1 addition & 11 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
IMG ?= sei-k8s-controller:latest
RUNNER_IMG ?= seitask-runner:latest
GOLANGCI_LINT ?= $(shell which golangci-lint 2>/dev/null || echo $(HOME)/go/bin/golangci-lint)

# Pinned tool versions. Bump together: setup-envtest's release branch tracks
Expand All @@ -18,14 +17,11 @@ CONTROLLER_GEN_VERSION ?= v0.20.1
LOCALBIN ?= $(CURDIR)/bin
SETUP_ENVTEST ?= $(LOCALBIN)/setup-envtest

.PHONY: build runner test test-integration test-all lint manifests generate verify-generated setup-envtest ci docker-build docker-push runner-image runner-push
.PHONY: build test test-integration test-all lint manifests generate verify-generated setup-envtest ci docker-build docker-push

build: ## Build manager binary.
go build -o bin/manager ./cmd/

runner: ## Build seitask-runner binary.
go build -o bin/seitask-runner ./cmd/runner/

test: ## Run tests.
go test $$(go list ./... | grep -v /e2e) -coverprofile cover.out

Expand Down Expand Up @@ -69,9 +65,3 @@ docker-build: ## Build docker image.

docker-push: ## Push docker image.
docker push ${IMG}

runner-image: ## Build seitask-runner container image.
docker build --platform linux/amd64 -t ${RUNNER_IMG} -f runner/Dockerfile .

runner-push: ## Push seitask-runner container image.
docker push ${RUNNER_IMG}
9 changes: 4 additions & 5 deletions api/v1alpha1/seinodetask_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,7 @@ const (
const (
// ConditionSeiNodeTaskReady reflects whether the task has reached a
// terminal successful state. True only when status.phase == Complete.
// Load-bearing for `kubectl wait --for=condition=Ready=true` in the
// seitask-runner.
// Load-bearing for `kubectl wait --for=condition=Ready=true`.
ConditionSeiNodeTaskReady = "Ready"

// ConditionSeiNodeTaskFailed reflects whether the task has reached a
Expand Down Expand Up @@ -131,7 +130,7 @@ type SeiNodeTaskSpec struct {

// Target identifies the single SeiNode this task operates on. Fan-out
// targeting (label selectors) is intentionally out of scope at the CRD
// layer — express fan-out at the seitask-runner / Chaos Workflow layer.
// layer — express fan-out in the orchestrating caller (one task per node).
Target SeiNodeTaskTarget `json:"target"`

// TimeoutSeconds bounds execution time, measured from
Expand Down Expand Up @@ -179,8 +178,8 @@ type SeiNodeTaskSpec struct {
}

// SeiNodeTaskTarget identifies the single SeiNode this task operates on.
// Selector-based fan-out is intentionally out of scope for MVP — express
// multi-node operations at the seitask-runner / Chaos Workflow layer.
// Selector-based fan-out is intentionally out of scope — express multi-node
// operations in the orchestrating caller (one task per node).
type SeiNodeTaskTarget struct {
// NodeRef is a same-namespace reference to a SeiNode.
NodeRef SeiNodeTaskNodeRef `json:"nodeRef"`
Expand Down
28 changes: 0 additions & 28 deletions cmd/seitask/Dockerfile

This file was deleted.

54 changes: 0 additions & 54 deletions cmd/seitask/keygen.go

This file was deleted.

74 changes: 0 additions & 74 deletions cmd/seitask/main.go

This file was deleted.

47 changes: 0 additions & 47 deletions cmd/seitask/main_test.go

This file was deleted.

Loading
Loading