Azure / Azure/orkestra

Add new type(s) and controller to define pipelines to run pre and post flight workflows before and after deploying an Application Group

Open
#403 0 comments 0 reactions 0 assignees View on GitHub
enhancement feat size : L
Dominant language
Go
Stars
112
Forks
21
PR merge metrics
No merged PRs in 30d

Description

The existing and only ApplicationGroup Custom Resource provided by Orkestra is used to generate a workflow for deploying helm releases using a dependency graph. While orkestra with the introduction of Keptn executor plugin allows for tests and validations to be executed during the release (install/upgrade) of each application in the “Application Group”, it does not provide a mechanism to run any system-level validation or check before and after the successful deploy/upgrade of the “Application Group” Releases.

This feature request proposes a new custom resource type that instruments a pre-flight and post-deploy steps (workflow) to execute a myriad of checks/validations before and/or after the release of an application group.

![image](https://user-images.githubusercontent.com/1494003/138758729-2dc7c390-8ade-4491-91f0-814313863b9f.png)

## Proposed Type Specs

### ApplicationGroupTemplate

```yaml
apiVersion: orkestra.azure.microsoft.com/v1alpha1
kind: ApplicationGroupTemplate
metadata:
name: bookinfo
spec:
template:
applications:
- name: ambassador
dependencies: []
spec:
chart:
url: "https://nitishm.github.io/charts"
name: ambassador
version: 6.6.0
release:
timeout: 10m
targetNamespace: ambassador
values:
service:
type: ClusterIP
- name: bookinfo
dependencies: [ambassador]
spec:
chart:
url: "https://nitishm.github.io/charts"
name: bookinfo
version: v1
subcharts:
- name: productpage
dependencies: [reviews]
- name: reviews
dependencies: [details, ratings]
- name: ratings
dependencies: []
- name: details
dependencies: []
release:
targetNamespace: bookinfo
values:
productpage:
replicaCount: 1
details:
replicaCount: 1
reviews:
replicaCount: 1
ratings:
replicaCount: 1
```

### Pipeline

```yaml
apiVersion: orkestra.azure.microsoft.com/v1alpha1
kind: Pipeline
metadata:
name: bookinfo
spec:
preFlight:
tasks:
- name: clusterHealthCheck
dependencies: []
container:
image: alpine:3.7
command: [kubectl, cluster-info, dump]
- name: initTestHarness
dependencies: ["clusterHealthCheck"]
container:
image: alpine:3.7
command: [echo, "initializing test harness"]
applicationGroup:
templateRef:
name: bookinfo-template
postFlight:
tasks:
- name: e2e
dependencies: []
container:
image: alpine:3.7
command: [python, e2e.py]
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.