Managing pipeline gates
Gates ensure that orchestrations cannot be started in an environment until the gate rule is satisfied.
About this task
- Approver gate requires one or more responders to
approve an application version before it can run in an environment.
Approving a gate rule is considered passing the gate.Note: Anyone with access to the pipeline can create gates and be assigned as a responder. Scenarios detailing approval and rejection of application versions by responders are detailed below.
- If a gate has multiple responders, one approval is sufficient for the application version to pass the gate.
- If one responder rejects the application version, the application is rejected.
- If responders both approve and reject the application version, the application is rejected.
- When you add gates to an environment, all application versions in the affected environment must be approved before a deployment can be started. You can override a failed gate, that is, a rejected application version and you may want to do this when you run applications in a test environment.
- Metric gate leverages a metric-based system allowing
you to automatically stop or advance application versions from being
deployed into environments based on set conditions for the rule.Note: Using the metric rule type will provide you with visibility on the movement status of application versions and automated governance across your pipeline.
- Compliance gate enables you to control the deployment of application
versions into different environments based on the conditions of the
compliance rule.Note:
- Currently under the Compliance gate, you can only create a rule for pull request approval.
- Compliance rules are enabled only for the following type of
applications:
- Applications added by Jenkins (Legacy) plug-in.
- Applications added by Jenkins plug-in.
- Application added by external HCL DevOps Deploy and external IBM DevOps Deploy plug-ins and built using Jenkins. Ensure that the build details are pushed to Velocity using the DevOps Deploy Jenkins publisher or pipeline plug-ins.
- Status gate allows you to define the statuses of a snapshot version
in a Continuous Delivery (CD) application like DevOps Deploy and
automatically stop or advance application versions from being deployed into
different environments by matching the defined statuses with the actual
statuses of the snapshot version.
For example, when the two statuses functional_testing and regression_testing are added in the Status gate rule, the following scenarios illustrate when the gate will pass or fail:
Scenario 1: Status of a snapshot version in a CD application is empty.
In this scenario, the gate looks for both the functional_testing and regression_testing status in the snapshot version but the synced snapshot version will neither have functional_testing or regression_testing, so the gate will fail.
Scenario 2: Status of a snapshot version in a CD application is having one of the statuses added in the Status gate rule.
In this scenario, the gate looks for both the functional_testing and regression_testing status in the snapshot version, but the synced snapshot version will have either functional_testing or regression_testing, so the gate will fail.
Scenario 3: Status of a snapshot version in a CD application is having both the status added in the Status gate rule.
In this scenario, the gate looks for both the functional_testing and regression_testing status in the snapshot version, the synced snapshot version will have both functional_testing and regression_testing, so the gate will pass.
Scenario 4: Status of a snapshot version in a CD application is having both statuses and other additional status.
In this scenario, the gate looks for both the functional_testing and regression_testing status in the snapshot version, the synced snapshot version will have functional_testing, regression_testing, and other additional status so the gate will pass.
Scenario 5: Status of a snapshot version in a CD application is having one out of two statuses and other additional status.
In this scenario, the gate looks for both the functional_testing and regression_testing status in the snapshot version, but the synced snapshot version will have either functional_testing or regression_testing, and other additional status so the gate will fail.
Note:- Currently the Status gate is not enabled for hybrid Continuous Integration/Continuous Deployment (CI/CD) pipelines. If you are using Status gates in hybrid CI/CD pipelines the gates will always fail.
- Status gate is enabled only for the applications added by
the following plug-in versions of HCL DevOps Deploy and
IBM DevOps Deploy:
- HCL DevOps Deploy 4.0.3 or later.
- IBM DevOps Deploy 4.0.3 or later.
Procedure
-
For the environment where you want to add a gate, click and select
Add gate, and then perform the following steps.
Note: For the environment where you want to modify a gate, click and select Edit gate, and then complete the following steps.
-
In the Environment stage, click the Gate icon
to view the gate rules.
You can see the number of rules and approvers for each gate.
-
In the Pipeline window, click the Gate status icon for the application version with
the gate to open Version Rules window.
You can see the status of the gates and designated approvers can approve or reject the approver gate rule.
-
On the Version Rules window, click
Approve or Reject and then
click Save to approve or reject the approver gate
rule.
Note: If you are an approver for multiple rules, you can approve all or some of them and reject others. If you are not a designated responder, you can neither approve nor reject the gate rule.
- For the environment where you want to delete a gate, click and select Delete gate.