Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing E2E, API & litmusctl tests for ChaosCenter according to new terminologies & functionalities #392

Merged
merged 2 commits into from
Aug 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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