Skip to content

NOS3#772& #664 docker compose + k8s (kubernetes)#810

Open
haisamido wants to merge 123 commits into
nasa:docker-compose-nos3-reorganizationfrom
haisamido:nos3#772-docker-compose
Open

NOS3#772& #664 docker compose + k8s (kubernetes)#810
haisamido wants to merge 123 commits into
nasa:docker-compose-nos3-reorganizationfrom
haisamido:nos3#772-docker-compose

Conversation

@haisamido

@haisamido haisamido commented Nov 6, 2025

Copy link
Copy Markdown
Contributor

There are details about this branch here https://github.com/haisamido/nos3/blob/nos3%23772-docker-compose/deployments/README.md

But in summary you can follow these steps:

mkdir -p ~/development/github.com/haisamido && cd ~/development/github.com/haisamido

git clone -b nos3#772-docker-compose https://github.com/haisamido/nos3 || true && \
  cd ./nos3
  git submodule sync; git submodule update --init --recursive; git submodule sync
  cd ./deployments

# one time installation of *task* and `lazydocker` (optional)
make install-taskfile install-lazydocker 

# one time execution, note the use `make` here
make env-create

# then begin to use `task` instead of `make`
task up
task generate:env \
  PROJECT=nos3 \
  FLEET=nos3 \
  MISSION=m01 \
  SPACECRAFT=sc01 \
  FORTYTWO_HOST_PORT=10081 \
  YAMCS_HOST_PORT=18091 \
  OPENMCT_HOST_PORT=19001 && \
  task up

task generate:env \
  PROJECT=nos3 \
  FLEET=nos3 \
  MISSION=m01 \
  SPACECRAFT=sc02 \
  FORTYTWO_HOST_PORT=10082 \
  YAMCS_HOST_PORT=18092 \
  OPENMCT_HOST_PORT=19002 && \
  task up

Closes #772
Closes #664

haisamido and others added 15 commits January 15, 2026 18:39
…orchestration

Taskfile.yaml:
- Removed 15 k8s variables (K8S_CONTEXT, K8S_NAMESPACE, K8S_BUILD_PATH, etc.)
- Removed 25 k8s: tasks (generate, apply, delete, port-forward, etc.)
- Added includes: block at bottom referencing targets/kubernetes/Taskfile.yaml with k8s: prefix
- Passed only user-overridable vars (PROJECT, MISSION, SPACECRAFT, host ports)

targets/kubernetes/Taskfile.yaml:
- Merged tasks from both main Taskfile and existing k8s Taskfile into single file
- Added k8s:up and k8s:down orchestration tasks mirroring compose up/down workflow
- Added k8s:status, k8s:message, k8s:redeploy convenience tasks
- Renamed hyphenated task names to colon-separated (e.g., create-namespace to create:namespace)
- Updated all paths to be relative to deployments/ (via dir: . in include)
- Added preconditions checking for .env existence before generate/convert tasks
- Organized tasks into sections: Orchestration, Context/Runtime, User Management, Namespace, Kompose, Manifest Generation, Apply/Deploy, Delete/Cleanup, Inspection/Debugging, Port Forwarding, Lifecycle, Environment
@zlynch2 zlynch2 changed the base branch from dev to docker-compose-nos3-reorganization May 27, 2026 14:39
@zlynch2 zlynch2 self-assigned this May 27, 2026
@zlynch2 zlynch2 marked this pull request as ready for review May 27, 2026 14:39
@zlynch2 zlynch2 changed the title [DRAFT] NOS3#772 docker compose NOS3#772 docker compose May 27, 2026
Taskfile:
- Appended /vnc.html to FortyTwo external and internal URLs in fortytwo:message task

CryptoLib standalone:
- Added #ifndef STANDALONE_TCP fallback define to standalone.c
- Resolved build error when cloned repo Makefile does not pass -DSTANDALONE_TCP=1 to cmake
Helm Chart:
- Created full Helm chart with data-driven service registry (26 services)
- Added deployment-loop and service-loop templates (no per-service templates)
- Added DNS alias Services matching Docker Compose network aliases
- Added FortyTwo IPC ports (4227-9999) from Inp_IPC.txt for sim connectivity
- Added ConfigMap templates for entrypoints, sim config, NOS Engine, GSW, OpenMCT
- Added NetworkPolicy, Ingress, and Namespace templates (opt-in)
- Added values-minimum.yaml and values-nkp.yaml profiles
- Set STARTUP_FOLDER to NOS3InOut for correct 42 config directory

Taskfile:
- Added helm:build, helm:install, helm:up, helm:delete, helm:uninstall tasks
- Added helm:delete:all for bulk removal of all releases
- Added helm:port-forward with per-service and combined variants
- Added helm:port-forward:list, helm:port-forward:kill, helm:port-forward:kill:all
- Added helm:create-configs for FortyTwo InOut ConfigMap
- Separated helm:build from helm:install for parallel-safe deployments
- Fixed namespace formula to include spacecraft ({project}-{mission}-{spacecraft})

Mission Config:
- Changed gsw from cosmos to yamcs
- Updated start-time to 835082223

Test Script:
- Added Helm chart workflow examples (install, delete, port-forward, kill)
test.sh:
- Removed mms3 install command (3 spacecraft exceeds single-node CPU capacity)
- Removed mms3 port-forward command
… K8s lifecycle

Deployments Taskfile:
- Fixed build task description from "Build all containers" to "Build all images"
- Added generate:env alias to env:generate task

Compose:
- Added image tag to nos3-openmct service so Compose auto-tags during build

Kubernetes Taskfile:
- Replaced duplicate helm:build:* per-service tasks with single delegation to main build task
- Removed --wait --timeout 10m from helm install to prevent terminal blocking
- Added helm:wait task with 5-second pod readiness polling and status feedback
- Consolidated helm:uninstall aliases (helm:down, helm:stop, helm:delete) using Taskfile aliases clause
- Removed standalone helm:delete task (now an alias)
- Added port-forward command hint to helm:message output

Helm values.yaml:
- Fixed COMPONENT_DIR from empty string to /home/nos3/builds/nos3/components (matches Compose env.sh)
- Disabled camsim, onair, and thruster-sim (enabled: false) as workaround for startup issues
@haisamido haisamido changed the title NOS3#772 docker compose NOS3#772& #664 docker compose + k8s (kubernetes) Jun 22, 2026
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.

3 participants