mirror of
https://github.com/moghtech/komodo.git
synced 2026-04-30 22:56:21 -05:00
3.1 KiB
3.1 KiB
Resources
Komodo is extendible through the Resource abstraction. Entities like Server, Deployment, and Stack are all Komodo Resources.
All resources have common traits, such as a unique name and id amongst all other resources of the same resource type.
All resources can be assigned tags, which can be used to group related resources.
:::note Many resources need access to git repos / docker registries. There is an in-built token management system (managed in UI or in config file) to give resources access to credentials. All resources which depend on git repos / docker registries are able to use these credentials to access private repos. :::
Server
- Configure the connection to periphery agents.
- Set alerting thresholds.
- Can be attached to by Deployments, Stacks, Repos, and Builders.
Deployment
- Deploy a docker container on the attached Server.
- Manage services at the container level, perform orchestration using Procedures and ResourceSyncs.
Stack
- Deploy with docker compose.
- Provide the compose file in UI, or move the files to a git repo and use a webhook for auto redeploy on push.
- Supports composing multiple compose files using
docker compose -f ... -f .... - Pass environment variables usable within the compose file. Interpolate in app-wide variables / secrets.
Repo
- Put scripts in git repos, and run them on a Server, or using a Builder.
- Can build binaries, perform automation, really whatever you can think of.
Build
- Build application source into docker images, and push them to the configured registry.
- The source can be any git repo containing a Dockerfile.
Builder
- Either points to a connected server, or holds configuration to launch a single-use AWS instance to build the image.
- Can be attached to Builds and Repos.
Procedure
- Compose many actions on other resource type, like
RunBuildorDeployStack, and run it on button push (or with a webhook). - Can run one or more actions in parallel "stages", and compose a series of parallel stages to run sequentially.
Action
- Write scripts calling the Komodo API in Typescript
- Use a pre-initialized Komodo client within the script, no api keys necessary.
- Type aware in UI editor. Get suggestions and see in depth docs as you type.
- The Typescript client is also published on NPM.
ResourceSync
- Orchestrate all your configuration declaratively by defining it in
tomlfiles, which are checked into a git repo. - Can deploy Deployments and Stacks if changes are suggested.
- Specify deploy ordering with
afterarray. (like docker composedepends_onbut can span across servers.).
Alerter
- Route alerts to various endpoints.
- Can configure rules on each Alerter, such as resource whitelist, blacklist, or alert type filter.
ServerTemplate
- Easily expand your cloud network by storing cloud server lauch templates on various providers.
- Auto connect the server to Komodo on launch, using
User Datalaunch scripts. - Currently supports AWS EC2 and Hetzner