DragonOps config files
DragonOps has two types of config files: one for groups and one for applications. (What’s the difference? Check out this to find out!)
To apply changes to the infrastructure for either your group or application resources, you will need to pass in a config file.
Group config file
A group
config file is used for organizing and configuring resources that will be used across multiple applications.
In a group config file, there are currently three resource types you can customize (and you can have any number of each):
- network
- Consists of all the shared networking resources necessary to host applications.
- Includes, at a minimum:
- VPC (with a default or custom cidr, and both public and private subnets)
- Internet and NAT gateways
- Public and private route tables
- cluster
- Consists of a Kubernetes cluster in AWS EKS and all kubernetes resources necessary to host applications.
- Includes, at a minimum:
- Cost-optimized node groups
- Add-ons such as: alb-controller, external-secrets, etc
- DNS (by default a subdomain of DragonOps’ DNS, but customizable if you have your own)
- Grafana/Prometheus for monitoring (default is enabled but can disable for cost savings)
- ArgoCD for visualization of application-level resources
- Autoscaling at the node-group and pod level
- environment
- A kubernetes namespace to organize resources and applications within the same cluster.
Check out our config file structure and examples here!
Application config file
An application
config file is used to manage the configuration of app-specific infrastructure. While DragonOps has opinionated defaults for many things, your application might also need certain customizations, so our defaults are overridable in the config file.
In the application config file, you can currently configure:
- The application/service name
- Port
- Health check path
- IAM permissions
- CPU/Memory requirements
- The command to run your app with
- Environments the app should be deployed to
Environment variables are managed with secrets
in AWS, and are automatically injected into your application for you, so you can source them as you would any environment variable.
Check out our config file structure and examples here!