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

Feature Request: "custom stage” mechanism #1089

Closed
ShotaKitazawa opened this issue Nov 11, 2020 · 4 comments · Fixed by #4203
Closed

Feature Request: "custom stage” mechanism #1089

ShotaKitazawa opened this issue Nov 11, 2020 · 4 comments · Fixed by #4203
Labels

Comments

@ShotaKitazawa
Copy link
Contributor

What would you like to be added:

"custom stage” mechanism (e.g. https://spinnaker.io/guides/operator/custom-job-stages/)

Why is this needed:

Now, PipeCD support some stages.
(eg. Kubernetes: https://pipecd.dev/docs/user-guide/configuring-deployment/kubernetes/)

But I want to execute some processes (eg. Run fixed K8s Job) only writing in .pipe.yaml

I hope feature of custom (user-definition) stage.

@nghialv
Copy link
Member

nghialv commented Nov 13, 2020

@ShotaKitazawa Thank you for raising the issue. This is definitely a worthwhile feature. We will add it to the roadmap.

@nghialv
Copy link
Member

nghialv commented Nov 26, 2020

We are thinking about adding a CUSTOM_BIN stage that executes the specified binary.

@kevin-namba
Copy link
Contributor

kevin-namba commented Mar 3, 2023

I think we have three ways to use custom stage.

  1. use custom stage as a deployment stage that just once apply infrastructure like TERRAFORM_SYNC
  • The pipeline is composed of one custom stage named CUSTOM_SYNC
pipeline:
    stages:
      - name: CUSTOM_SYNC
        with:
          runs:
            - "sam build"
            - "echo y | sam deploy"
  1. use custom stage as deployment stages that supports a canary release.
  • The pipeline is composed of some custom stages
  pipeline:
    stages:
      - name: CUSTOM_CANARY
        with:
          runs: 
            - "sam build"
            - "echo y | sam deploy"
      - name: CUSTOM_CANARY_PROMOTE
        desc: "50%"
        with:
          runs: 
            - "echo y | sam deploy --parameter-overrides FUNCTION_WAIT=0.5"
      - name: WAIT
        with:
          duration: 1m
      - name: CUSTOM_CANARY_PROMOTE
        desc: "100%"
        with:
          runs: 
            - "echo y | sam deploy --parameter-overrides FUNCTION_WAIT=1"
  1. use custom stage as script running stage such as webhook, E2E test and display something
  • The pipeline is composed of some custom stages and stages related with platform provider.
  pipeline:
    stages:
      - name: K8S_CANARY_ROLLOUT
        with:
          replicas: 10%
      - name: COMMAND_EXEC
        desc: "webhook"
        with:
          runs:
            - "curl https://hooks.slack.com/services"
      - name: WAIT
        with:
          duration: 10s
      - name: K8S_PRIMARY_ROLLOUT
      - name: K8S_CANARY_CLEAN

@kentakozuka
Copy link
Member

This feature will be released in v0.44.0 for only AWS Lambda.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants