An Environment refers to a dedicated space where an instance of an Application can be deployed. In essence, each environment corresponds to a Namespace in a Kubernetes cluster that encompasses the associated workloads. Moreover, an environment houses any resources on which the workloads of the Application rely.

Each Application can be deployed into one or more environments, each potentially holding different code versions, configurations, or resource sets. You can clone individual Workloads or even entire Environments to different locations. This feature provides a systematic approach to promoting an Application from one environment to another.

Each environment is classified by a distinct type, which can be utilized to manage and access environment sets.

Environment Types

Every environment is attributed an Environment Type, serving as a classification tool for environments. For example, these types are commonly designated as:

  • development: This category encompasses all environments that developers can directly modify.
  • staging: Environments under this type are used for conducting verification and quality assurance processes before deploying to a production environment.
  • production: This type pertains to environments that are accessed and used by customers.

Environment Types also act as a mechanism to regulate access to environments. For instance, developers may be authorized to manually deploy into development environments, but they might not have the same permission for production environments. This way, the Environment Type acts as a layer of control, promoting both security and efficient workflow management within your IDP.