Skip to content

check the health of Conduit using the command-line #92

@pcalcado

Description

@pcalcado

Narrative

So that I can quickly identify problems with my service mesh infrastructure
As an operator
I want to check the health of Conduit using the command-line

Rationale

As it happens with any distributed system, there are plenty of things that can go wrong in a Conduit deployment. To make it worse, sometimes it can be hard to distinguish between problems in the users' services or with the underlying infrastructure.

The $ conduit status command-line utility will help users save time diagnosing problems with the service mesh itself.

The command must check as much as possible, being accurate and exhaustive is more important than finishing quickly. It must provide useful and actionable advice whenever possible, and ask users to open an issue with the project if the current condition feels like a bug (e.g. some component throws errors instead of returning proper error states).

Acceptance criteria:

Required items to check:

  • Presence of, access & health of kubectl
  • Version compatibility for K8S both server and client
  • Access & health of K8s API
  • Access & health of Conduit API
  • Health of control plane server-side components
Given a  Conduit deployment
When an operator runs the status command
And everything is healthy and accessible
Then a message is displayed in the terminal saying that everything is ok
And the process exits with status code 0
Given a Conduit deployment 
When an operator runs the status command
And one or more components aren't healthy or accessible
Then a message is displayed in the terminal with descriptions for each error found
And the process exits with status code != 0
Given a Conduit deployment 
When an operator runs the status command
And one or more components are in an unexpected error condition
Then a message is displayed in the terminal asking users to open an issue
And the message contains useful yet anonymised information they should copy and paste on the issue to help with the investigation
And the process exits with status code != 0

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions