📄️ Directory structureYou provide configuration for your deployment targets in a deployment configuration file. By default, Takomo looks targets.yml file from the deployment directory.
📄️ Deployment groupsYou specify deployment groups with the deploymentGroups property. It is an object whose keys are paths to deployment groups, and values contain configuration for the corresponding deployment group.
📄️ Deployment targetsYou use deployment group's targets property to specify its targets. Each target must have a name that is unique among all targets in the deployment configuration.
📄️ VariablesYou can specify variables for deployment groups and deployment targets with the vars property. It is an object whose keys are variable names and values contain the values for the corresponding variables. Variable values can be strings, numbers, booleans, objects or lists of the aforementioned types.
📄️ SchemasYou can validate deployment targets you have defined in the deployment configuration using custom Joi validation schemas.
📄️ Target accountThere are two options to specify to which account Takomo should deploy stacks defined in a deployment target's config sets.
📄️ LabelsYou can add labels to deployment groups and targets with the labels property, which accepts a single label or a list of labels. Deployment groups and targets inherit labels from the deployment group they belong to and can have labels of their own but can't remove the inherited labels.
📄️ Externalize target configurationAs the number of deployment targets grows, the size of the deployment configuration file might become unwieldy. You can externalize the deployment target configurations outside the deployment configuration file to make the deployment configuration file more manageable. To do this, you need to define the deployment target repository in a takomo.yml file located in your project's root directory.
📄️ Bootstrapping targetsTypically, you use a CI/CD pipeline to deploy stacks to your deployment targets. That usually means creating an IAM role for the CI/CD tool to assume and then use to perform the deployment. Of course, as a best practice, the deployment role should have only the minimum set of permissions.