Skip to content

Create

Environment templates are a collection of resource templates and static resources that contain environment variables, lifecycle hooks, dependencies, etc. For example, an environment template could represent a full operating environment required for a complex Kubernetes application.

Did you know ?

Environment Templates can be managed through various methods:

  • UI
  • CLI (RCTL)
  • Terraform
  • API
  • GitOps

Create an Environment Template

  1. In a project, select Environments > Environment Templates.
  2. Select New Environment Template.
  3. Type a name for the environment template. Optionally, type a description.
  4. See below for information about each configuration category.
  5. Select Save to save the environment template. Click Cancel to close the configuration and go back to the environment template list.

Env Template

General

The environment template new version is created and the General configuration page displays

Setting Description
Version Name Enter the version for the resource. Examples: v1, 0.1, 3
Name Enter a name for the resource
Description Enter a description for the resource. This is optional
Labels Add a label to the resource. Use labels to specify identifying attributes of objects that are meaningful and relevant to users, but do not directly imply semantics to the core system. This is a key-value pair. For example, the key is environment and the value is dev
Annotations Annotations can be added to display information such as Category and the IaC source code information for the environment template. For example, if the category of the environment template is 'Developer Productivity', use the key eaas.envmgmt.io/category and the value Developer Productivity. To display the IaC source code information, use the key eaas.envmgmt.io/github

Env Template

Resources

  • Click + Resource to add resource(s) to this environment Template

Env Template

  • Select the Resource Kind. Based on the selection, user can provide the required information

Resource

Setting Description
Resource Name Select an existing Resource from the drop-down

Env Temp

Environment

Setting Description
Environment Name Select an existing Environment from the drop-down

Env Temp

Resource Template

Setting Description
Resource Template Name Select an existing Resource Template from the drop-down
Version Select the required Resource Template version
Dedicated If the resource is dedicated, all of these resources will be created when the workload publish environment trigger is activated
Depends On Adding Dependency Value ensure that the resource(s) from the added resource template are deployed first before deploying this resource

Env Temp

Click Save

Note: When adding a Resource Template to an Environment Template, the resource template with System Provider can include only one cluster kind and one credential kind.


Agents

Parameter Description
Name Select an agent to associate with this resource

Env Temp


Config Contexts

Setting Description
Context Select a Context to associate with this resource

Upon furnishing the essential details, choose either Save as Active Version or Save as Draft Version

Env Temp


Input Variables

  • Click + Variable to add variable(s) to this environment Template

Env Temp

Selectors

Setting Description
Name The name of the variable
Description A brief description of the variable
Sensitive Does not display the value in the UI
Required The variable is required when using this Context
Override Type Controls if a user can change a variable or not
-- Allowed Allows the user to override the value
-- Not Allowed Does not allow the user to override the value
-- Restricted Allows the user to override the value by selecting a different, pre-defined value
Restricted Values If Restricted is selected for the Override Type, enter the values that are allowed
Value Type The type of value
-- HCL Hashicorp configuration language
-- JSON JavaScript Object Notation (JSON) is a lightweight data-interchange format
-- Expressions Expressions are valid units of code that resolve to a value
-- Text Text value
Default Value The variable value
Selectors Selectors enable the targeting and customization of specific variables within the configuration context. Using variable selectors, users can alias existing variables or override their values. If the specified variable exists, its value is updated; if it does not exist, a new variable is created

Env Temp


Hooks

Environment Hooks

Setting Description
On Completion Set a hook that is triggered when resource creation or updating is complete
On Failure Set a hook that is triggered when resource creation or updating fails to complete
On Init Set a hook that is triggered when resource creation or updating is initialized
On Success Set a hook that is triggered when resource creation or updating is successful

Env Temp

Hook Types

When adding a Resource or Terraform hook, select a hook type and set the appropriate parameters.

Approval

Setting Description
Name Enter a name for the hook
Approval Type Select the approval type. Supported values are: Internal and Email
-- Internal
Agent Name Select the agent to associate with this hook
Continue on Failure Set the hook to run even if the resource creating or updating process fails
Timeout Enter a value to set the timeout duration. If the timeout duration is exceeded, the resource creation or updating is terminated

Container

Setting Description
Name Enter a name for the container hook
Container Configuration
-- cpuLimitMilli Specify the CPU Limit to be used by the container
-- Image Specify the underlying container image to be used
-- Memory Limit in MB Specify the container memory limit to be set (in MB)
-- Working Directory Path The working directory for commands to run in
-- Success Condition Specify the success condition to be evaluated when a container completes execution
Arguments Arguments to the entrypoint. The docker image's CMD is used if this is not provided
Commands Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided
Environment Variables Provide list of environment variables to set in the container
Agent Name Name of the agent responsible for execution
Continue on Failure Set the hook to continue execution even in case of failure
Timeout Enter a value to set the timeout duration for container execution, if this exceeds container execution will be terminated

HTTP

Setting Description
Name Enter a name for the http hook
HTTP Configuration
-- Body Provide message body which is the data bytes transmitted during an HTTP transaction message
-- Endpoint Specify the http endpoint which is a targetable URL to be invoked
-- Method Specify the http method e.g. PUT, POST, GET that corresponds to the endpoint provided
-- Success Condition Specify the success condition to be evaluated when a http call completes execution
Headers Specify additional context and metadata about the request
Agent Name Name of the agent responsible for execution
Continue on Failure Set the hook to continue execution even in case of failure
Timeout Enter a value to set the timeout duration for http call, if this exceeds execution will be terminated

Driver Hook Type

Driver

Setting Description
Name Enter a name for the driver hook
Driver Configuration
-- Type Select the driver type. Supported values are: container, http
Agent Name Name of the agent responsible for execution
Continue on Failure Set the hook to continue execution even in case of failure
Timeout Specify the duration in the Timeout field for HTTP or Container. When a user specifies a timeout in both Hooks and Drivers, the timeout specified in Hooks takes precedence

Reosurce Temp


Schedules

  • Click + Schedule to configure tasks such as deployments, resource destruction, or workflows within an environment template.

Reosurce Temp

Setting Description
Name Enter the name of the scheduled task
Description Provide a description of the task for more context
Frequency Define when and how frequently the action will run
-- Type - One-time: Executes the task only once at a specified time
- Recurring: Allows setting up a recurring schedule using a cron expression
-- Time Zone Select the time zone from the drop-down where the schedule will operate. By default, it is set to 'UTC', but it can be changed if needed
-- Cron Expression Specify timing using a cron expression (Minute, Hour, Day, Month, Week) for fine-grained control over task scheduling
- *: Represents any value
- ,: Lists values
- -: Represents a range of values
- /: Represents step values
Actions Configure the type of actions to be taken as part of the schedule
- Deploy: Schedule a deployment
- Destroy: Schedule the destruction of the environment
- Custom Workflow: Schedule a workflow execution
Config context Select an existing configuration context from drop-down, which determines the parameters under which the selected action will run
Opt-Out Enabling the opt-out option allows delaying a scheduled job for a specified duration. The configuration includes setting the maximum allowed delay duration and the number of times a delay can be applied. Once these limits are reached, the scheduled task will proceed as configured

Reosurce Temp

Refer to Schedules for more information


Version Management

Upon saving the configurations, users have the ability to review the list of environment templates with versions. To delve into specific version details, click on the corresponding version number.

Env Temp

There are three (3) distinct states for environment template versions:

  • Draft
  • Active
  • Disabled

Env Temp

Users can create a draft version of environment templates and make multiple edits to it during the testing/validation phase. Once it is verified that the template is working as expected, users can transition the status from Draft to Active. However, it's important to note that no further edits can be made to the template in the active status. A new version has to be created for any edits to an Active version. Draft versions are project scoped which means that these versions are not shared with downstream projects (when the template is shared).

If a version of a template needs to be made unavailable for security related reasons or compliance, users can disable it by clicking on the Disable icon. Disabling effectively restricts further use of this version, meaning it can no longer be referenced in any new environments that are created. However, existing environments already using this version will remain unaffected.

Draft Status

In the draft status, the following rules apply:

  1. Inaccessible from shared projects
  2. Usable within the same project
  3. Editable multiple times
  4. Can be marked as active (accessible from shared projects)
  5. Can be marked as disabled and restored to an active state by enabling

Active Status

For versions in the active status:

  1. Cannot be reverted back to draft from any other state
  2. Accessible from shared projects
  3. No further changes allowed
  4. Can be marked as disabled and restored to an active state by enabling

Disabled Status

Versions in the disabled status adhere to the following rules:

  1. Cannot be used in the future; no impact on existing projects
  2. Can be restored to an active state by enabling

Important

  • Use the delete icon to remove a version if it is not currently in use. Versions cannot be deleted if they are in use
  • GitOps and Terraform do not support version management; they will always synchronize with the latest active version