Add new type(s) and controller to define pipelines to run pre and post flight workflows before and after deploying an Application Group
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.

Proposed Type Specs
ApplicationGroupTemplate
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
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]