linkerd / linkerd/linkerd2

Conformance Validation

Open
#1,096 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

area/cli gsoc rfc
Dominant language
Go
Stars
11.5k
Forks
1.4k
Avg merge
3d 22h
Merged PRs (30d)
53

Description

## What problem are you trying to solve?

`check` does a great job of validating the health of the control plane and making sure that an install happened. Unfortunately, `check` is limited to only reading from the cluster and not running any actual workloads. This makes it challenging to know whether interactions between the control plane and data plane are working successfully.

## How should the problem be solved?

Create a new tool that adds sample workloads to the cluster and runs something similar to integration tests against the installation. This will test things such as injection, policies and load limits for the cluster itself.

An example of conformance validation for kubernetes is: [Sonobuoy](https://github.com/vmware-tanzu/sonobuoy).

## Any alternatives you've considered?

It is possible to simply run through getting started today. This ends up exercising many of the same use cases. However, walking through getting started leaves much of the debugging and actual testing up to new users who might not know what they should be exercising. As an example, getting started does not currently test ingress, route based metrics or distributed tracing. All of these features could be exercised with a conformance testing suite.

## How would users interact with this feature?

There should be a new set of CLI commands that can start, monitor and report on conformance testing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the existing `check` command and getting started flow first; the issue does not name implementation files or tests. Define CLI commands for starting, monitoring, and reporting, then cover workloads and interactions including injection, policies, load limits, ingress, route-based metrics, and distributed tracing.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
cli, devops, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.