Skip to content

Update Helm release crossplane to ~1.10.0 #887

Update Helm release crossplane to ~1.10.0

Update Helm release crossplane to ~1.10.0 #887

name: Lint and Test Charts
on: pull_request
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3.4
with:
version: v3.10.2
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.1.0
- name: Add helm dependencies
shell: bash
run: |
for dir in $(ls -d charts/*/ | cut -f2 -d'/'); do
repo_urls=$(helm dependency list charts/"$dir" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" || true)
i=0
echo $repo_urls | while read urls; do
for u in $urls; do
if [ ! -z "$u" ]
then
echo $u
helm repo add $dir$i $u
((i=i+1))
fi
done
done
done
- name: Run chart-testing (lint)
run: ct lint --config ct.yaml
test-kind:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3.4
with:
version: v3.10.2
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.1.0
- name: Adding platforms
run: |
touch /tmp/platforms
echo kind >> /tmp/platforms
- name: Compile and Sort layers alphabetically
id: compile-and-sort-layers
run: |
make -f makefiles/Makefile sort-layers
- name: Add helm dependencies
shell: bash
run: |
for dir in $(ls -d charts/*/ | cut -f2 -d'/'); do
repo_urls=$(helm dependency list charts/"$dir" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" || true)
i=0
echo $repo_urls | while read urls; do
for u in $urls; do
if [ ! -z "$u" ]
then
echo $u
helm repo add $dir$i $u
((i=i+1))
fi
done
done
done
- name: Create kind cluster
if: steps.compile-and-sort-layers.outputs.kind-ci == 'true'
uses: helm/kind-action@v1.2.0
- name: Create wego-system namespace (kind)
if: steps.compile-and-sort-layers.outputs.kind-ci == 'true'
run: kubectl create namespace wego-system
- name: Test kind platform (kind)
if: steps.compile-and-sort-layers.outputs.kind-ci == 'true'
env:
INFRASTRUCTURE: "kind"
run: make -f makefiles/Makefile test
test-gke:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3.4
with:
version: v3.10.2
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.1.0
- name: Adding platforms
run: |
touch /tmp/platforms
echo gke >> /tmp/platforms
- name: Compile and Sort layers alphabetically
id: compile-and-sort-layers
run: |
make -f makefiles/Makefile sort-layers
- name: Add helm dependencies
shell: bash
run: |
for dir in $(ls -d charts/*/ | cut -f2 -d'/'); do
repo_urls=$(helm dependency list charts/"$dir" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" || true)
i=0
echo $repo_urls | while read urls; do
for u in $urls; do
if [ ! -z "$u" ]
then
echo $u
helm repo add $dir$i $u
((i=i+1))
fi
done
done
done
- name: Authenticate to Google Cloud
id: 'auth'
if: steps.compile-and-sort-layers.outputs.gke-ci == 'true'
uses: google-github-actions/auth@v0
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Google Cloud SDK
if: steps.compile-and-sort-layers.outputs.gke-ci == 'true'
uses: google-github-actions/setup-gcloud@v0
with:
install_components: 'gke-gcloud-auth-plugin'
- name: Create gke cluster
if: steps.compile-and-sort-layers.outputs.gke-ci == 'true'
shell: bash
env:
USE_GKE_GCLOUD_AUTH_PLUGIN: True
GKE_CLUSTER_NAME: profiles-${{ github.run_number }}
INFRASTRUCTURE: "gke"
run: |
make -f makefiles/Makefile create-cluster
- name: Create wego-system namespace (gke)
if: steps.compile-and-sort-layers.outputs.gke-ci == 'true'
env:
USE_GKE_GCLOUD_AUTH_PLUGIN: True
run: kubectl create namespace wego-system
- name: Run chart-testing on gke (install)
if: steps.compile-and-sort-layers.outputs.gke-ci == 'true'
env:
USE_GKE_GCLOUD_AUTH_PLUGIN: True
INFRASTRUCTURE: "gke"
run: |
make -f makefiles/Makefile test
- name: Delete gke cluster
if: ${{ always() && steps.compile-and-sort-layers.outputs.gke-ci == 'true' }}
shell: bash
env:
USE_GKE_GCLOUD_AUTH_PLUGIN: True
GKE_CLUSTER_NAME: profiles-${{ github.run_number }}
INFRASTRUCTURE: "gke"
run: |
make -f makefiles/Makefile delete-cluster
# test-mvm:
# runs-on: self-hosted
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# - name: Set up Helm
# uses: azure/setup-helm@v1
# with:
# version: 3.*
# - uses: actions/setup-python@v2
# with:
# python-version: 3.7
# - name: Set up chart-testing
# uses: helm/chart-testing-action@v2.1.0
# - name: Adding platforms
# run: |
# rm -f /tmp/platforms
# touch /tmp/platforms
# echo mvm >> /tmp/platforms
# - name: Compile and Sort layers alphabetically
# id: compile-and-sort-layers
# env:
# YQ_VERSION: v4.20.2
# YQ_BINARY: yq_linux_amd64
# run: |
# sudo curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# sudo mv kubectl /usr/bin/kubectl
# sudo chmod +x /usr/bin/kubectl
# sudo wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY} -O /usr/bin/yq
# sudo chmod +x /usr/bin/yq
# make -f makefiles/Makefile sort-layers
# - name: Add helm dependencies
# shell: bash
# run: |
# for dir in $(ls -d charts/*/ | cut -f2 -d'/'); do
# repo_urls=$(helm dependency list charts/"$dir" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" || true)
# i=0
# echo $repo_urls | while read urls; do
# for u in $urls; do
# if [ ! -z "$u" ]
# then
# echo $u
# helm repo add $dir$i $u
# ((i=i+1))
# fi
# done
# done
# done
# - name: Create mvm cluster
# if: steps.compile-and-sort-layers.outputs.mvm-ci == 'true'
# shell: bash
# env:
# CLUSTER_NAME: profiles-mvm-${{ github.run_number }}
# INFRASTRUCTURE: "mvm"
# GITHUB_TOKEN: ${{secrets.WEAVEWORKSBOT_PROFILES_CATALOG_RELEASE_TOKEN}}
# run: |
# make -f makefiles/Makefile create-cluster
# - name: Create wego-system namespace (mvm)
# if: steps.compile-and-sort-layers.outputs.mvm-ci == 'true'
# env:
# KUBECONFIG: /tmp/mvm-testing-config.yaml
# run: kubectl create namespace wego-system
# - name: Run chart-testing on mvm (install)
# if: steps.compile-and-sort-layers.outputs.mvm-ci == 'true'
# env:
# INFRASTRUCTURE: "mvm"
# KUBECONFIG: /tmp/mvm-testing-config.yaml
# run: make -f makefiles/Makefile test
# - name: Delete mvm cluster
# if: ${{ always() && steps.compile-and-sort-layers.outputs.mvm-ci == 'true' }}
# shell: bash
# env:
# CLUSTER_NAME: profiles-mvm-${{ github.run_number }}
# INFRASTRUCTURE: "mvm"
# run: |
# make -f makefiles/Makefile delete-cluster
# test-vsphere:
# runs-on: self-hosted
# steps:
# - name: Checkout
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
# - name: Set up Helm
# uses: azure/setup-helm@v1
# with:
# version: 3.*
# - uses: actions/setup-python@v2
# with:
# python-version: 3.7
# - name: Set up chart-testing
# uses: helm/chart-testing-action@v2.1.0
# - name: Adding platforms
# run: |
# rm -f /tmp/platforms
# touch /tmp/platforms
# echo vsphere >> /tmp/platforms
# - name: Compile and Sort layers alphabetically
# id: compile-and-sort-layers
# env:
# YQ_VERSION: v4.20.2
# YQ_BINARY: yq_linux_amd64
# run: |
# sudo curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# sudo mv kubectl /usr/bin/kubectl
# sudo chmod +x /usr/bin/kubectl
# sudo wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY} -O /usr/bin/yq
# sudo chmod +x /usr/bin/yq
# make -f makefiles/Makefile sort-layers
# - name: Add helm dependencies
# shell: bash
# run: |
# for dir in $(ls -d charts/*/ | cut -f2 -d'/'); do
# repo_urls=$(helm dependency list charts/"$dir" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" || true)
# i=0
# echo $repo_urls | while read urls; do
# for u in $urls; do
# if [ ! -z "$u" ]
# then
# echo $u
# helm repo add $dir$i $u
# ((i=i+1))
# fi
# done
# done
# done
# - name: Create vsphere cluster
# if: steps.compile-and-sort-layers.outputs.vsphere-ci == 'true'
# shell: bash
# env:
# CLUSTER_NAME: profiles-vsphere-${{ github.run_number }}
# INFRASTRUCTURE: "vsphere"
# GITHUB_TOKEN: ${{secrets.WEAVEWORKSBOT_PROFILES_CATALOG_RELEASE_TOKEN}}
# VSPHERE_PASSWORD: ${{secrets.VSPHERE_PASSWORD}}
# run: |
# make -f makefiles/Makefile create-cluster
# - name: Create wego-system namespace (vsphere)
# if: steps.compile-and-sort-layers.outputs.vsphere-ci == 'true'
# env:
# KUBECONFIG: /tmp/vsphere-testing-config.yaml
# run: kubectl create namespace wego-system
# - name: Run chart-testing on vsphere (install)
# if: steps.compile-and-sort-layers.outputs.vsphere-ci == 'true'
# env:
# INFRASTRUCTURE: "vsphere"
# KUBECONFIG: /tmp/vsphere-testing-config.yaml
# run: make -f makefiles/Makefile test
# - name: Delete vsphere cluster
# if: ${{ always() && steps.compile-and-sort-layers.outputs.vsphere-ci == 'true' }}
# shell: bash
# env:
# CLUSTER_NAME: profiles-vsphere-${{ github.run_number }}
# INFRASTRUCTURE: "vsphere"
# run: |
# make -f makefiles/Makefile delete-cluster
test-eks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3.4
with:
version: v3.10.2
- uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.1.0
- name: Adding platforms
run: |
touch /tmp/platforms
echo eks >> /tmp/platforms
- name: Compile and Sort layers alphabetically
id: compile-and-sort-layers
run: |
make -f makefiles/Makefile sort-layers
- name: Add helm dependencies
shell: bash
run: |
for dir in $(ls -d charts/*/ | cut -f2 -d'/'); do
repo_urls=$(helm dependency list charts/"$dir" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" || true)
i=0
echo $repo_urls | while read urls; do
for u in $urls; do
if [ ! -z "$u" ]
then
echo $u
helm repo add $dir$i $u
((i=i+1))
fi
done
done
done
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-west-1
- name: Install eksctl
if: steps.compile-and-sort-layers.outputs.eks-ci == 'true'
shell: bash
run: |
make -f makefiles/Makefile check-eksctl
- name: Create eks cluster
if: steps.compile-and-sort-layers.outputs.eks-ci == 'true'
shell: bash
env:
CLUSTER_NAME: profiles-${{ github.run_number }}
INFRASTRUCTURE: "eks"
run: |
make -f makefiles/Makefile create-cluster
- name: Create wego-system namespace (eks)
if: steps.compile-and-sort-layers.outputs.eks-ci == 'true'
run: kubectl create namespace wego-system
- name: Run chart-testing on eks (install)
if: steps.compile-and-sort-layers.outputs.eks-ci == 'true'
env:
INFRASTRUCTURE: "eks"
run: |
make -f makefiles/Makefile test
- name: Delete eks cluster
if: ${{ always() && steps.compile-and-sort-layers.outputs.eks-ci == 'true' }}
shell: bash
env:
CLUSTER_NAME: profiles-${{ github.run_number }}
INFRASTRUCTURE: "eks"
run: |
make -f makefiles/Makefile delete-cluster