diff --git a/.github/workflows/helm-chart-release.yaml b/.github/workflows/helm-chart-release.yaml new file mode 100644 index 0000000000..d047b6a75a --- /dev/null +++ b/.github/workflows/helm-chart-release.yaml @@ -0,0 +1,25 @@ +name: Release Helm Charts + +on: + push: + branches: + - master + paths: + - 'charts/**' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Configure Git + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.1.0 + env: + CR_TOKEN: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index df8c748c97..7c75a251b2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -29,13 +29,3 @@ jobs: See [CHANGELOG](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG-0.x.md) for full list of changes draft: false prerelease: false - - name: Upload Release Asset - id: upload-release-asset - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create-release.outputs.upload_url }} - asset_path: ./helm-chart.tgz - asset_name: helm-chart.tgz - asset_content_type: application/gzip diff --git a/Makefile b/Makefile index 597b27f2f3..5dc8cf55fc 100644 --- a/Makefile +++ b/Makefile @@ -122,21 +122,21 @@ verify-vendor: .PHONY: generate-kustomize generate-kustomize: bin/helm - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrole-attacher.yaml > ../deploy/kubernetes/base/clusterrole-attacher.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrole-provisioner.yaml > ../deploy/kubernetes/base/clusterrole-provisioner.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrolebinding-attacher.yaml > ../deploy/kubernetes/base/clusterrolebinding-attacher.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrolebinding-provisioner.yaml > ../deploy/kubernetes/base/clusterrolebinding-provisioner.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/controller.yaml -f ../deploy/kubernetes/values/controller.yaml > ../deploy/kubernetes/base/controller.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/csidriver.yaml > ../deploy/kubernetes/base/csidriver.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/node.yaml -f ../deploy/kubernetes/values/controller.yaml > ../deploy/kubernetes/base/node.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/serviceaccount-csi-controller.yaml > ../deploy/kubernetes/base/serviceaccount-csi-controller.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrole-resizer.yaml -f ../deploy/kubernetes/values/resizer.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_resizer_clusterrole.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrole-snapshot-controller.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_clusterrole.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrole-snapshotter.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_snapshotter_clusterrole.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrolebinding-resizer.yaml -f ../deploy/kubernetes/values/resizer.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_resizer_clusterrolebinding.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrolebinding-snapshot-controller.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_clusterrolebinding.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/clusterrolebinding-snapshotter.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_snapshotter_clusterrolebinding.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/role-snapshot-controller-leaderelection.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_leaderelection_role.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/rolebinding-snapshot-controller-leaderelection.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_leaderelection_rolebinding.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/serviceaccount-snapshot-controller.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/serviceaccount-snapshot-controller.yaml - cd aws-ebs-csi-driver && ../bin/helm template kustomize . -s templates/statefulset.yaml -f ../deploy/kubernetes/values/snapshotter.yaml > ../deploy/kubernetes/overlays/alpha/snapshot_controller.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrole-attacher.yaml > ../../deploy/kubernetes/base/clusterrole-attacher.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrole-provisioner.yaml > ../../deploy/kubernetes/base/clusterrole-provisioner.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrolebinding-attacher.yaml > ../../deploy/kubernetes/base/clusterrolebinding-attacher.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrolebinding-provisioner.yaml > ../../deploy/kubernetes/base/clusterrolebinding-provisioner.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/controller.yaml -f ../../deploy/kubernetes/values/controller.yaml > ../../deploy/kubernetes/base/controller.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/csidriver.yaml > ../../deploy/kubernetes/base/csidriver.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/node.yaml -f ../../deploy/kubernetes/values/controller.yaml > ../../deploy/kubernetes/base/node.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/serviceaccount-csi-controller.yaml > ../../deploy/kubernetes/base/serviceaccount-csi-controller.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrole-resizer.yaml -f ../../deploy/kubernetes/values/resizer.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_resizer_clusterrole.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrole-snapshot-controller.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_clusterrole.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrole-snapshotter.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_snapshotter_clusterrole.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrolebinding-resizer.yaml -f ../../deploy/kubernetes/values/resizer.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_resizer_clusterrolebinding.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrolebinding-snapshot-controller.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_clusterrolebinding.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/clusterrolebinding-snapshotter.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_snapshotter_clusterrolebinding.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/role-snapshot-controller-leaderelection.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_leaderelection_role.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/rolebinding-snapshot-controller-leaderelection.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/rbac_add_snapshot_controller_leaderelection_rolebinding.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/serviceaccount-snapshot-controller.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/serviceaccount-snapshot-controller.yaml + cd charts/aws-ebs-csi-driver && ../../bin/helm template kustomize . -s templates/statefulset.yaml -f ../../deploy/kubernetes/values/snapshotter.yaml > ../../deploy/kubernetes/overlays/alpha/snapshot_controller.yaml diff --git a/aws-ebs-csi-driver/.helmignore b/charts/aws-ebs-csi-driver/.helmignore similarity index 100% rename from aws-ebs-csi-driver/.helmignore rename to charts/aws-ebs-csi-driver/.helmignore diff --git a/aws-ebs-csi-driver/Chart.yaml b/charts/aws-ebs-csi-driver/Chart.yaml similarity index 77% rename from aws-ebs-csi-driver/Chart.yaml rename to charts/aws-ebs-csi-driver/Chart.yaml index 55343fed87..414bfc1a28 100644 --- a/aws-ebs-csi-driver/Chart.yaml +++ b/charts/aws-ebs-csi-driver/Chart.yaml @@ -2,8 +2,8 @@ apiVersion: v1 appVersion: "0.7.1" name: aws-ebs-csi-driver description: A Helm chart for AWS EBS CSI Driver -version: 0.6.1-master -kubeVersion: ">=1.13.0-0" +version: 0.6.2 +kubeVersion: ">=1.14.0-0" home: https://github.com/kubernetes-sigs/aws-ebs-csi-driver sources: - https://github.com/kubernetes-sigs/aws-ebs-csi-driver @@ -14,3 +14,5 @@ keywords: maintainers: - name: leakingtapan email: chengpan@amazon.com + - name: krmichel + url: https://github.com/krmichel diff --git a/aws-ebs-csi-driver/templates/NOTES.txt b/charts/aws-ebs-csi-driver/templates/NOTES.txt similarity index 100% rename from aws-ebs-csi-driver/templates/NOTES.txt rename to charts/aws-ebs-csi-driver/templates/NOTES.txt diff --git a/aws-ebs-csi-driver/templates/_helpers.tpl b/charts/aws-ebs-csi-driver/templates/_helpers.tpl similarity index 100% rename from aws-ebs-csi-driver/templates/_helpers.tpl rename to charts/aws-ebs-csi-driver/templates/_helpers.tpl diff --git a/aws-ebs-csi-driver/templates/clusterrole-attacher.yaml b/charts/aws-ebs-csi-driver/templates/clusterrole-attacher.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrole-attacher.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrole-attacher.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrole-provisioner.yaml b/charts/aws-ebs-csi-driver/templates/clusterrole-provisioner.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrole-provisioner.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrole-provisioner.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrole-resizer.yaml b/charts/aws-ebs-csi-driver/templates/clusterrole-resizer.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrole-resizer.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrole-resizer.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrole-snapshot-controller.yaml b/charts/aws-ebs-csi-driver/templates/clusterrole-snapshot-controller.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrole-snapshot-controller.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrole-snapshot-controller.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrole-snapshotter.yaml b/charts/aws-ebs-csi-driver/templates/clusterrole-snapshotter.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrole-snapshotter.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrole-snapshotter.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrolebinding-attacher.yaml b/charts/aws-ebs-csi-driver/templates/clusterrolebinding-attacher.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrolebinding-attacher.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrolebinding-attacher.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrolebinding-provisioner.yaml b/charts/aws-ebs-csi-driver/templates/clusterrolebinding-provisioner.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrolebinding-provisioner.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrolebinding-provisioner.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrolebinding-resizer.yaml b/charts/aws-ebs-csi-driver/templates/clusterrolebinding-resizer.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrolebinding-resizer.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrolebinding-resizer.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrolebinding-snapshot-controller.yaml b/charts/aws-ebs-csi-driver/templates/clusterrolebinding-snapshot-controller.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrolebinding-snapshot-controller.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrolebinding-snapshot-controller.yaml diff --git a/aws-ebs-csi-driver/templates/clusterrolebinding-snapshotter.yaml b/charts/aws-ebs-csi-driver/templates/clusterrolebinding-snapshotter.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/clusterrolebinding-snapshotter.yaml rename to charts/aws-ebs-csi-driver/templates/clusterrolebinding-snapshotter.yaml diff --git a/aws-ebs-csi-driver/templates/controller.yaml b/charts/aws-ebs-csi-driver/templates/controller.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/controller.yaml rename to charts/aws-ebs-csi-driver/templates/controller.yaml diff --git a/aws-ebs-csi-driver/templates/csidriver.yaml b/charts/aws-ebs-csi-driver/templates/csidriver.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/csidriver.yaml rename to charts/aws-ebs-csi-driver/templates/csidriver.yaml diff --git a/aws-ebs-csi-driver/templates/node.yaml b/charts/aws-ebs-csi-driver/templates/node.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/node.yaml rename to charts/aws-ebs-csi-driver/templates/node.yaml diff --git a/aws-ebs-csi-driver/templates/role-snapshot-controller-leaderelection.yaml b/charts/aws-ebs-csi-driver/templates/role-snapshot-controller-leaderelection.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/role-snapshot-controller-leaderelection.yaml rename to charts/aws-ebs-csi-driver/templates/role-snapshot-controller-leaderelection.yaml diff --git a/aws-ebs-csi-driver/templates/rolebinding-snapshot-controller-leaderelection.yaml b/charts/aws-ebs-csi-driver/templates/rolebinding-snapshot-controller-leaderelection.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/rolebinding-snapshot-controller-leaderelection.yaml rename to charts/aws-ebs-csi-driver/templates/rolebinding-snapshot-controller-leaderelection.yaml diff --git a/aws-ebs-csi-driver/templates/serviceaccount-csi-controller.yaml b/charts/aws-ebs-csi-driver/templates/serviceaccount-csi-controller.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/serviceaccount-csi-controller.yaml rename to charts/aws-ebs-csi-driver/templates/serviceaccount-csi-controller.yaml diff --git a/aws-ebs-csi-driver/templates/serviceaccount-snapshot-controller.yaml b/charts/aws-ebs-csi-driver/templates/serviceaccount-snapshot-controller.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/serviceaccount-snapshot-controller.yaml rename to charts/aws-ebs-csi-driver/templates/serviceaccount-snapshot-controller.yaml diff --git a/aws-ebs-csi-driver/templates/statefulset.yaml b/charts/aws-ebs-csi-driver/templates/statefulset.yaml similarity index 100% rename from aws-ebs-csi-driver/templates/statefulset.yaml rename to charts/aws-ebs-csi-driver/templates/statefulset.yaml diff --git a/aws-ebs-csi-driver/values.yaml b/charts/aws-ebs-csi-driver/values.yaml similarity index 100% rename from aws-ebs-csi-driver/values.yaml rename to charts/aws-ebs-csi-driver/values.yaml diff --git a/docs/README.md b/docs/README.md index d930246729..d1e7fb3f03 100644 --- a/docs/README.md +++ b/docs/README.md @@ -121,13 +121,21 @@ kubectl get pods -n kube-system ``` Alternatively, you could also install the driver using helm: + +Add the aws-ebs-csi-driver Helm repository: +```sh +helm repo add aws-ebs-csi-driver https://kubernetes-sigs.github.io/aws-ebs-csi-driver +helm repo update +``` + +Then install a release of the driver using the chart ```sh helm upgrade --install aws-ebs-csi-driver \ --namespace kube-system \ --set enableVolumeScheduling=true \ --set enableVolumeResizing=true \ --set enableVolumeSnapshot=true \ - https://github.com/kubernetes-sigs/aws-ebs-csi-driver/releases/download/v0.7.1/helm-chart.tgz + aws-ebs-csi-driver/aws-ebs-csi-driver ``` ## Examples @@ -173,7 +181,7 @@ Dependencies are managed through go module. To build the project, first turn on * Build image and push it with release tag: `make image-release && make push-release` ### Helm and manifests -The helm chart for this project is in the `aws-ebs-csi-driver` directory. The manifests for this project are in the `deploy/kubernetes` directory. All of the manifests except kustomize patches are generated by running `helm template`. This keeps the helm chart and the manifests in sync. +The helm chart for this project is in the `charts/aws-ebs-csi-driver` directory. The manifests for this project are in the `deploy/kubernetes` directory. All of the manifests except kustomize patches are generated by running `helm template`. This keeps the helm chart and the manifests in sync. When updating the helm chart: * Generate manifests: `make generate-kustomize` diff --git a/hack/run-e2e-test b/hack/run-e2e-test index eb805e3e93..8338b861a0 100755 --- a/hack/run-e2e-test +++ b/hack/run-e2e-test @@ -128,7 +128,7 @@ ${HELM_BIN} upgrade --install aws-ebs-csi-driver \ --set enableVolumeSnapshot=true \ --set image.repository="${IMAGE_NAME}" \ --set image.tag="${IMAGE_TAG}" \ - ./aws-ebs-csi-driver + ./charts/aws-ebs-csi-driver loudecho "Testing focus ${GINKGO_FOCUS}" set -x diff --git a/tester/migration-test-config.yaml b/tester/migration-test-config.yaml index 911eecbe2f..77c7a253b0 100644 --- a/tester/migration-test-config.yaml +++ b/tester/migration-test-config.yaml @@ -95,7 +95,7 @@ install: | --set enableVolumeSnapshot=true \ --set image.repository=$IMAGE_NAME \ --set image.tag=$IMAGE_TAG \ - ./aws-ebs-csi-driver + ./charts/aws-ebs-csi-driver uninstall: | echo "Removing driver" diff --git a/tester/multi-az-config.yaml b/tester/multi-az-config.yaml index 77eefcc139..da5402208b 100644 --- a/tester/multi-az-config.yaml +++ b/tester/multi-az-config.yaml @@ -83,7 +83,7 @@ install: | --set enableVolumeSnapshot=true \ --set image.repository=$IMAGE_NAME \ --set image.tag=$IMAGE_TAG \ - ./aws-ebs-csi-driver + ./charts/aws-ebs-csi-driver kubectl get po -n kube-system diff --git a/tester/single-az-config.yaml b/tester/single-az-config.yaml index bae3cc3fe3..6d5a65c331 100644 --- a/tester/single-az-config.yaml +++ b/tester/single-az-config.yaml @@ -86,7 +86,7 @@ install: | --set enableVolumeSnapshot=true \ --set image.repository=$IMAGE_NAME \ --set image.tag=$IMAGE_TAG \ - ./aws-ebs-csi-driver + ./charts/aws-ebs-csi-driver kubectl get po -n kube-system