Files
clevermicro/action.yaml
T

89 lines
3.7 KiB
YAML

name: Deploy CleverMicro
description: Deploy CleverMicro to a Kubernetes cluster using Kind
inputs:
registry-url:
description: Registry URL
required: true
registry-user:
description: Registry user
required: true
registry-password:
description: Registry password
required: true
amqp-router-tag:
description: AMQP Router docker image tag
required: true
management-service-tag:
description: Management service docker image tag
required: true
client-lib-demo-tag:
description: Client lib demo docker image tag
required: true
runs:
using: composite
steps:
- name: Decide kind cluster name
id: cluster-name
shell: bash
run: |
rand=$(head /dev/urandom | tr -dc a-z0-9 | head -c 16)
timestamp=$(date +%s)
echo "cluster-name=$(echo clevermicro-test-$timestamp-$rand)" >> "$FORGEJO_OUTPUT"
# this action will setup kind and helm, then create a kind cluster
- name: Bring up Kubernetes cluster using Kind
uses: https://git.cleverthis.com/hurui200320/actions-kubernetes@0262e48920fc1e20d00b9b301ba848d45b22164e
# uses: https://git.cleverthis.com/actions/kubernetes@master
with:
cluster-name: ${{ steps.cluster-name.outputs.cluster-name }}
kind-config-path: ${{ forge.action_path }}/clevermicro-kind-config.yaml
registry-url: ${{ inputs.registry-url }}
registry-user: ${{ inputs.registry-user }}
registry-password: ${{ inputs.registry-password }}
- name: Add Helm chart repositories
shell: bash
run: |
echo "==================== Adding helm chart repositories ===================="
helm repo add kedacore https://kedacore.github.io/charts
helm repo add cleverthis "https://${{ inputs.registry-url }}/api/packages/infra/helm" \
--username "${{ inputs.registry-user }}" \
--password "${{ inputs.registry-password }}"
helm repo update
echo "==================== Done adding helm chart repositories ===================="
- name: Install KEDA and wait for ready
shell: bash
run: |
echo "==================== Installing KEDA ===================="
helm install keda kedacore/keda --namespace keda --create-namespace --wait --timeout 10m
echo "==================== Done installing KEDA ===================="
- name: Install CleverMicro and wait for ready
shell: bash
run: |
echo "==================== Installing CleverMicro ===================="
helm install clevermicro cleverthis/clevermicro-deployment --namespace clevermicro --create-namespace \
--set "clevermicro.amqp-router.image.tag=${{ inputs.amqp-router-tag }}" \
--set "clevermicro.management-service.image.tag=${{ inputs.management-service-tag }}" \
--set "client-lib-demo.image.tag=${{ inputs.client-lib-demo-tag }}" \
--wait --timeout 20m
echo "==================== Done installing CleverMicro ===================="
- name: Create additional resources for CleverMicro testing
shell: bash
run: |
echo "==================== Applying service file ===================="
kubectl -n clevermicro apply -f ${{ forge.action_path }}/service.yaml
echo "==================== Done applying service file ===================="
- name: Wait for all pods ready
shell: bash
run: |
echo "==================== Waiting for all pods ready ===================="
kubectl -n clevermicro wait pod --for=condition=Ready --timeout=10m --all
kubectl -n clevermicro get pod
echo "==================== All pods ready ===================="