Odin
  • Introduction
  • Why Odin?
  • Key Concepts
    • Environment
      • Environment Type
    • Provisioning
      • Provisioning Config for Component Types
    • Component
      • Available Component Types
      • Component Type reference
        • Optimus Components
          • Aerospike [6.3.0.7-1.0.0]
    • Service
      • Know Your Service Definition
    • Versioning
      • Clearing the Confusion: A Simplified Guide to Artifact, Component, and Service Versions
    • Service Sets
    • Labels
  • Reference
    • CLI reference
  • Onboard Your Service
    • Installation
    • Configure
    • Odin -h
    • Getting Started
    • Create Environment
      • Operations on Environment
    • Service Definition
    • Provisioning Config
    • Deploy Service
    • Release Service
    • Optimus Datastore Operations
      • How to use Optimus Datastore in my service?
      • RDS Operations
      • Aerospike Operations
      • Kafka Operations
    • Operating Service & Components
      • Redeploy
        • In Place Deployment
        • Blue Green Deployment
      • Rolling Restart
      • Adding & removing components
      • Revert a deployment for application component
      • Downscaling a Passive Stack
      • Updating the no. of stacks of application component
    • Dev <> QA iteration
    • Frequently Asked Questions
    • Deploy Concrete Service
    • Undeploy Service
    • Delete Environment
    • Appendix
  • How To
    • Define error threshold for canary deployment
    • Add or Remove a component in an already deployed service
    • Integrate mono-repo(cronjobs) with Odin
    • Deploy crontab with Odin
    • Integrate Data pipeline with Odin
    • Push logs to log central
    • Build artifacts for multi module applications
    • Load test with Odin
    • Track Deployments against Commit Ids
    • Deploy Service on Production - Dream11
    • How and when images are created
    • Check logs for deployed infrastructure - Dream11
    • Onboard Stepfunction as a component
    • Onboard Serverless as a component
    • Login to Kubernetes clusters
  • Release Notes
    • 1.2.0-beta.2 - 11 August, 2022
    • Odin October Release
    • Odin 1.2.0 - Nov 9th 2022
    • Odin February Release
Powered by GitBook
On this page
  • Provisioning config during deployment
  • Provisioning config during service release
Export as PDF
  1. Key Concepts

Provisioning

PreviousEnvironment TypeNextProvisioning Config for Component Types

Last updated 3 days ago

Each component-type can define it's default way of provisioning. As a service moves through SDLC, there may be use cases where a given service needs to be deployed with different configuration in the same env type or different env type e.g. dev and load. Provisioning config enables a service owner to define different provisioning config while deploying a service and for different environment types as well.

Let's look at different ways of using provisioning config

Provisioning config during deployment

To provide a provisioning config during deployment let's create a file called provisioning.config which outlines the provisioning behaviour for each component with that service. You should only mention component which you need to override, for components not mentioned in this file Odin will take the default provisioning config from the .

[
    {
        "component_name": "COMPONENT_1",
        "deployment_type": "container"
    },
    {
        "component_name": "COMPONENT_2",
        "deployment_type": "container"
    }
]

See list of all params that can be passed for various component-type configs here.

odin deploy service --file definition.json --provisioning provisioning.json --env ENV_NAME

or

odin deploy service --name sevice_1 --version v1 --provisioning provisioning.json --env ENV_NAME

Provisioning config during service release

Once you have the list of various environment types and provisioning config has been defined for various environment types, organise them as per the below convention

service-definition-folder
  definition.json
  provisioning-dev.json
  provisioning-load.json
  provisioning-int.json

Use odin release command to release the service by passing the folder path

odin release service --path service-definition-folder-path

While releasing a service, default provisioning config for various can be defined.

definition.json is the .

Assuming the various available are dev, load, int. The three files provisioning-dev.json, provisioning-load.json and provisioning-int.json respectively will act as default provisioning config in the corresponding environment types.

Now service deployed by anyone in the given environment types will be provisioned with the definitions given unless during deployment. Go to next section to learn about default and override-able params in service definition.

component-type definition
service-definition file
environment types
overrriden
environment types