Skip to content

Add test environment, fix Dockerfile and RBAC, upgrade dependencies#2

Open
scotwells wants to merge 14 commits intomainfrom
feat/restore-unikraft-typed-api
Open

Add test environment, fix Dockerfile and RBAC, upgrade dependencies#2
scotwells wants to merge 14 commits intomainfrom
feat/restore-unikraft-typed-api

Conversation

@scotwells
Copy link
Copy Markdown
Contributor

@scotwells scotwells commented Apr 10, 2026

Summary

  • Adds a local Kind-based test environment with end-to-end tests
  • Fixes the container build and adds missing permissions for the controller
  • Upgrades Go dependencies to latest stable versions
  • Renames the compute API import to match the new module path

Test plan

  • Image builds successfully
  • Controller deploys and runs without errors
  • E2e test passes — instance provisions on Unikraft Cloud and is reachable

🤖 Generated with Claude Code

The upstream github.com/unikraft-cloud/k8s-operator repo is now public,
so we can re-add the typed Go dependency instead of using unstructured
K8s objects. This also adds the test-infra-based kind environment,
Flux dependency configs, RBAC for unikraft.com and compute.datumapis.com
resources, Dockerfile fixes, and a Chainsaw e2e test suite.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@scotwells scotwells changed the title Restore typed Unikraft API and add test environment Add test environment, fix Dockerfile and RBAC, upgrade dependencies Apr 10, 2026
scotwells and others added 2 commits April 10, 2026 13:55
Picks up the kubectl wait timeout fix from datum-cloud/test-infra#26.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The kind-bootstrap action writes kubeconfig to test-infra/kubeconfig and
sets KUBECONFIG, but the remote Taskfile expects .test-infra/kubeconfig
when running from an external repo. Symlink to bridge the gap.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
scotwells and others added 11 commits April 10, 2026 14:30
v0.6.4 respects the KUBECONFIG env var set by kind-bootstrap, so the
symlink is no longer needed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Uses the org's reusable publish-docker workflow to build and push
linux/amd64 and linux/arm64 images to ghcr.io on PRs, pushes to
main, and version tags.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Aligns the build pipeline with the activity service pattern:
validate kustomize manifests, build multi-arch container image,
then publish the kustomize bundle to ghcr.io.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…spaces

Move namespace assignment to the kustomization.yaml namespace field
so resource manifests don't hardcode their target namespace.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Flag defaults now read from environment variables (LEADER_ELECT,
SERVER_CONFIG, HEALTH_PROBE_BIND_ADDRESS, LEADER_ELECT_NAMESPACE),
making overlays simpler to patch without fragile arg-index manipulation.

Also removes the unused --metrics-bind-address arg patch (metrics are
configured via the server config file, not CLI flags).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Args reference env vars via Kubernetes variable expansion so overlays
only need to patch env var values instead of manipulating arg indices.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replaces fragile JSON patch with index-based env var operations with a
strategic merge patch that targets env vars by name.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant