Skip to content

refactor(chart): Change to sidecar pattern for multi-node deployment#5

Merged
ianchen0119 merged 5 commits intoGthulhu:mainfrom
Andrewtangtang:feature/sidecar-deployment
Dec 1, 2025
Merged

refactor(chart): Change to sidecar pattern for multi-node deployment#5
ianchen0119 merged 5 commits intoGthulhu:mainfrom
Andrewtangtang:feature/sidecar-deployment

Conversation

@Andrewtangtang
Copy link
Contributor

Summary:

Consolidate scheduler and API into single DaemonSet with sidecar pattern,
enabling localhost communication and preparing for future multi-node
Manager-Decision Maker architecture.

Changes:

  • Merge 2 DaemonSets (scheduler + API) into 1 Pod with 2 containers
  • Update API endpoint from ClusterIP Service to localhost:8080
  • Restructure values.yaml with pod.scheduler and pod.api hierarchy
  • Make Service optional for future Manager access to Decision Maker
  • Consolidate RBAC and update all template variable references

Merge separate scheduler and api configurations into a unified pod
structure to enable sidecar pattern deployment. This change groups
both containers under a single pod configuration while maintaining
granular control over individual container settings.

Changes:
- Introduce pod.enabled flag for unified deployment control
- Restructure scheduler config as pod.scheduler with image and resources
- Restructure API config as pod.api as sidecar container configuration
Merge previously separate scheduler and API DaemonSets into one,
running both as containers in the same pod. This enables localhost
communication and guarantees co-location on each node.

Changes:
- Run scheduler and API as containers in same DaemonSet pod
- Share hostPID and system volumes (/proc, /sys/kernel/debug)
- Simplify deployment from 2 DaemonSets to 1
Update scheduler configuration to use localhost for API communication
instead of ClusterIP service. This change is required for the sidecar
pattern where both containers run in the same pod and share the
network namespace.

Changes:
- Update api.url from http://gthulhu-api:80 to http://localhost:8080
- Update template variable references to use pod configuration
- Remove dependency on ClusterIP service for communication
Service is unnecessary in sidecar mode as containers communicate
via localhost within the same pod.

Changes:
- Update condition to use service.enabled flag
- Update variable references to service configuration
- Remove component selector to match unified DaemonSet
Changes:
- Merge 2 ClusterRoles/Bindings into 1 in rbac.yaml
- Update variable references in NOTES.txt, ingress.yaml, and test files
- Add service.enabled conditions for optional Service access
@Andrewtangtang Andrewtangtang changed the title refactor(chart): migrate to sidecar pattern for multi-node deployment refactor(chart): Change to sidecar pattern for multi-node deployment Nov 29, 2025
@Andrewtangtang
Copy link
Contributor Author

Hi @ianchen0119 , when you have a moment, please take a look. Thanks!

@ianchen0119 ianchen0119 self-requested a review November 29, 2025 09:17
Copy link
Contributor

@ianchen0119 ianchen0119 left a comment

Choose a reason for hiding this comment

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

LGTM

@ianchen0119 ianchen0119 merged commit 2e360e3 into Gthulhu:main Dec 1, 2025
1 check passed
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.

2 participants