Skip to content

Commit

Permalink
Fixing E2E, API & litmusctl tests for ChaosCenter according to new te…
Browse files Browse the repository at this point in the history
…rminologies & functionalities (#392)

* Added changes for fixes

Signed-off-by: Vedant <vedant.srotria@harness.io>

* Added Fixes for API tests

Signed-off-by: Vedant <vedant.srotria@harness.io>

Signed-off-by: Vedant <vedant.srotria@harness.io>
Co-authored-by: Vedant <vedant.srotria@harness.io>
  • Loading branch information
Jonsy13 and Vedant committed Aug 17, 2022
1 parent 02ef4dc commit d8cbeaf
Show file tree
Hide file tree
Showing 29 changed files with 224 additions and 275 deletions.
59 changes: 53 additions & 6 deletions .github/workflows/litmusctl-test-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ jobs:
strategy:
fail-fast: false
matrix:
AcessType: [NodePort, Ingress, LoadBalancer]
# Cannot connect external chaos-delegate in namespaced scope mode.
AccessType: [Ingress, LoadBalancer]
steps:
- uses: actions/checkout@v2

Expand All @@ -44,9 +45,10 @@ jobs:
./litmus/install-portal.sh
env:
PORTAL_VERSION: ${{ env.TAG }}
ACCESS_TYPE: ${{ matrix.AcessType }}
NAMESPACE: ${{ env.CS_MODE_NAMESPACE }}
ACCESS_TYPE: ${{ matrix.AccessType }}
NAMESPACE: ${{ env.NS_MODE_NAMESPACE }}
INSTALLATION_MODE: "NS-MODE"
DEPLOY_SELF_AGENT: "false"

- name: Installing LitmusCTL on Agent Cluster
run: |
Expand Down Expand Up @@ -118,12 +120,34 @@ jobs:
ACCESS_URL: ${{ env.URL }}
PROJECT_NAME: "admin's project"

- 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 (litmusctl disconnect chaos-delegate)
run: |
chmod 755 ./litmus/litmusctl_tests.sh
./litmus/litmusctl_tests.sh test_create_project
env:
AGENT_NAMESPACE: "agent-5"
INSTALLATION_MODE: "NS-MODE"
ACCESS_URL: ${{ env.URL }}
AGENT_NAME: "agent-5"
PROJECT_NAME: "admin's project"

Cluster-Scope-Mode:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
AcessType: [NodePort, Ingress, LoadBalancer]
AccessType: [NodePort, Ingress, LoadBalancer]
steps:
- uses: actions/checkout@v2

Expand All @@ -142,15 +166,16 @@ jobs:
kubectl get nodes
kubectl get pods -n kube-system
- name: Deploying Litmus-Portal using **k8s-manifest**
- 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.AcessType }}
ACCESS_TYPE: ${{ matrix.AccessType }}
NAMESPACE: ${{ env.CS_MODE_NAMESPACE }}
INSTALLATION_MODE: "CS-MODE"
DEPLOY_SELF_AGENT: "false"

- name: Installing LitmusCTL on Agent Cluster
run: |
Expand Down Expand Up @@ -220,4 +245,26 @@ jobs:
env:
INSTALLATION_MODE: "CS-MODE"
ACCESS_URL: ${{ env.URL }}
PROJECT_NAME: "admin's project"

- 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 (litmusctl disconnect chaos-delegate)
run: |
chmod 755 ./litmus/litmusctl_tests.sh
./litmus/litmusctl_tests.sh test_create_project
env:
AGENT_NAMESPACE: "agent-5"
INSTALLATION_MODE: "CS-MODE"
ACCESS_URL: ${{ env.URL }}
AGENT_NAME: "agent-5"
PROJECT_NAME: "admin's project"
42 changes: 9 additions & 33 deletions .github/workflows/nightly-portal-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ jobs:
steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v3
with:
node-version: 14

- uses: AbsaOSS/k3d-action@v2
name: Create 1st Cluster
with:
Expand All @@ -48,21 +52,6 @@ jobs:
NAMESPACE: ${{ env.CS_MODE_NAMESPACE }}
INSTALLATION_MODE: "CS-MODE"

- name: Deploying Prometheus as a DataSource
run: |
mkdir monitoring && cd monitoring
git clone https://github.com/litmuschaos/litmus.git && cd litmus/monitoring
kubectl create ns monitoring
kubectl -n monitoring apply -f utils/prometheus/prometheus-scrape-configuration/
kubectl -n monitoring apply -f utils/metrics-exporters/node-exporter/
kubectl -n monitoring apply -f utils/metrics-exporters/kube-state-metrics/
source ../../../litmus/utils.sh
wait_for_pods monitoring 720
wait_for_loadbalancer prometheus-k8s monitoring
loadBalancerIP=$(kubectl get services prometheus-k8s -n monitoring -o jsonpath="{.status.loadBalancer.ingress[0].ip}")
DATA_SOURCE="http://$loadBalancerIP:9090"
echo "DATA_SOURCE_URL=$DATA_SOURCE" >> $GITHUB_ENV
# Fetching Access Point & Token for accessing kube api server
- run: |
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
Expand Down Expand Up @@ -114,7 +103,6 @@ jobs:
CYPRESS_AGENT_NAMESPACE: ${{ env.CS_MODE_NAMESPACE}}
CYPRESS_AGENT: "Self-Agent"
CYPRESS_TARGET_APP_NS: "default"
CYPRESS_DATA_SOURCE_URL: ${{ env.DATA_SOURCE_URL }}

# TODO: Additional Tests will be added from here

Expand Down Expand Up @@ -142,6 +130,10 @@ jobs:
steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v3
with:
node-version: 14

- uses: AbsaOSS/k3d-action@v2
name: Create 1st Cluster
with:
Expand All @@ -167,21 +159,6 @@ jobs:
NAMESPACE: ${{ env.NS_MODE_NAMESPACE }}
INSTALLATION_MODE: "NS-MODE"

- name: Deploying Prometheus as a DataSource
run: |
mkdir monitoring && cd monitoring
git clone https://github.com/litmuschaos/litmus.git && cd litmus/monitoring
kubectl create ns monitoring
kubectl -n monitoring apply -f utils/prometheus/prometheus-scrape-configuration/
kubectl -n monitoring apply -f utils/metrics-exporters/node-exporter/
kubectl -n monitoring apply -f utils/metrics-exporters/kube-state-metrics/
source ../../../litmus/utils.sh
wait_for_pods monitoring 720
wait_for_loadbalancer prometheus-k8s monitoring
loadBalancerIP=$(kubectl get services prometheus-k8s -n monitoring -o jsonpath="{.status.loadBalancer.ingress[0].ip}")
DATA_SOURCE="http://$loadBalancerIP:9090"
echo "DATA_SOURCE_URL=$DATA_SOURCE" >> $GITHUB_ENV
# Fetching Access Point & Token for accessing kube api server
- run: |
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
Expand All @@ -190,7 +167,7 @@ jobs:
KUBE_API_TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 --decode)
echo "KUBE_API_SERVER=$KUBE_API_SERVER" >> $GITHUB_ENV
echo "KUBE_API_TOKEN=$KUBE_API_TOKEN" >> $GITHUB_ENV
# RBAC for allowing Cypress Runner to access Cluster resources
- run: |
kubectl apply -f Cypress/cypress-rbac.yml
Expand Down Expand Up @@ -233,7 +210,6 @@ jobs:
CYPRESS_AGENT_NAMESPACE: ${{ env.NS_MODE_NAMESPACE}}
CYPRESS_AGENT: "Self-Agent"
CYPRESS_TARGET_APP_NS: ${{ env.NS_MODE_NAMESPACE}}
CYPRESS_DATA_SOURCE_URL: ${{ env.DATA_SOURCE_URL }}

# TODO: Additional Tests will be added from here

Expand Down
15 changes: 5 additions & 10 deletions .github/workflows/portal-api-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ jobs:
steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v3
with:
node-version: 14

- uses: AbsaOSS/k3d-action@v2
name: Create 1st Cluster
with:
Expand All @@ -44,19 +48,10 @@ jobs:
./litmus/install-portal.sh
env:
PORTAL_VERSION: ${{ env.TAG }}
ACCESS_TYPE: "Ingress"
ACCESS_TYPE: "LoadBalancer"
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 API Tests
uses: cypress-io/github-action@v2
if: always()
Expand Down
40 changes: 8 additions & 32 deletions .github/workflows/portal-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ jobs:
steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v3
with:
node-version: 14

- uses: AbsaOSS/k3d-action@v2
name: Create 1st Cluster
with:
Expand All @@ -53,21 +57,6 @@ jobs:
NAMESPACE: ${{ env.CS_MODE_NAMESPACE }}
INSTALLATION_MODE: "CS-MODE"

- name: Deploying Prometheus as a DataSource
run: |
mkdir monitoring && cd monitoring
git clone https://github.com/litmuschaos/litmus.git && cd litmus/monitoring
kubectl create ns monitoring
kubectl -n monitoring apply -f utils/prometheus/prometheus-scrape-configuration/
kubectl -n monitoring apply -f utils/metrics-exporters/node-exporter/
kubectl -n monitoring apply -f utils/metrics-exporters/kube-state-metrics/
source ../../../litmus/utils.sh
wait_for_pods monitoring 720
wait_for_loadbalancer prometheus-k8s monitoring
loadBalancerIP=$(kubectl get services prometheus-k8s -n monitoring -o jsonpath="{.status.loadBalancer.ingress[0].ip}")
DATA_SOURCE="http://$loadBalancerIP:9090"
echo "DATA_SOURCE_URL=$DATA_SOURCE" >> $GITHUB_ENV
# Fetching Access Point & Token for accessing kube api server
- run: |
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
Expand Down Expand Up @@ -119,7 +108,6 @@ jobs:
CYPRESS_AGENT_NAMESPACE: ${{ env.CS_MODE_NAMESPACE}}
CYPRESS_AGENT: "Self-Agent"
CYPRESS_TARGET_APP_NS: "default"
CYPRESS_DATA_SOURCE_URL: ${{ env.DATA_SOURCE_URL }}

# TODO: Additional Tests will be added from here

Expand Down Expand Up @@ -147,6 +135,10 @@ jobs:
steps:
- uses: actions/checkout@v2

- uses: actions/setup-node@v3
with:
node-version: 14

- uses: AbsaOSS/k3d-action@v2
name: Create 1st Cluster
with:
Expand All @@ -172,21 +164,6 @@ jobs:
NAMESPACE: ${{ env.NS_MODE_NAMESPACE }}
INSTALLATION_MODE: "NS-MODE"

- name: Deploying Prometheus as a DataSource
run: |
mkdir monitoring && cd monitoring
git clone https://github.com/litmuschaos/litmus.git && cd litmus/monitoring
kubectl create ns monitoring
kubectl -n monitoring apply -f utils/prometheus/prometheus-scrape-configuration/
kubectl -n monitoring apply -f utils/metrics-exporters/node-exporter/
kubectl -n monitoring apply -f utils/metrics-exporters/kube-state-metrics/
source ../../../litmus/utils.sh
wait_for_pods monitoring 720
wait_for_loadbalancer prometheus-k8s monitoring
loadBalancerIP=$(kubectl get services prometheus-k8s -n monitoring -o jsonpath="{.status.loadBalancer.ingress[0].ip}")
DATA_SOURCE="http://$loadBalancerIP:9090"
echo "DATA_SOURCE_URL=$DATA_SOURCE" >> $GITHUB_ENV
# Fetching Access Point & Token for accessing kube api server
- run: |
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'
Expand Down Expand Up @@ -238,7 +215,6 @@ jobs:
CYPRESS_AGENT_NAMESPACE: ${{ env.NS_MODE_NAMESPACE}}
CYPRESS_AGENT: "Self-Agent"
CYPRESS_TARGET_APP_NS: ${{ env.NS_MODE_NAMESPACE}}
CYPRESS_DATA_SOURCE_URL: ${{ env.DATA_SOURCE_URL }}

# TODO: Additional Tests will be added from here

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/// <reference types="Cypress" />
import * as user from "../../../fixtures/Users.json";
import * as user from "../../fixtures/Users.json";

export const agent = Cypress.env("AGENT");
export const dataSourceUrl = Cypress.env("DATA_SOURCE_URL");
Expand Down
9 changes: 1 addition & 8 deletions Cypress/cypress/fixtures/graphql/mutations/chaosHub.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,7 @@ export const UPDATE_MY_HUB = `

export const SYNC_REPO = `
mutation syncChaosHub($id: ID!, $projectID: String!) {
syncChaosHub(id: $id, projectID: $projectID) {
id
repoURL
repoBranch
isAvailable
totalExp
hubName
}
syncChaosHub(id: $id, projectID: $projectID)
}
`;

Expand Down
6 changes: 5 additions & 1 deletion Cypress/cypress/fixtures/graphql/queries/workflows.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,10 @@ export const GET_WORKFLOW_RUNS_STATS = `
// getPredefinedWorkflowList
export const GET_PREDEFINED_WORKFLOW_LIST = `
query listPredefinedWorkflows($hubName: String!, $projectID: String!) {
listPredefinedWorkflows(hubName: $hubName, projectID: $projectID)
listPredefinedWorkflows(hubName: $hubName, projectID: $projectID){
workflowName
workflowCSV
workflowManifest
}
}
`;
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ describe("Testing myHub api", () => {
},
}).then((res) => {
expect(res.status).to.eq(200);
expect(res.body).to.have.nested.property("data.syncChaosHub[0].id");
expect(res.body.data.syncChaosHub).to.eq("Successfully synced ChaosHub");
});
});

Expand Down
Loading

0 comments on commit d8cbeaf

Please sign in to comment.