Skip to content

Add Apple container local development workflow - #310

Open
mxschmitt wants to merge 1 commit into
mainfrom
feat/apple-container-local-development
Open

Add Apple container local development workflow#310
mxschmitt wants to merge 1 commit into
mainfrom
feat/apple-container-local-development

Conversation

@mxschmitt

@mxschmitt mxschmitt commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add a macOS 26 / Apple silicon workflow that builds native linux/arm64 application images and loads them directly into Apple container Kubernetes, without a registry push.
  • Create a disposable cluster, load RabbitMQ, etcd, and RustFS, install the kind storage provisioner, and deploy a one-worker JavaScript profile.
  • Add focused commands for incremental builds, deployment, status, port forwarding, and cleanup.

This uses the worker-language selector added by #309 so the local profile does not create unused Java, Python, or .NET worker pods.

Testing

  • Ran bash -n k8/apple-container.sh, git diff --check, go test ./..., and go build ./....
  • Generated the post-Replace MinIO with RustFS for artifact storage #308 manifests and verified the RustFS deployment and file-service S3 endpoint; stale generated MinIO manifests are absent.
  • Pulled rustfs/rustfs:1.0.0-rc.5 successfully for linux/arm64 with Apple container.
  • Ran up from a clean cluster: all service pods and the JavaScript worker reached Ready using only locally loaded ARM64 images.
  • Confirmed the frontend returns HTTP 200 and both JavaScript API E2E tests pass.
  • Stopped and restarted the cluster with apple/container#2158: the node address changed from 192.168.64.2 to 192.168.64.4, all pods recovered, and the same HTTP and API E2E checks passed again.

Initial cluster creation works with the released Apple plugin. The linked Apple change is only needed when restarting a cluster whose VM address changed.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T21:39:18.268760Z 80789be PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 80789be3e8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread k8/apple-container.sh
# CI mode permits an empty Turnstile key, which disables it for this local
# development deployment.
CI=1 bash k8/generate.sh "$IMAGE_TAG"
kubectl --context "$CLUSTER_NAME" apply -f k8/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restart workloads after loading rebuilt image tags

After the documented build ...; deploy iteration sequence, the rebuilt image is loaded under the same fixed tag, while this apply submits an unchanged pod template (k8/frontend-deployment.yaml.tpl:18-22 and the other application templates use that tag with IfNotPresent). Kubernetes therefore leaves the existing deployment pods running, and rollout status merely reports the old revision as ready, so frontend/control-service changes are not actually redeployed. Restart the affected workloads, recycle worker pods, or generate a unique tag for each build.

Useful? React with 👍 / 👎.

Base automatically changed from feat/configurable-worker-languages to main September 2, 2026 22:02
@mxschmitt
mxschmitt force-pushed the feat/apple-container-local-development branch from 80789be to bc86e44 Compare September 2, 2026 22:03
@mxschmitt
mxschmitt force-pushed the feat/apple-container-local-development branch from bc86e44 to 2c1d61b Compare September 2, 2026 22:14
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