origin-web-console-smoke-test
by
openshift

Description: Smoke tests running in a pod against the origin-web-console web UI

View on GitHub ↗

Summary Information

Updated 44 minutes ago
Added to GitGenius on June 23rd, 2023
Created on February 22nd, 2018
Open Issues & Pull Requests: 0 (+0)
Number of forks: 6
Total Stargazers: 1 (+0)
Total Subscribers: 120 (+0)

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • kind/feature (3)
  • delivery-blocker (2)
  • lifecycle/rotten (2)
  • lifecycle/stale (1)
  • triage/support (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

The origin-web-console-smoke-test repository contains a containerized smoke testing solution designed to continuously validate the OpenShift web console user interface. Written in JavaScript, the project uses Protractor as its testing framework to run automated tests against the web console at configurable intervals, with results exposed through a Prometheus-compatible metrics endpoint. This allows cluster operators to monitor web console health and integrate test results into their observability infrastructure.

The repository is classified across multiple domains including smoke testing, UI testing, web interface validation, Kubernetes integration, CI/CD pipeline integration, and continuous integration. It maintains overlapping contributors with related OpenShift projects including console-operator, origin-web-console, and origin-web-catalog, indicating tight integration within the OpenShift ecosystem.

The core functionality revolves around running smoke tests periodically within a Kubernetes pod. By default, tests execute every five minutes, though this interval is configurable via the TEST_INTERVAL_MINUTES environment variable. The testing framework leverages Protractor to interact with the web console UI and validate its functionality. Results are collected using Prom Client for Node.js, which generates metrics in Prometheus-compatible format accessible at a /metrics endpoint. The server.js file in the test directory handles creation of this metrics endpoint, allowing Prometheus to scrape test results for monitoring and alerting purposes.

Deployment on production clusters requires creating an openshift-prefixed namespace and using the provided smoke-test.yaml template. The container needs access to a Kubernetes service account token mounted at /var/run/secrets/kubernetes.io/serviceaccount/token to authenticate with the cluster. The template automatically handles token creation through a Secret and mounts it as a Volume in the Deployment. The Service includes an annotation for web-console-smoke-test-serving-cert that facilitates certificate generation for the metrics endpoint.

The repository provides multiple pathways for running tests depending on developer needs. For local development, Minishift offers a simple way to test against a running cluster. The project includes Docker build and push scripts for containerization, with docker_build.sh supporting custom tags and container names. The docker_run.sh script enables fast local testing while still working within a container environment, requiring HTTPS certificates generated via make_dev_certs.sh and an OAuth token obtained from the web console.

Tests can also run locally without containerization by directly executing the test suite, with optional CONSOLE_USER and CONSOLE_PASSWORD environment variables for OAuth flow testing. Developers familiar with Protractor can customize behavior by modifying the protractor.conf.js configuration file and individual test files.

The repository includes YAML files in the kube directory for manual setup without templates, allowing operators to customize environment variables for their specific deployments. Docker-based workflows support rapid iteration during development. The metrics endpoint can be verified independently to ensure proper operation before integrating with Prometheus scraping.

origin-web-console-smoke-test
by
openshiftopenshift/origin-web-console-smoke-test

Repository Details

Fetching additional details & charts...