litmusctl-e2e-Pipeline #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: litmusctl-e2e-Pipeline | |
on: | |
workflow_dispatch: | |
inputs: | |
Tag: | |
default: "ci" | |
# All Environments variables declared and set here. | |
env: | |
TAG: "${{github.event.inputs.Tag}}" | |
SELF_AGENT: "self-agent" | |
CS_MODE_NAMESPACE: "litmus" | |
NS_MODE_NAMESPACE: "default" | |
# Jobs for deploying and testing litmus-portal on a KinD Cluster | |
jobs: | |
Namespace-Scope-Mode: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
# Cannot connect external chaos-delegate in namespaced scope mode. | |
AccessType: [Ingress, LoadBalancer] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: AbsaOSS/k3d-action@v2 | |
name: Create k8s Cluster | |
with: | |
cluster-name: ${{ env.SELF_AGENT }} | |
k3d-version: v5.2.2 | |
args: > | |
--agents 3 | |
--k3s-arg "--no-deploy=traefik, metrics-server@server:*" | |
- name: Configuring and Testing the Cluster Installation | |
run: | | |
kubectl cluster-info --context k3d-${{ env.SELF_AGENT }} | |
kubectl get nodes | |
kubectl get pods -n kube-system | |
- name: Deploying Litmus-Portal using k8s-manifest | |
run: | | |
chmod 755 ./litmus/install-portal.sh | |
./litmus/install-portal.sh | |
env: | |
PORTAL_VERSION: ${{ env.TAG }} | |
ACCESS_TYPE: ${{ matrix.AccessType }} | |
NAMESPACE: ${{ env.NS_MODE_NAMESPACE }} | |
INSTALLATION_MODE: "NS-MODE" | |
DEPLOY_SELF_AGENT: "false" | |
- name: Installing LitmusCTL on Agent Cluster | |
run: | | |
curl -O https://litmusctl-production-bucket.s3.amazonaws.com/litmusctl-linux-amd64-master.tar.gz | |
tar -zxvf litmusctl-linux-amd64-master.tar.gz | |
chmod +x litmusctl | |
sudo mv litmusctl /usr/local/bin/litmusctl | |
litmusctl version | |
- name: Running Litmusctl CLI tests (litmusctl create project) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_create_project | |
env: | |
AGENT_NAMESPACE: "agent-4" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-4" | |
PROJECT_NAME: "admin's project" | |
- name: Running Litmusctl CLI tests (Configured with NodeSelectors) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_with_nodeSelectors | |
env: | |
AGENT_NAMESPACE: "agent-1" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-1" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (Configured with Tolerations) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_with_tolerations | |
env: | |
AGENT_NAMESPACE: "agent-2" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-2" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (Natively Configured) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_native | |
env: | |
AGENT_NAMESPACE: "agent-3" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-3" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl get projects) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_projects | |
env: | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
PROJECT_NAME: "admin's project" | |
- name: Running Litmusctl CLI tests (litmusctl get infras) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_infras | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl disconnect chaos-infra) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_disconnect_infra | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl create chaos-enviroment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_create_environment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl get chaos-enviroment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_environment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl delete chaos-enviroment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_delete_environment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl save chaos-experiment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_save_experiment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment1" | |
PROBE_NAME: "testprobeshivam" | |
- name: Running Litmusctl CLI tests (litmusctl get chaos-experiments) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_experiments | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment2" | |
- name: Running Litmusctl CLI tests (litmusctl delete chaos-experiment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_delete_experiment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperimen3" | |
- name: Running Litmusctl CLI tests (litmusctl run chaos-experiment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_run_experiment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment4" | |
- name: Running Litmusctl CLI tests (litmusctl get chaos-experiment-runs) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_experiment_run | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment5" | |
Cluster-Scope-Mode: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
AccessType: [NodePort, Ingress, LoadBalancer] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: AbsaOSS/k3d-action@v2 | |
name: Create 1st Cluster | |
with: | |
cluster-name: ${{ env.SELF_AGENT }} | |
k3d-version: v5.2.2 | |
args: > | |
--agents 3 | |
--k3s-arg "--no-deploy=traefik, metrics-server@server:*" | |
- name: Configuring and Testing the Cluster Installation | |
run: | | |
kubectl cluster-info --context k3d-${{ env.SELF_AGENT }} | |
kubectl get nodes | |
kubectl get pods -n kube-system | |
- name: Deploying Litmus-Portal using k8s-manifest | |
run: | | |
chmod 755 ./litmus/install-portal.sh | |
./litmus/install-portal.sh | |
env: | |
PORTAL_VERSION: ${{ env.TAG }} | |
ACCESS_TYPE: ${{ matrix.AccessType }} | |
NAMESPACE: ${{ env.CS_MODE_NAMESPACE }} | |
INSTALLATION_MODE: "CS-MODE" | |
DEPLOY_SELF_AGENT: "false" | |
- name: Installing LitmusCTL on Agent Cluster | |
run: | | |
curl -O https://litmusctl-production-bucket.s3.amazonaws.com/litmusctl-linux-amd64-master.tar.gz | |
tar -zxvf litmusctl-linux-amd64-master.tar.gz | |
chmod +x litmusctl | |
sudo mv litmusctl /usr/local/bin/litmusctl | |
litmusctl version | |
- name: Running Litmusctl CLI tests (litmusctl create project) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_create_project | |
env: | |
AGENT_NAMESPACE: "agent-4" | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-4" | |
PROJECT_NAME: "admin's project" | |
- name: Running Litmusctl CLI tests (Configured with NodeSelectors) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_with_nodeSelectors | |
env: | |
AGENT_NAMESPACE: "agent-1" | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-1" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (Configured with Tolerations) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_with_tolerations | |
env: | |
AGENT_NAMESPACE: "agent-2" | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-2" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (Natively Configured) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_native | |
env: | |
AGENT_NAMESPACE: "agent-3" | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-3" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl get projects) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_projects | |
env: | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
PROJECT_NAME: "admin's project" | |
- name: Running Litmusctl CLI tests (litmusctl get infras) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_infras | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl disconnect chaos-infra) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_disconnect_infra | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "CS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl create chaos-enviroment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_create_environment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl get chaos-enviroment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_environment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl delete chaos-enviroment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_delete_environment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
- name: Running Litmusctl CLI tests (litmusctl save chaos-experiment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_save_experiment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment1" | |
PROBE_NAME: "testprobeshivam" | |
- name: Running Litmusctl CLI tests (litmusctl get chaos-experiments) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_experiments | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment2" | |
- name: Running Litmusctl CLI tests (litmusctl delete chaos-experiment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_delete_experiment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment3" | |
- name: Running Litmusctl CLI tests (litmusctl run chaos-experiment) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_run_experiment | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment4" | |
- name: Running Litmusctl CLI tests (litmusctl get chaos-experiment-runs) | |
run: | | |
chmod 755 ./litmus/litmusctl_tests.sh | |
./litmus/litmusctl_tests.sh test_get_experiment_run | |
env: | |
AGENT_NAMESPACE: "agent-5" | |
INSTALLATION_MODE: "NS-MODE" | |
ACCESS_URL: ${{ env.URL }} | |
AGENT_NAME: "agent-5" | |
PROJECT_NAME: "admin's project" | |
ENVIRONMENT_NAME: "testenv" | |
EXPERIMENT_NAME: "testexperiment5" |