Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

kyma-js

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kyma-js

## Overview

  • 0.0.1-alpha.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
Maintainers
1
Weekly downloads
 
Created
Source

Fast integration tests

Overview

This project provides fast integration tests for Kyma. The goal is to decrease the minimal turnaround time from the current 90 minutes to less than 10 minutes (ten times). Fast integration tests will solve the problem partially. Other initiatives that are executed in parallel are equally important: switching to k3s, reducing Kubernetes provisioning time, and implementing the parallel installation of Kyma components.

The current integration testing flow looks like this:

  1. Build a test image (or images) and push it (~ 2min/image).
  2. Deploy Octopus (~1 min).
  3. Deploy a test Pod (test image), (~ 1min/image).
  4. In many tests, sleep 20 seconds to wait for a sidecar.
  5. Deploy the "test scene" (~1 min/image).
  6. Execute the test (5 sec/test).
  7. Wait for the test completion and collect results (~1 min).

The plan is to keep only 2 steps:

  1. Deploy the "test scene" (~1-2 minutes, one scene for all the tests).
  2. Execute the test (5 sec/test).

In this way, we can reduce testing phase from about 40 minutes to about 4 minutes.

Prerequisites

  • A node.js installation.
  • KUBECONFIG pointing to the Kubernetes cluster which has Kyma installed. If you don't have Kyma yet, you can quickly run it locally using this project.

Usage

To run tests locally, follow these steps:

  1. Checkout the Kyma project:
git clone git@github.com:kyma-project/kyma.git
  1. Install dependencies:
cd kyma/tests/fast-integration
npm install
  1. Execute the tests:
npm test

FAQ

Why don't you use Octopus?

Octopus is a great tool for running tests inside the Kubernetes cluster in a declarative way. But it is not the right tool for fast integration testing. The goal is to execute the tests in 4 minutes. With Octopus, you need 4 minutes or more before the tests even start (2 minutes to build the test image and push it to the Docker registry, 1 minute to deploy Octopus, and 1 minute to deploy the test Pod).

Why are tests written in node.js and not in Go?

Tests are written in node.js for several reasons:

  • No compilation time
  • Concise syntax (handling JSON responses from api-server or our test fixtures)
  • Lighter dependencies (@kubernetes/client-node)
  • Educational value for our customers who can read tests to learn how to use Kyma features (none of our customers write code in Go, they use JavaScript, Java, or Python)

Which pipelines use fast-integration tests?

We have several pipelines that use fast-integration tests. See the list of pipelines with links to the Prow status page:

PipelineDescriptionInfrastructure
pre-master-kyma-integration-k3sJob that runs on every PR before the merge to the master branch.k3s
post-master-kyma-integration-k3sJob that runs on every PR after it is merged to the master branch.k3s
kyma-integration-k3sJob that periodicially runs the fast-integration tests.k3s
kyma-integration-production-gardener-azurePeriodic job that tests the production profile in Kyma.Gardener, Azure
kyma-integration-evaluation-gardener-azurePeriodic job that tests the evaluation profile in Kyma.Gardener, Azure

FAQs

Package last updated on 26 Feb 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc