Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
nitishm opened this issue Oct 25, 2021 · 0 comments · May be fixed by #404
Labels
enhancement New feature or request feat Feature size : L Feature / Enhancement that doesnt involve redesing

Comments

@nitishm
Copy link
Contributor

nitishm commented Oct 25, 2021

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

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]
@nitishm nitishm added enhancement New feature or request feat Feature size : L Feature / Enhancement that doesnt involve redesing labels Oct 25, 2021
@nitishm nitishm linked a pull request Oct 25, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feat Feature size : L Feature / Enhancement that doesnt involve redesing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant