Commit Graph

425 Commits

Author SHA1 Message Date
Phil Calçado 120dbce49d
second iteration of status subcommand: check Kubernetes API #92 (#108)
Signed-off-by: Phil Calcado <phil@buoyant.io>
2018-01-05 13:32:41 -08:00
Risha Mars 38f44fcdb7
Apply fixes from 110 to Dockerfile-bin (#111)
pkg needs to be copied over in Dockerfile-bin as well

Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-05 10:57:08 -08:00
Phil Calçado 709de5a7b0
Moves k8s and conduit client code to /pkg (#103)
* Rename constructor functions from MakeXyz to NewXyz

As it is more commonly used in the codebase

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make Conduit client depend on KubernetesAPI

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Move Conduit client and k8s logic to standard go package dir for internal libs

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Move dependencies to /pkg

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make conduit client more testable

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Remove unused config object

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Add more test cases for marhsalling

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Move client back to controller

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Sort imports

Signed-off-by: Phil Calcado <phil@buoyant.io>
2018-01-04 10:10:10 -08:00
Andrew Seigner 7edea726e6
Add shell completion command to cli (#97)
Cobra supports bash and zsh completion code generation, but our cli
project was not leveraging it.

Add a 'completion' command to the conduit cli, which outputs bash and
zsh completion code.

Signed-off-by: Andrew Seigner <andrew@sig.gy>
2017-12-28 14:24:06 -08:00
Phil Calçado c76b705fce
first iteration of status subcommand: check Kubectl #92 (#96)
* Add framework for healthcheck in CLI

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Add self-checked for kubectl

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Clear formatting code

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Removed ununsed objects from status

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Removed ununsed parameter

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Ignore errored self checkers

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make the check error by default

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Log error, format changes

Signed-off-by: Phil Calcado <phil@buoyant.io>
2017-12-28 14:03:18 -05:00
Phil Calçado c0ccdfabfc
Skip tests known to be flaky when they fail (#95)
We need to address the flaky checks, but for now it is better to have these skipped than a build with false negatives.

Signed-off-by: Phil Calcado <phil@buoyant.io>
2017-12-27 14:42:36 -05:00
Phil Calçado 31e9846f62
Make several CLI commands testable (#86)
* Add func to rsolve kubectl-like names to canonical names

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Refactor API instantiation

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make version command testable

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make get command testable

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Add tests for api utils

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make stat command testable

Signed-off-by: Phil Calcado <phil@buoyant.io>

* Make tap command testablë

Signed-off-by: Phil Calcado <phil@buoyant.io>
2017-12-27 14:10:41 -05:00
Christopher Schmidt bcf61e1bfb adding RBAC stuff for Prometheus (#83)
* adding RBAC stuff for Prometheus, fixes runconduit/conduit#82
Signed-off-by: Christopher Schmidt fakod666@gmail.com

* fixed ident
Signed-off-by: Christopher Schmidt fakod666@gmail.com
2017-12-22 13:45:56 -08:00
Phil Calçado 78d7b22e1c
Add more information to async test failures (#73) 2017-12-22 10:01:34 +11:00
Kevin Lingerfelt a8e75115ab
Prepare the repo for the v0.1.1 release (#75)
* Prepare the repo for the v0.1.1 release

* Add changelog

* Changelog updates, wrap at 100 characters
2017-12-20 10:51:53 -08:00
Kevin Lingerfelt 9fca7e8b36
Modify inject to stop passing malformed arguments (#74) 2017-12-19 22:03:56 -08:00
Dennis Adjei-Baah 63e2fbb97b Refactor each CLI command to silently exit on uncaught errors (#54)
* add silent exits on all conduit commands

* Revert "add silent exits on all conduit commands"

This reverts commit 07488ca

* adds back a change that was accidentally removed on revert

* Stop printing errors to stderr
2017-12-19 17:24:38 -08:00
Phil Calçado 0a6a9edaee
Respect $KUBECONFIG env var (#68)
* Move kubectl logis to k8s package

* Made kubectl return *url.URL, just like API

* Make k8s API code respect /Users/pcalcado/.kube/config (closes #17)

* Fix style mistakes and typos
2017-12-20 11:50:25 +11:00
Kevin Lingerfelt 42e9a94e45
Make tap output line-oriented (#66)
* Make tap output line-oriented

* Use grpc response code constants, add tests
2017-12-19 15:58:46 -08:00
Phil Calçado 683b5c0dd6 Fix unit test runner and failing tests (#67)
* Remove integration test clause from travis file

* Use correct channel for asyn process error reporting

* Fix test for sorting stat keys

* Make integration tests only run if CONDUIT_INTEGRATION_TESTS_ENABLED is set

* Fix timeouts in tests

* Fix handler test check for version

* Removes smoke test that required kubectl as not present on travis

* Replace tail with sleep to avoid leaking subprocesses during tests

* Fix typo & extract constant
2017-12-19 14:21:56 -08:00
Brian Smith 208723b44d
conduit inject: Enable auto name completion in proxy (#60)
Previously `conduit inject` did not enable automatic name completion in
the proxy. As a result services couldn't connect to services outside
the "default" namespace without qualifying the service name with (at
least) the namespace. This is arguably safer but it isn't compatible
with the way things work in Kubernetes when the proxy isn't used.

Enable name auto-completion in the proxy so that the proxy will add
the current pod's namespace to any unqualified service name. This
depends on the feature being added to the proxy (PR #59).

Due to some issues with how zones are dealt with in the project, the
zone component isn't provided; it turns out that it doesn't matter
whether we provide the zone in the current implementation. Dealing
with the zone better will be added later.

Validated by deploying the emojivoto service with its configuration
updated to use unqualified names (`sed "s/\\.emojivoto//g"`). Before
this change this modified configuration would fail; now it succeeds.

Fixes #9.
2017-12-19 12:07:54 -10:00
Phil Calçado 6f9e8be2ee
Check kubectl versions before attempting dashboard (#53)
* Introduce objects to manage kubectl and shell

* Make dashboard command use new shell & kubectl objects

* Make compatible with version numbers like v1.9.0-beta.1

* Add version check for kubectl

* Refactor error to use proper method from fmt pa ckage

* Make channel and error handling more idiomatic and safe

* Make version require 1.8.0
2017-12-19 11:41:15 +11:00
Alex Leong 772b43fefa Add inject flag for skipping outbound ports (#38)
* Add inject flag for skipping outbound ports

* Fix usage of proxy-init ignore flags (closes #541)
2017-12-19 11:17:11 +11:00
Brian Smith d025bf4c0f
conduit inject: Configure proxy to log at "info" level (#58)
Previously `conduit inject` was configuring the proxy to log a lot of
detail, most of which is probably shouldn't be relevant to Conduit
users.

Configure the proxy to log at the "info" level instead for the proxy
itself, and the "warn" level for internal components of the proxy.

Validated by manually doing a `conduit inject`, triggering some
traffic, and inspecting the logs.

Fixes #57
2017-12-18 08:37:27 -10:00
Alex Leong 8a7579ef4a
Add RBAC support (#40)
Adds a ServiceAccount, ClusterRole, and ClusterRoleBinding to the conduit install output that allows the Conduit controller read access to the k8s API.

I have tested this on RBAC-enabled minikube and minikube without RBAC.
2017-12-14 16:57:52 -08:00
Dennis Adjei-Baah 922b41c0fa
Remove namespace property from the Conduit web app (#10)
* Remove namespace property from ServiceMesh.jsx and Deployments.jsx and related Go code
2017-12-08 15:38:04 -08:00
Kevin Lingerfelt 2f114e69fa
Add support for path stats in cli and web api (#13)
* Add support for path stats in cli and web api

The cli stat command supports grouping by pod and deployment. With this
change, it will also support grouping by path, in order to facilitate a
summary stats per individual endpoint.

* Right-align numeric columns in stat output
2017-12-08 12:24:39 -08:00
Oliver Gould bff3efea3f
Prepare for v0.1.0 (#1)
Update versions in code.

Use default docker tag of v0.1.0
2017-12-04 19:55:56 -08:00
Oliver Gould a1fbafaae3 update go-deps image 2017-12-05 01:17:38 +00:00
Oliver Gould b104bd0676 Introducing Conduit, the ultralight service mesh
We’ve built Conduit from the ground up to be the fastest, lightest,
simplest, and most secure service mesh in the world. It features an
incredibly fast and safe data plane written in Rust, a simple yet
powerful control plane written in Go, and a design that’s focused on
performance, security, and usability. Most importantly, Conduit
incorporates the many lessons we’ve learned from over 18 months of
production service mesh experience with Linkerd.

This repository contains a few tightly-related components:
- `proxy` -- an HTTP/2 proxy written in Rust;
- `controller` -- a control plane written in Go with gRPC;
- `web` -- a UI written in React, served by Go.
2017-12-05 00:24:55 +00:00