diff --git a/ci/ct.yaml b/.github/ct.yaml similarity index 91% rename from ci/ct.yaml rename to .github/ct.yaml index bc4fe9c..1333ce3 100644 --- a/ci/ct.yaml +++ b/.github/ct.yaml @@ -2,7 +2,7 @@ remote: origin helm-extra-args: --timeout 600s check-version-increment: true validate-yaml: true -validate-chart-schema: false +validate-chart-schema: true validate-maintainers: false target-branch: main diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..c8571f8 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,123 @@ +name: Lint & Test Charts + +on: [ push, pull_request ] + +jobs: + lint-test: + env: + NAMESPACE: "chart-ci-e2e" + permissions: + id-token: write + contents: read + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v1 + with: + version: v3.4.0 + + # helm/chart-testing-action requires python version 3.7 + # see: https://github.com/helm/chart-testing-action/issues/65 + - uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@b0d4458c71155b54fcf33e11dd465dc923550009 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --config .github/ct.yaml) + if [[ -n "$changed" ]]; then + echo "::set-output name=changed::true" + fi + - name: Run chart-testing (lint) + run: ct lint --config .github/ct.yaml + + - name: Create kind cluster + uses: helm/kind-action@v1.2.0 + if: steps.list-changed.outputs.changed == 'true' + + - name: Install Dependencies + if: steps.list-changed.outputs.changed == 'true' + run: | + set -e + + kubectl create ns ${{ env.NAMESPACE }} + + helm repo add bitnami https://charts.bitnami.com/bitnami + helm repo update + + #### CAREERS POSTGRES #### + helm upgrade --install \ + --version 10.4.2 \ + --namespace ${{ env.NAMESPACE }} \ + --set postgresqlPassword=defaultpassword \ + --set postgresqlUsername=careers \ + --set postgresqlDatabase=careers \ + --set fullnameOverride=careers-psql \ + careers-psql bitnami/postgresql + + #### CTMS POSTGRES #### + helm upgrade --install \ + --version 10.4.2 \ + --namespace ${{ env.NAMESPACE }} \ + --set postgresqlPassword=defaultpassword \ + --set postgresqlUsername=ctms \ + --set postgresqlDatabase=ctms \ + --set fullnameOverride=postgres \ + postgresql bitnami/postgresql + + #### DISCOURSE MYSQL, REDIS #### + helm upgrade --install \ + --version 10.8.0 \ + --namespace ${{ env.NAMESPACE }} \ + --set fullnameOverride=discourse-psql \ + --set persistence.enabled=false \ + --set postgresqlDatabase=discourse \ + --set postgresqlPassword=discourse-psql-password \ + --set postgresqlUsername=postgres \ + postgresql-discourse bitnami/postgresql + helm upgrade --install \ + --version 14.8.6 \ + --namespace ${{ env.NAMESPACE }} \ + --set auth.enabled=true \ + --set auth.password=discourse-redis-password \ + --set fullnameOverride=discourse-redis \ + --set persistence.enabled=false \ + redis-discourse bitnami/redis + + - name: Configure AWS credentials + if: steps.list-changed.outputs.changed == 'true' + uses: aws-actions/configure-aws-credentials@v1 + with: + role-to-assume: arn:aws:iam::783633885093:role/ecr-readonly-iam + aws-region: us-west-2 + + - name: Install ECR Secret + if: steps.list-changed.outputs.changed == 'true' + run: | + # Gets a valid token to pull from ECR and creates a secret with it + REGION=us-west-2 + SECRET_NAME=ecr-registry + EMAIL=itse@mozilla.com + + # Fetch token (which will expire in 12 hours) + TOKEN=$(aws ecr --region=${REGION} get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2) + + # Create or replace secret + kubectl delete secret -n ${{ env.NAMESPACE }} --ignore-not-found "$SECRET_NAME" + kubectl create secret -n ${{ env.NAMESPACE }} docker-registry "$SECRET_NAME" \ + --docker-server="https://783633885093.dkr.ecr.${REGION}.amazonaws.com" \ + --docker-username=AWS \ + --docker-password="${TOKEN}" \ + --docker-email="${EMAIL}" + + - name: Run chart-testing (install) + run: ct install --config .github/ct.yaml --namespace=${{ env.NAMESPACE }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..fb193b1 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,40 @@ +name: Release Charts + +on: + push: + branches: + - main + +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 "itse-automation" + git config user.email "itse-automation@users.noreply.github.com" + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.4.0 + + # https://github.com/helm/chart-releaser/issues/114 + - name: Add Helm Repos for Dependencies + run: | + helm repo add elastic https://helm.elastic.co + helm repo add jetstack https://charts.jetstack.io + helm repo add bitnami https://charts.bitnami.com/bitnami + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.2.1 + with: + charts_dir: charts + charts_repo_url: https://mozilla-it.github.io/helm-charts/ + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 72d69e7..0000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -language: minimal -sudo: required -if: branch = main -stages: -- Lint and Validate -- Deploy -install: -- "./ci/setup.sh" -jobs: -- stage: Lint and Validate - script: - - "./ci/lint.sh" -- stage: e2e - script: - - travis_wait 30 "./ci/e2e.sh" -- stage: Deploy - if: type = push AND branch = main - script: - - "./ci/release.sh" - deploy: - provider: pages - github_token: "$GITHUB_TOKEN" - local_dir: releases - verbose: true - keep_history: true - skip_cleanup: true - target_branch: gh-pages - on: - branch: main -git: - depth: false -env: - global: - - secure: JMQG7Yl/OqA0SRO7bYsZjP1d/VQ1IVutZ+7USKFIcSIWl7Qi9pnHnBTJVfs2Wa3rYcjHRSfd+oSjc9OKHY0QwQ8vPYURWeaDGYLIWjUSntb77KoG9pWXc6+R+3SoSL+gLIeg4s/EbJK2HAdKeFR6iHezxCjC1pRsPLZaDcGkOEyS5paV3AsRmPj4ytPLH+m2w2jpcqykV60FhQf5+gefJkDrZ19jBjqtbLe1BMAzvAqmOZkqv+PF0XOZJmu4RU0nMxzRW2xpaWyv4mTztky41gQMMDk2/8MBN7jM3sLZNA0qVZUr9FmVCpKyD4dTpgLVpCTDMKLmo6OKFMnLx45yohdwJm8H7ZAWBaurEjZ8MFwrIlZ38tEXmifgo/p/dPRHGUMcyon8iCEc4F7Sju2prfqf9EhBg+fSnBzOFROwjEywUZMArTQsRuk/Uu/50MSNzhKvAQ3LGX9dc0Oo6FvWEJmmh/n+4ZxyPHmStUR2prMVsdPJFVNc7pPR7AKJ0VlkcKsB1uMUc4K43hDJCPXHIzI40p0aBEfvq0UW0xmqyKOOCWoSABNHuU7cqk4motyzOrth1G0S42LAzDHm4qlos3X+YEzDBw6on8GTGHETAd7N6Ih4Fx3ymG0KbhHWdflOj1CPocY4eR6aPtvomZiVfozd2oepPQCerSGxyH8HVvE= - - secure: fQJqZlg8nhDPhn2zZX6c+mcSZsulkXFfZI1qo3pzZ2vmcmaqmRSUe8XbseVQKt94CmtilfuNE3P+ZVqpCNZPD0zsa6fu3CE14nhRiess4T3L111APNgP1SXEfxQoY+1/ZT9584R38mBMrS0quCnAYMl9aYwTHwhfTRIvHO05DVmlh1t/u6remLj7U+vayClAc5B3JsLGt5aplQ8FurHP/P6olJc/mUwvE9KFVsna7MUPO0KT0VBUu4cILHX7sjwVsBHchZpRenO5ukPJoOjDwxjLERqQr/m6Io5a60PE1WrO5sjl6IkvKDKii8C1ij3SOzpkW3TKLYbmAip5eyVSy+wZpSZzcZBIXPnezyleRsyngiom/0Mp4xJYU9s0n8133RKEHB3k5aeRWr99Jw7qUamtFZbvY7Qxg2BiEL6qMHkP4ns85vovE5w8pG5GT7j4dPvtfefypiDzquE5phMKFpJ6q5riNVG459bWx6U9CXeb09//O3oKg+x7gWB9aascz8sWFgFU6/3e/20hzNVBiT+AsNFI3W7XrU1GZ38BHyJ6niauHPIThPRSmTtmyg5ZMPX2gCmvALT050la8yyWeNnIzBTAtSIcBS2d7jJP2QYRF0SdlNhhX2zG66z0hC8udos+iiuuXWmCBVc4l2eaY8z4RqaeEV7NEDlmErsGLKY= - - secure: OVHfTUZbIrM7H4HdB9z5dwwOapjz1HmoytX/sKXanrmLfS4Eoyio+Ib6YQO9lVGsoxvsYG2xUohjDmKpKYhaiy3QEfqeKGJdgDWU6WzZ1OUyPTqL7CPo9wGovWbAbF7mNPBdj3x5qDOp8xvbMqrx33ot2wVkI9tfYenjJ0/MBQSqbyRJGxJ3/9SeK5wSscTX6osNkiwRW4ekr7DpzdHiPYhQ23Ffc6qyep5/kIdqxTXjGD5PAwKAKqtyTD8eToqBCFlT+jNjeMv63fNWc4wIb6Nzwoa+6xTx+Df6plLg9dMSSTY2qgLq8D/Rt1rTRtRwOINIoHeTJPryYPhVSAjdCxBbgqUNkAz2ATxdPBcJwhJM6iBXEOSv+UKOaiEx3gpzFYuTiZ03PHjpNlgiTLLX6qOm0TGMjF7urhpfiLfMc/sutiPw3cIo6jR2nhxlOr7nFRvewDZqw1ykK7n58MC357U58073rIw1breLttrS8/PpVIRR+AYzI7KgDMch0X1nLt5gtU4Q6tOusqlfc/rbm6EEXN9iuahfPqVjW5GFYOMofzqUbutm81hC5dIwnGrEl5FKbNaxrJrQoCHDvpYYxao8Tvc/CFlm1yY9tKk/DheaNTGdkoUROrPeV4yXzFqB6x7f2ixRDo23NTSfpjPE3/4lH8Qr57jZce7bCa7HjUs= - - secure: BxR94TWagKFhAZa1XWAAxlxtubGERs8edhFOg9s+jq2Vu07uZKsEcfS+WRDrZSqjz32AgyCEBjaqs63HEbgUzCG6EIuALxChwzJbuiRca5gERYPE+FeY3mDyen7dv+dUBeLdtnNeD4v061iChwf9nny7BH2bITW6sijlI4gGIDBV8DLQ2qBxs3VFr7d9OvcIpP5SIdSsU3Az67EgGZiQywrKr2rGkAzG4mSTjddzhyYhbaY3eEs878Vm7fshmT0XyW3UUAtVCsPA0Hiqfu5rrzvRtaiqjTv/HnlHs1BcWVkwMQm0MLoGQLXeqmoEdV54h+3BJTa3GU2f9NM36BhGWH0tSNoJRsuyYymATLONKEoXq/1WDaHsNVdkbvSumOBebgNfYZs00ZZnPDGDYioIDInrwaA9M6c1+3MV4KmI9jQ4E/gvVC1p2F44tpr5PDddNuE/K7iegid1KN2+stWj+XoVTwCm2BolplsgXzZDdaDYWFofGiHVuiW8nWgi+VeewJe5kv/YCVhlT+DLLggfSins/e9dqIET3pHqscptz5MqXc0q2sEB2ZFbeUmcPQNwzHoxQY6vN/Frf+vRNPWc95wo54QD61kbBFr42DdfsIIaBae3sLXJMof3dDe9MuOAN+NGp/Y9nIvLMGzZV426ypXBI9yvYwNkF/zQ36O1qG4= diff --git a/README.md b/README.md index ce3ed09..07605c0 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,10 @@ This repository contains a collection of Helm charts curated by Mozilla's Servic ## Referencing images in ECR Charts referencing Docker Images stored in an ECR repo under `itsre-apps` subaccount can't be pulled without credentials. -Travis is configured to get Pull credentials for repositories inside that account. -In order to instruct the testing suite to -use those credentials you have to create a folder named `ci` inside your chart, a file `test-values.yaml` inside it with the next content: + +GitHub Actions is configured to get Pull credentials for repositories inside that account. + +In order to instruct the testing suite to use those credentials you have to create a folder named `ci` inside your chart, a file `test-values.yaml` inside it with the next content: ``` imagePullSecrets: - name: ecr-registry @@ -20,8 +21,7 @@ imagePullSecrets: Check [here](https://github.com/mozilla-it/helm-charts/pull/39/commits/1a0fbfed5810a6d6875ca0172adac5065ee03b74#diff-245000fef8fab28267cb8040d6a3d7f6) for an example. ## Installing Helm Charts from this repository -This repository is serving Helm Charts using the webserver provided by Github pages. In order to install Helm charts in your cluster -add this repository to your helm repository list running `helm repo add mozilla-helm-charts https://mozilla-it.github.io/helm-charts/` +This repository is serving Helm Charts using the webserver provided by Github pages. In order to install Helm charts in your cluster add this repository to your helm repository list running `helm repo add mozilla-helm-charts https://mozilla-it.github.io/helm-charts/` ## Debug a Chart deployment This section describes how to verify that your chart is installed correctly as well as what to do if it is not. diff --git a/charts/etherpad/Chart.yaml b/charts/etherpad/Chart.yaml index 073904a..1b2071d 100644 --- a/charts/etherpad/Chart.yaml +++ b/charts/etherpad/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: etherpad description: A Helm chart for the Mozilla Etherpad application type: application -version: 1.0.0 +version: 1.0.1 keywords: - Mozilla diff --git a/charts/etherpad/ci/test-values.yaml b/charts/etherpad/ci/test-values.yaml index 09a492b..1704bff 100644 --- a/charts/etherpad/ci/test-values.yaml +++ b/charts/etherpad/ci/test-values.yaml @@ -11,6 +11,15 @@ configMap: ETHERPAD_API_KEY: dumberetherpadapikey ETHERPAD_SESSION_KEY: dumbetherpadsecretkey +deployment: + resources: + requests: + cpu: 250m + memory: 1Gi + limits: + cpu: 1 + memory: 2Gi + image: tag: stg-9922b5f diff --git a/ci/deps/careers/install.sh b/ci/deps/careers/install.sh deleted file mode 100755 index 3c9a939..0000000 --- a/ci/deps/careers/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -e - -helm repo add bitnami https://charts.bitnami.com/bitnami -helm repo update - -readonly NAMESPACE="chart-ci-e2e" - - - -helm upgrade --install \ - --version 10.4.2 \ - --namespace $NAMESPACE \ - --set postgresqlPassword=defaultpassword \ - --set postgresqlUsername=careers \ - --set postgresqlDatabase=careers \ - --set fullnameOverride=careers-psql \ - careers-psql bitnami/postgresql diff --git a/ci/deps/ctms/install.sh b/ci/deps/ctms/install.sh deleted file mode 100755 index b9e0fbf..0000000 --- a/ci/deps/ctms/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -e - -helm repo add bitnami https://charts.bitnami.com/bitnami -helm repo update - -readonly NAMESPACE="chart-ci-e2e" - - - -helm upgrade --install \ - --version 10.4.2 \ - --namespace $NAMESPACE \ - --set postgresqlPassword=defaultpassword \ - --set postgresqlUsername=ctms \ - --set postgresqlDatabase=ctms \ - --set fullnameOverride=postgres \ - postgresql bitnami/postgresql diff --git a/ci/deps/discourse/install.sh b/ci/deps/discourse/install.sh deleted file mode 100644 index 91d5b83..0000000 --- a/ci/deps/discourse/install.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -set -e - -helm repo add bitnami https://charts.bitnami.com/bitnami -helm repo update - -readonly NAMESPACE="chart-ci-e2e" - - - -helm upgrade --install \ - --version 10.8.0 \ - --namespace $NAMESPACE \ - --set fullnameOverride=discourse-psql \ - --set persistence.enabled=false \ - --set postgresqlDatabase=discourse \ - --set postgresqlPassword=discourse-psql-password \ - --set postgresqlUsername=postgres \ - postgresql-discourse bitnami/postgresql - - - -helm upgrade --install \ - --version 14.8.6 \ - --namespace $NAMESPACE \ - --set auth.enabled=true \ - --set auth.password=discourse-redis-password \ - --set fullnameOverride=discourse-redis \ - --set persistence.enabled=false \ - redis-discourse bitnami/redis diff --git a/ci/deps/install.sh b/ci/deps/install.sh deleted file mode 100755 index adede62..0000000 --- a/ci/deps/install.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -for d in ci/deps/*/; do - if ls "$d"/*.sh 1> /dev/null 2>&1; then - for f in "$d"/*.sh; do bash "$f" -H ; done - fi -done diff --git a/ci/e2e.sh b/ci/e2e.sh deleted file mode 100755 index 062b934..0000000 --- a/ci/e2e.sh +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/bash - -readonly REPO_ROOT=$(git rev-parse --show-toplevel) -readonly FUNCTIONS="${REPO_ROOT}/ci/functions.sh" -readonly CLUSTER_NAME="${CLUSTER_NAME:-kind}" -readonly CONFIG_FILE="${REPO_ROOT}/ci/kind.yaml" -readonly NAMESPACE="chart-ci-e2e" - -# shellcheck source=ci/functions.sh -[ -f "${FUNCTIONS}" ] && source "${FUNCTIONS}" || exit 1 - -create_kind_cluster() { - echo 'Installing kind ..' - - kind create cluster \ - --name "${CLUSTER_NAME}" \ - --config "${CONFIG_FILE}" \ - --wait 60s -} - -configure_kind_cluster() { - configure_kube - - kubectl cluster-info - echo - - kubectl get nodes - echo - - if [[ $(kubectl get namespaces | grep -w $NAMESPACE) ]] ; then - # If the NS exists, delete it and recreate it to get a clean state - kubectl delete namespace $NAMESPACE - kubectl create namespace $NAMESPACE - else - kubectl create namespace $NAMESPACE - fi - echo - - echo 'Cluster ready..' - echo -} - -configure_kube() { - - kind get kubeconfig > kind.config - - echo 'Copying kubeconfig to container' - docker_exec sh -c 'mkdir -p /root/.kube' - chmod 600 kind.config - docker cp kind.config ct:/root/.kube/config - echo -} - -install_deps () { - echo 'Installing some dependencies for this pipeline...' - - docker_exec ./ci/deps/install.sh -} - -install_charts () { - echo 'Installing charts...' - docker_exec ct install --namespace $NAMESPACE - echo -} - -check_cluster_exists () { - # 0 if cluster already exists - kind get clusters | grep -q -w "$CLUSTER_NAME" - echo $? -} - -create_ecr_secret () { - # Gets a valid token to pull from ECR and creates a secret with it - ACCOUNT=$(aws sts get-caller-identity --output text --query Account) - REGION=us-west-2 - SECRET_NAME=ecr-registry - EMAIL=itse@mozilla.com - - # Fetch token (which will expire in 12 hours) - TOKEN=$(aws ecr --region=$REGION get-authorization-token --output text --query authorizationData[].authorizationToken | base64 -d | cut -d: -f2) - - # Create or replace secret - kubectl delete secret -n $NAMESPACE --ignore-not-found "$SECRET_NAME" - kubectl create secret -n $NAMESPACE docker-registry "$SECRET_NAME" \ - --docker-server="https://${ACCOUNT}.dkr.ecr.${REGION}.amazonaws.com" \ - --docker-username=AWS \ - --docker-password="${TOKEN}" \ - --docker-email="${EMAIL}" -} - -main() { - run_ct_container - trap cleanup EXIT - - if [[ $(check_cluster_exists) != 0 ]] ; then - create_kind_cluster - fi - - configure_kind_cluster - create_ecr_secret - install_deps - install_charts -} - -main diff --git a/ci/functions.sh b/ci/functions.sh deleted file mode 100644 index 649a051..0000000 --- a/ci/functions.sh +++ /dev/null @@ -1,27 +0,0 @@ - -set -o errexit -set -o nounset -set -o pipefail - -readonly CT_VERSION=v3.3.1 - -run_ct_container() { - echo 'Running ct container...' - docker run --rm --interactive --detach --network host --name ct \ - --volume "$(pwd)/ci/ct.yaml:/etc/ct/ct.yaml" \ - --volume "$(pwd):/workdir" \ - --workdir /workdir \ - "quay.io/helmpack/chart-testing:${CT_VERSION}" \ - cat - echo -} - -cleanup() { - echo 'Removing ct container...' - docker kill ct > /dev/null 2>&1 - echo 'Done!' -} - -docker_exec() { - docker exec --interactive ct "$@" -} diff --git a/ci/kind.yaml b/ci/kind.yaml deleted file mode 100644 index cebee6d..0000000 --- a/ci/kind.yaml +++ /dev/null @@ -1,5 +0,0 @@ -kind: Cluster -apiVersion: kind.x-k8s.io/v1alpha4 -nodes: - - role: control-plane - - role: worker diff --git a/ci/lint.sh b/ci/lint.sh deleted file mode 100755 index 4e04869..0000000 --- a/ci/lint.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail - -readonly REPO_ROOT=$(git rev-parse --show-toplevel) -readonly FUNCTIONS="${REPO_ROOT}/ci/functions.sh" - -# shellcheck source=ci/functions.sh -[ -f "${FUNCTIONS}" ] && source "${FUNCTIONS}" || exit 1 - -main() { - - run_ct_container - trap cleanup EXIT - - echo "Linting chart..." - docker_exec ct lint -} - -main diff --git a/ci/release.sh b/ci/release.sh deleted file mode 100755 index 2526bdf..0000000 --- a/ci/release.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail - -readonly REPO_ROOT=$(git rev-parse --show-toplevel) - -readonly CHARTS_DIR="${REPO_ROOT}/charts" -readonly RELEASES_DIR="${REPO_ROOT}/releases" - -mkdir -p "${RELEASES_DIR}" - -cd "${CHARTS_DIR}" -for i in $(find . -maxdepth 1 -mindepth 1 -type d) ; do - helm lint "${i}" - helm dependency update "${i}" - helm package "${i}" -d "${RELEASES_DIR}" -done -cd .. - -git checkout -f gh-pages -mv ./*.tgz "${RELEASES_DIR}" -cd "${RELEASES_DIR}" -helm repo index --url https://mozilla-it.github.io/helm-charts/ --merge ../index.yaml . diff --git a/ci/setup.sh b/ci/setup.sh deleted file mode 100755 index 829c3ca..0000000 --- a/ci/setup.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# setups test with required packages - -set -o errexit -set -o nounset -set -o pipefail - -KIND_VERSION=v0.8.0 -HELM_VERSION=v3.3.3 - -echo "=== Install kubectl" -sudo curl -L https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl && sudo chmod +x /usr/local/bin/kubectl - -echo "=== Install helm" -curl -L "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" | tar xz && sudo mv linux-amd64/helm /bin/helm && sudo rm -rf linux-amd64 - -echo "=== Install kind ${KIND_VERSION}" -curl -sSLo kind "https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-linux-amd64" && chmod +x kind && sudo mv kind /usr/local/bin/kind - -echo "=== Install awscli" -pip install --user awscli -