Setting Up Your Repository
In the deployment-configurations repository you can centrally manage configurations for deployments on the GlueOps Platform. This guide will walk you through the steps to set up your repository, providing a detailed explanation of its structure and how to customize it to suit your organization's needs.
Here is the deployment-configurations template you use to ease setup overhead.
Directory Structure
The deployment-configurations repository is organized into three core directories:
deployment-configurations
├── apps
├── common
├── env-overlays
- apps: Contains configurations for each application deployed on the GlueOps Platform.
- common: Holds configurations shared across all deployments on the platform. It allows you to avoid repetition of configuration files for more efficient setups.
- env-overlays: Contains configurations applied to groups of environments, like "prod" and "nonprod."
apps Directory
The apps directory is where you define the applications deployed on the GlueOps Platform and the environments for each application.  Here's is how it's structured:
apps
├── front-end-antonios-tacos
│   ├── base
│   │   └── base-values.yaml
│   └── envs
│       ├── previews
│       ├── prod
│       ├── stage
│       └── uat
└── back-end-antonios-tacos
    ├── base
    │   └── base-values.yaml
    └── envs
        ├── previews
        ├── prod
        ├── stage
        └── uat
In the directory, we have two applications deployed on the platform: front-end-antonios-tacos and back-end-antonios-tacos.
- The base-values.yamlfile in thebasedirectory contains configurations shared among all environments, such as the image repository and image pull policy.
- The values.yamlfile is placed under each specific environment directory (prod,uat,stage) within theenvsdirectory this contains environment-specific configurations like image tags, secrets, and ports.
- The previewsfile within theenvsdirectory allows you to configure ephemeral deployments based on open pull requests.
apps
├── front-end-antonios-tacos
│   ├── base
│   │   └── base-values.yaml
│   └── envs
│       ├── previews
│       ├── prod
│       ├── stage
│       └── uat
└── back-end-antonios-tacos
    ├── base
    │   └── base-values.yaml
    └── envs
        ├── previews
        ├── prod
        ├── stage
        └── uat
env-overlays Directory
The env-overlays directory contains directories representing groups of environments. Here, you can configure settings common to specific environments. Here's the structure:
env-overlays
├── nonprod
│   └── env-values.yaml
└── prod
    └── env-values.yaml
Each directory contains an env-values.yaml file with these configurations.
- The nonproddirectory contains configurations applied to all non-production environments, likestageanduat.
- The proddirectory contains configurations that apply to the production environment.
Creating Your deployment-configurations Repository
To set up your deployment-configurations repository:
- 
Create a new repository using the provided template in your GitHub organization. 
- 
In the appdirectory, duplicate one of the example demo apps and rename it to your repository name. For example, if you repository name is neptune then replace your application name to neptune.
├── neptune
│   ├── base
│   │   └── base-values.yaml
│   └── envs
│       ├── previews
│       ├── prod
│       ├── stage
│      └── uat
You can add new directories for each additional application you want to deploy.
- 
In the base-values.yamlfile inside thebasedirectory, update the information to fit your application.
- 
Update the values.yamlfile in the enviroments (e.g.,stage,prod,uat) you want to deploy. Change the image tag, hostnames, and other necessary details to match your application and GlueOps configuration.
There is no maximum number of directories per environment. You can choose to have environments like stage, prod, and uat, or just stage and prod based on your needs.
- Repeat the above steps for each application and environment you want to manage in your repository.
For example, if you want to deploy the applications data-api in stage and prod environments and commerce-front-end in uat and prod environments, the resulting directory structure would look like this:
deployment-configurations
├── apps
│   ├── data-api
│   │   ├── base
│   │   │   └── base-values.yaml
│   │   └── envs
│   │       ├── previews
│   │       │   ├── common
│   │       │   │   └── values.yaml
│   │       │   └── pull-request-number
│   │       │       └── 1
│   │       │           └── values.yaml
│   │       ├── prod
│   │       │   └── values.yaml
│   │       ├── stage
│   │       │   └── values.yaml
│   └── commerce-front-end
│       ├── base
│       │   └── base-values.yaml
│       └── envs
│           ├── previews
│           │   ├── common
│           │   │   └── values.yaml
│           │   └── pull-request-number
│           │       └── 1
│           │           └── values.yaml
│           ├── prod
│           │   └── values.yaml
│           └── uat
│               └── values.yaml
├── common
│   └── common-values.yaml
├── env-overlays
│   ├── nonprod
│   │   └── env-values.yaml
│   └── prod
│       └── env-values.yaml
By following these steps, you can efficiently manage and organize your deployment configurations on the GlueOps Platform, providing better control and consistency across your applications and environments.