Azure / draft-classic

A tool for developers to create cloud-native applications on Kubernetes.
https://draft.sh
MIT License
3.92k stars 395 forks source link

support packs with multiple files and chart folders #549

Closed rawlingsj closed 6 years ago

rawlingsj commented 6 years ago

In our custom draft packs we include a Jenkinsfile and various other files in the root chart folder as well as extra folders that contain slightly different flavour of charts. With the current draft create these extra files and folders are ignored and only the Dockerfile and a dir called "charts" is copied from the pack.

This is an example pack we have. The folder 'preview' contains a modified helm chart that is used in CI to deploy the application.

packs
|__ java
     | Dockerfile
     | .dockerignore
     | Jenkinsfile
     |___ charts
     |___ preview

It would be super handy if draft would copy all files and folders in a pack rather than just the Dockerfile and charts folder.

We have a suggested solution to this which I'll followup in a PR but figured I ought to raise the issue to track why.

bacongobbler commented 6 years ago

Hey! Since this is a duplicate of https://github.com/Azure/draft/issues/427 I'm going to go ahead and close this one so we can all work on one ticket. Please let me know if some use case is not addressed in that issue though and we can re-open this one. Thanks!

bacongobbler commented 6 years ago

Just curious though...

The folder 'preview' contains a modified helm chart that is used in CI to deploy the application.

What is different in the preview chart that cannot be handled in the regular chart?

rawlingsj commented 6 years ago

Doh! I'd missed the duplicate issue and PR - my bad for not checking.

What is different in the preview chart that cannot be handled in the regular chart?

So in this scenario the preview folder contains a requirements.yaml which has a few extra apps that we use to create a preview environment for pull requests. Here's a WIP example https://github.com/rawlingsj/draft/tree/master/packs/java

This is slightly different to when we install / upgrade apps in real environments as their requirements.yaml is stored in a separate git repo.