- [] agent binary
- [] server binary. fork exec
- [] add server to pool by installing agent and calling home (pull)
- [] agent heartbeat (removed from the pool after N fails)
- [] add server to pool by adding kube config (push)
- [] add server to pool by adding ssh config (push)
- [] pull config from private git repo. sync N seconds
- [] execute arbitrary commands manually on linux host. ssh
- [] execute arbitrary commands manually on linux host. ssm
- [] execute arbitrary commands manually on kubernetes
- [] execute scripted commands manually on linux host. ssh
- [] execute scripted commands manually on linux host. ssm
- [] execute scripted commands manually on kubernetes
- [] store config in . Force DB from the get-go?
- [] store execution logs in . Is git a very silly idea?
- [] workflow orchestration (call another workflow with inputs set)
curl -L https://somewhere/agent -O dagda_agent && chmod +x dagda_agent
# install agent
./dagda_agent <commands>
--name= set agent name
# uses nic as identifier
# send cpu info, ram info, disk info
# send heartbeats
# sets up systemd unit
# pull based?
./dagda_agent listen --home 1.2.3.4:90001
./dagda_agent listen --sub <kafka info / event bus info>
curl -L https://somewhere/server -O dagda_server && chmod +x dagda_server
./dagda_server <commands>
# github auth
# okta auth
value: high challenge: secure key storage challenge: crons
- spin up server
- go to settings > repos
- add private key for repo
- test repo connection
- save repo connection
- go to servers view
- click on create new server and specify "kubernetes" as the type
- add config for kubernetes config and give it a reference (name)
- go to jobs view
- select git repo
- specify path (in repo) to job
- specify parameters
- specify docker image for execution # <-- perhaps a docker image library?
- select server (kubernetes server)
- select kubernetes cluster by reference (added in step 2)
- specify an existing namepace and pod
- execute and get near-realtime logs from pod as it executes
- handle success / error. persist logs. show execution log (history)
value: high challenge: connecting to containers with no shell
- spin up server
- add config for kubernetes config and give it a reference (name)
- go to commands view
- enter arbitrary command
- select kubernetes cluster by reference (added in step 2)
- specify an existing namepace and pod
- execute and get near-realtime logs from pod as it executes
value: low
- spin up server
- add config for kubernetes config and give it a reference (name)
- go to commands view
- enter arbitrary command
- choose generic image (e.g. ubuntu-22.04) or specify custom
- select kubernetes cluster by reference (added in step 2)
- execute and get near-realtime logs from pod as it executes