Commit Graph

517 Commits

Author SHA1 Message Date
Tarun Pothulapati 640699edda
web: replace jaeger svg with a smaller one (#4360)
* replace jaeger svg with smaller one

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>

* increase height and width

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>

* decrease height and width

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2020-05-13 13:30:42 +05:30
Tarun Pothulapati 2be43a5f9d
Add Jaeger links to the Linkerd dashboard (#4177)
* Add Jaeger reverse proxy
* add jaegerLink to the metrics table
* update MetricsTable tests
* Add optional jaeger link
* rename grafana_proxy to reverse_proxy

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2020-05-07 16:35:56 -05:00
Tarun Pothulapati 2a95d373c4
make grafana optional in linkerd-web (#4319)
Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
2020-05-07 22:14:55 +05:30
Thomas Rampelberg 2d2fd3f199
The api prop is optional and not used with TrafficSplit. (#4343)
Fixes #4334
2020-05-07 09:04:56 -07:00
Thomas Rampelberg 16c97e8e8f
Fix detail page rendering (#4306) 2020-04-29 15:00:10 -07:00
Alejandro Pedraza 66ec92aa09
Additional Jest reporter for GH Annotations (#4294)
Second part of #4176

Added extra Jest reporter when running js tests from CI, which will send
to stdout a GH annotation for each test failure, something like:

```
::error file=/home/alpeb/src/forks/linkerd2/web/app/js/components/Navigation.test.jsx::Navigation › checks state when versions do not match
```

See the [health
metrics RFC](https://github.com/linkerd/rfc/blob/master/design/0002-ci-health-metrics.md) for more context.
2020-04-28 13:10:27 -05:00
Thomas Rampelberg f9836c3323
Fix loading for docker build (#4293)
* Fix loading for docker build

* Bump base node image
2020-04-24 13:58:34 -07:00
Thomas Rampelberg 426d558f43
Fix security issues by bumping all dependencies (#4284)
* Fix security issues by bumping all dependencies.

* Bump node version to latest
2020-04-23 10:31:55 -07:00
Alex Leong 9bf54d36ed
Upgrade to go 1.14.2 (#4278)
Upgrade Linkerd's base docker image to use go 1.14.2 in order to stay modern.

The only code change required was to update a test which was checking the error message of a `crypto/x509.CertificateInvalidError`.  The error message of this error changed between go versions.  We update the test to not check for the specific error string so that this test passes regardless of go version.

Signed-off-by: Alex Leong <alex@buoyant.io>
2020-04-20 17:14:51 -07:00
Alex Leong d8eebee4f7
Upgrade to client-go 0.17.4 and smi-sdk-go 0.3.0 (#4221)
Here we upgrade our dependencies on client-go to 0.17.4 and smi-sdk-go to 0.3.0.  Since smi-sdk-go uses client-go 0.17.4, these upgrades must be performed simultaneously.

This also requires simultaneously upgrading our dependency on linkerd/stern to a SHA which also uses client-go 0.17.4.  This keeps all of our transitive dependencies synchronized on one version of client-go.

This ALSO requires updating our codegen scripts to use the 0.17.4 version of code-generator and running it to generate 0.17.4 compatible generated code.  I took this opportunity to update our code generation script to properly use the version of code-generater from `go.mod` rather than a hardcoded SHA.

Signed-off-by: Alex Leong <alex@buoyant.io>
2020-04-01 10:07:23 -07:00
Zahari Dichev 10ecd8889e
Set auth override (#4160)
Set AuthOverride when present on endpoints annotation

Signed-off-by: Zahari Dichev <zaharidichev@gmail.com>
2020-03-25 10:56:36 +02:00
dependabot[bot] ab75bcdf07
Bump acorn from 5.7.3 to 5.7.4 in /web/app (#4172)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-20 11:07:06 -05:00
Alejandro Pedraza 8f79e07ee2
Bump proxy-init to v1.3.2 (#4170)
* Bump proxy-init to v1.3.2

Bumped `proxy-init` version to v1.3.2, fixing an issue with `go.mod`
(linkerd/linkerd2-proxy-init#9).
This is a non-user-facing fix.
2020-03-17 14:49:25 -05:00
Kevin Leimkuhler 10db65bcb3
Update linkerd/stern to fix go.mod parsing (#4173)
## Motivation

I noticed the Go language server stopped working in VS Code and narrowed it
down to `go build ./...` failing with the following:

```
❯ go build ./...
go: github.com/linkerd/stern@v0.0.0-20190907020106-201e8ccdff9c: parsing go.mod: go.mod:3: usage: go 1.23
```

This change updates `linkerd/stern` version with changes made in
linkerd/stern#3 to fix this issue.

This does not depend on #4170, but it is also needed in order to completely
fix `go build ./...`
2020-03-17 11:16:18 -07:00
Andrew Seigner 2d17d6253d
Fix namespace-scoped Grafana links (#4119)
The `/namespaces` page in the web dashboard was rendering broken Grafana
links, containing an extra `var-namespace=` param, for example:
```
/grafana/dashboard/db/linkerd-namespace?var-namespace=&var-namespace=emojivoto
```

Root cause was the `GrafanaLink` component taking both `resource` and
`namespace` properties, but not special-casing when
`resource === 'namespace' && namespace === ''`.

Modify the `GrafanaLink` component to omit the `var-namespace` param
when a `namespace` property is not provided.

Signed-off-by: Andrew Seigner <siggy@buoyant.io>
2020-03-02 13:20:40 -08:00
Ali Ariff 3505c913d8
Add spacing in CallToAction banner (#4095)
* Add spacing in CallToAction banner

The call to action banner  in control plane page is missing some spacing.

The CSS is defined but not yet used. So the solution is to add the class name to the corresponding banner.

After its merged the banner will have more space.

Fixes #3690

* Remove unused css

Signed-off-by: Ali Ariff <ali.ariff12@gmail.com>
2020-02-26 19:53:26 -08:00
Christy Jacob f46f372e08
Refactoring to suppress eslint warnings jsx-a11y/click-events-have-key-events (#3995)
* Refactoring to suppress eslint warnings

Upon enabling jsx-a11y/click-events-have-key-events flag in .eslintrc , a couple of warnings are raised because it is recommended
to provide a onKeyPress, onKeyDown or onKeyUp event handler for every onClick event handler.

The code has been refactored to follow the eslint spec.

Fixes #3926

Signed-off-by: Christy Jacob <christyjacob4@gmail.com>

* Remove jsx-a11y/click-events-have-key-events flag from eslintrc

	* During the review it was reuqested to remove the flag
	* The requested change has been done
2020-02-11 09:28:02 -08:00
Kohsheen Tiku 21f1d85c80
Refactoring to suppress eslint warnings (#3996)
* Refactoring to suppress eslint warnings

Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Refactoring to suppress eslint warnings

Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>

* Enabling the eslint/no-param-reassign throws some warnings with the existing code.

Made necessary changes to suppress the warnings

Fixes #3927

Signed-off-by: Kohsheen Tiku <kohsheen.t@gmail.com>
2020-02-11 10:12:00 -05:00
Dax McDonald 76d3285247
Use correct go module file syntax (#4021)
The correct syntax for the go module file is
go MAJOR.MINOR

Signed-off-by: Dax McDonald <dax@rancher.com>
2020-02-07 07:58:54 -08:00
Christy Jacob 15b1e46b4f
Refactoring to suppress eslint warnings react/no-did-update-set-state flag (#3974)
* Refactoring to suppress eslint warnings

Upon enabling react/no-did-update-set-state flag in .eslintrc , a couple of warnings are raised because it is a bad practice to use the setState() function within the componentDidUpdate() hook.

The code has been refactored to follow the eslint spec.

During the code review, it was pointed out that the react/no-did-update-set-state is enabled by default and can be removed from .eslintrc

The flag was removed from .eslintrc

Fixes #3928

Signed-off-by: Christy Jacob <christyjacob4@gmail.com>
2020-01-30 17:34:07 -08:00
Zahari Dichev a9d38189fb Fix CNI config parsing (#3953)
This PR addreses the problem introduced after #3766.

Fixes #3941 

Signed-off-by: Zahari Dichev <zaharidichev@gmail.com>
2020-01-23 09:55:04 -08:00
Mayank Shah 60ac0d5527 Add `as-group` CLI flag (#3952)
Add CLI flag --as-group that can impersonate group for k8s operations

Signed-off-by: Mayank Shah mayankshah1614@gmail.com
2020-01-22 16:38:31 +02:00
Kevin Lingerfelt fed1eede8c
Enable no-use-before-define eslint rule (#3925)
This is a follow-up to #3882, which adopted a bunch of new linting rules
in our Javascript codebase. The no-use-before-define rule requires
moving some functions around, so I'm doing it in a separate branch.

Note that I was originally going to also enable the react/sort-comp rule
as part of this branch, but I decided that the sort ordering doesn't
work for our codebase.

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>
2020-01-17 14:29:54 -08:00
Mayank Shah b94e03a8a6 Remove empty fields from generated configs (#3886)
Fixes
- https://github.com/linkerd/linkerd2/issues/2962
- https://github.com/linkerd/linkerd2/issues/2545

### Problem
Field omissions for workload objects are not respected while marshaling to JSON.

### Solution
After digging a bit into the code, I came to realize that while marshaling, workload objects have empty structs as values for various fields which would rather be omitted. As of now, the standard library`encoding/json` does not support zero values of structs with the `omitemty` tag. The relevant issue can be found [here](https://github.com/golang/go/issues/11939). To tackle this problem, the object declaration should have _pointer-to-struct_ as a field type instead of _struct_ itself. However, this approach would be out of scope as the workload object declaration is handled by the k8s library.

I was able to find a drop-in replacement for the `encoding/json` library which supports zero value of structs with the `omitempty` tag. It can be found [here](https://github.com/clarketm/json). I have made use of this library to implement a simple filter like functionality to remove empty tags once a YAML with empty tags is generated, hence leaving the previously existing methods unaffected

Signed-off-by: Mayank Shah <mayankshah1614@gmail.com>
2020-01-13 10:02:24 -08:00
Kevin Lingerfelt 1ce6efaecf
Adopt more common Javascript linting conventions (#3882)
The current set of Javascript linting rules that we're using in this
project is outdated, and it has lead to a variety of competing styles
in the Javascript codebase.

Update the project's linting rules to match those provided by the latest
release of eslint-config-airbnb, but disable a bunch of rules that
aren't compatible with this project.

I've split this change into two commits. The first commit contains the
manual changes that I made to satisfy the new rules, and the second
commit contains all of the whitespace, quoting and commas changes that
were fixed automatically by eslint.

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>
2020-01-08 15:01:16 -08:00
Kevin Leimkuhler 63c8c65ec7
Ensure cache does not store index_bundle.js (#3891)
## Motivation

Full background: #2074

#2074 was recently reopened because a user reported an error that occurs when
refreshing an already opened dashboard after the dashboard build has changed.
This can occur when upgrading or downgrading.

#2074 explores a larger issue about a redirection that occurs when loading the
dashboard JS. However, the actual issue that users are experiencing happens
because `index_bundle.js` is being cached when it should not be.

Even if the hash of the JS bundle changes, users can see (on the current edge)
that browsers do in fact cache `index_bundle.js`.

The easiest way I reproduced this was:
1. Install `edge-19.12.3`
2. `linkerd dashboard` (and keep the tab open)
2. Uninstall `edge-19.12.3`
3. Install `stable-2.5.0`
4. `linkerd dashboard`
5. Refresh in all browsers: Users will observe the `edge-19.12.3` dashboard
   still renders (with all of it's new additions) even though `stable-2.5.0` is
   installed with it's older theme.

Below are screenshots of Safari and Firefox caching the file. Chrome was not as
easy to reproduce:

*Safari*
![Screen Shot 2020-01-07 at 5 39 00 PM](https://user-images.githubusercontent.com/4572153/71944121-9d691400-3177-11ea-9d36-e173e0b7138e.png)

*Firefox*
![Screen Shot 2020-01-07 at 5 39 21 PM](https://user-images.githubusercontent.com/4572153/71944161-c25d8700-3177-11ea-9cd4-796dd0a4900e.png)

## Solution

This change only changes the response header when requesting `index_bundle.js`
from the server to ensure caching does not take place; mainly `no-cache` is
changed to `no-store` and `must-revalidate` is now included.

`no-store` and `must-revalidate` are redundant on some browsers but both
required to cover all browsers (and versions).

Signed-off-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2020-01-08 09:56:40 -08:00
Alejandro Pedraza 419b9f1502
Fix race condition in web service (#3883)
Fixes #3859, followup to #3769

The addition of the web service's `statCache` introduced a race condition on the `h.statCache` variable, that is read and written in `handleAPIStat()` without mutext guards. I've moved the `statCache` initialization into `/web/srv/server.go` to avoid this problem.

The issue can be easily reproduced with
```bash
$ bin/web dev

$ for run in {1..2}; do curl 'http://localhost:7777/api/tps-reports?resource_type=deployment&namespace=linkerd&tcp_stats=true&resource_name=linkerd-destination&window=1m' &  done
[1] 11672
[2] 11673
{"ok":{"statTables":[{"podGroup":{"rows":[{"resource":{"namespace":"linkerd","type":"deployment","name":"linkerd-destination"},"timeWindow":"1m","status":"","meshedPodCount":"1","runningPodCount":"1","failedPodCount":"0","stats":{"successCount":"18","failureCount":"0","latencyMsP50":"1","latencyMsP95":"9","latencyMsP99":"10","actualSuccessCount":"0","actualFailureCount":"0"},"tcpStats":{"openConnections":"7","readBytesTotal":"23174","writeBytesTotal":"22946"},"tsStats":null,"errorsByPod":{}}]}}]}}{"ok":{"statTables":[{"podGroup":{"rows":[{"resource":{"namespace":"linkerd","type":"deployment","name":"linkerd-destination"},"timeWindow":"1m","status":"","meshedPodCount":"1","runningPodCount":"1","failedPodCount":"0","stats":{"successCount":"18","failureCount":"0","latencyMsP50":"1","latencyMsP95":"9","latencyMsP99":"10","actualSuccessCount":"0","actualFailureCount":"0"},"tcpStats":{"openConnections":"7","readBytesTotal":"23174","writeBytesTotal":"22946"},"tsStats":null,"errorsByPod":{}}]}}]}}[1]-  Done                    curl 'http://localhost:7777/api/tps-reports?resource_type=deployment&namespace=linkerd&tcp_stats=true&resource_name=linkerd-destination&window=1m'
[2]+  Done                    curl 'http://localhost:7777/api/tps-reports?resource_type=deployment&namespace=linkerd&tcp_stats=true&resource_name=linkerd-destination&window=1m'

==================
WARNING: DATA RACE
Read at 0x00c000192308 by goroutine 58:
  github.com/linkerd/linkerd2/web/srv.(*handler).handleAPIStat()
      /home/alpeb/src/linkerd2/web/srv/api_handlers.go:140 +0x61
  github.com/linkerd/linkerd2/web/srv.(*handler).handleAPIStat-fm()
      /home/alpeb/src/linkerd2/web/srv/api_handlers.go:138 +0x7d
  github.com/julienschmidt/httprouter.(*Router).ServeHTTP()
      /home/alpeb/go/pkg/mod/github.com/julienschmidt/httprouter@v1.2.0/router.go:334 +0x10b7
  github.com/linkerd/linkerd2/web/srv.(*Server).ServeHTTP()
      /home/alpeb/src/linkerd2/web/srv/server.go:69 +0x4c0
  github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1()
      /home/alpeb/go/pkg/mod/github.com/prometheus/client_golang@v1.2.1/prometheus/promhttp/instrument_server.go:100 +0xf8
  net/http.HandlerFunc.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2007 +0x51
  github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerResponseSize.func1()
      /home/alpeb/go/pkg/mod/github.com/prometheus/client_golang@v1.2.1/prometheus/promhttp/instrument_server.go:196 +0x104
  net/http.HandlerFunc.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2007 +0x51
  github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func1()
      /home/alpeb/go/pkg/mod/github.com/prometheus/client_golang@v1.2.1/prometheus/promhttp/instrument_server.go:68 +0x13c
  net/http.HandlerFunc.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2007 +0x51
  go.opencensus.io/plugin/ochttp.(*Handler).ServeHTTP()
      /home/alpeb/go/pkg/mod/go.opencensus.io@v0.22.0/plugin/ochttp/server.go:86 +0x3f9
  net/http.serverHandler.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2802 +0xce
  net/http.(*conn).serve()
      /usr/local/go/src/net/http/server.go:1890 +0x837

Previous write at 0x00c000192308 by goroutine 56:
  github.com/linkerd/linkerd2/web/srv.(*handler).handleAPIStat()
      /home/alpeb/src/linkerd2/web/srv/api_handlers.go:141 +0xd5e
  github.com/linkerd/linkerd2/web/srv.(*handler).handleAPIStat-fm()
      /home/alpeb/src/linkerd2/web/srv/api_handlers.go:138 +0x7d
  github.com/julienschmidt/httprouter.(*Router).ServeHTTP()
      /home/alpeb/go/pkg/mod/github.com/julienschmidt/httprouter@v1.2.0/router.go:334 +0x10b7
  github.com/linkerd/linkerd2/web/srv.(*Server).ServeHTTP()
      /home/alpeb/src/linkerd2/web/srv/server.go:69 +0x4c0
  github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1()
      /home/alpeb/go/pkg/mod/github.com/prometheus/client_golang@v1.2.1/prometheus/promhttp/instrument_server.go:100 +0xf8
  net/http.HandlerFunc.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2007 +0x51
  github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerResponseSize.func1()
      /home/alpeb/go/pkg/mod/github.com/prometheus/client_golang@v1.2.1/prometheus/promhttp/instrument_server.go:196 +0x104
  net/http.HandlerFunc.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2007 +0x51
  github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func1()
      /home/alpeb/go/pkg/mod/github.com/prometheus/client_golang@v1.2.1/prometheus/promhttp/instrument_server.go:68 +0x13c
  net/http.HandlerFunc.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2007 +0x51
  go.opencensus.io/plugin/ochttp.(*Handler).ServeHTTP()
      /home/alpeb/go/pkg/mod/go.opencensus.io@v0.22.0/plugin/ochttp/server.go:86 +0x3f9
  net/http.serverHandler.ServeHTTP()
      /usr/local/go/src/net/http/server.go:2802 +0xce
  net/http.(*conn).serve()
      /usr/local/go/src/net/http/server.go:1890 +0x837

Goroutine 58 (running) created at:
  net/http.(*Server).Serve()
      /usr/local/go/src/net/http/server.go:2927 +0x5be
  net/http.(*Server).ListenAndServe()
      /usr/local/go/src/net/http/server.go:2825 +0x102
  main.main.func1()
      /home/alpeb/src/linkerd2/web/main.go:105 +0xdd

Goroutine 56 (running) created at:
  net/http.(*Server).Serve()
      /usr/local/go/src/net/http/server.go:2927 +0x5be
  net/http.(*Server).ListenAndServe()
      /usr/local/go/src/net/http/server.go:2825 +0x102
  main.main.func1()
      /home/alpeb/src/linkerd2/web/main.go:105 +0xdd
```
2020-01-07 17:21:45 -05:00
Sergio C. Arteaga 36478312b2 Reduce unnecessary data requests for pod detail pages (#3768)
This PR restructures how the the array of apiRequests are constructed in the
`ResourceDetail` component to reduce unnecessary data requests. In the case of a
Pod detail page, we will no longer query the API for a list of pods in a
namespace, or request metrics for those pods, which we do for all other resource
detail pages.

Signed-off-by: Sergio Castaño Arteaga <tegioz@icloud.com>
2019-12-20 13:02:24 -08:00
Paul Balogh 2cd2ecfa30 Enable mixed configuration of skip-[inbound|outbound]-ports (#3766)
* Enable mixed configuration of skip-[inbound|outbound]-ports using port numbers and ranges (#3752)
* included tests for generated output given proxy-ignore configuration options
* renamed "validate" method to "parseAndValidate" given mutation
* updated documentation to denote inclusiveness of ranges
* Updates for expansion of ignored inbound and outbound port ranges to be handled by the proxy-init rather than CLI (#3766)

This change maintains the configured ports and ranges as strings rather than unsigned integers, while still providing validation at the command layer.

* Bump versions for proxy-init to v1.3.0

Signed-off-by: Paul Balogh <javaducky@gmail.com>
2019-12-20 09:32:13 -05:00
Sergio C. Arteaga 7886938f4f Classify some gRPC status codes as non-errors (#3736)
Signed-off-by: Sergio Castaño Arteaga <tegioz@icloud.com>
2019-12-19 15:22:43 -05:00
Carol A. Scott 33b3544874
Updating the namespace change button with the Autocomplete MUI component (#3850)
* Updating the namespace change button with the Autocomplete MUI component

* Cintia feedback
2019-12-19 09:16:10 -08:00
Cynthia S. Garcia bd77dde63e Fix dense mode for MUI Table (#3844)
Deletes dense mode from padding prop in Octopus.jsx file to satisfy
Material-UI requirements.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-19 07:43:16 -08:00
Cynthia S. Garcia 609618424d Fix spacing unit to new MUI v4 format (#3841)
Replaces theme.spacing.unit in the TapQueryForm component, which is deprecated, 
with theme.spacing(1), as part of the upgrade to Material-UI v4.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-17 15:57:16 -08:00
Cynthia S. Garcia f55b2f4e38 Pause dashboard network activity when page is hidden (#3773)
This PR pauses the network activity when the dashboard is not visible, resuming
it as soon as the user goes back to it. To do that, we are using the
react-page-visibility library.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-17 15:34:18 -08:00
Cynthia S. Garcia 5eac50f62b Update dashboard to Material-UI 4.7.1 (#3710)
This PR updates Material-UI from v3.6.1 to v4.7.1. The Material-UI
icon library has also been updated from v3.0.1 to v4.5.1.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-17 13:04:26 -08:00
Sergio C. Arteaga a1141fc507 Cache StatSummary responses in dashboard web server (#3769)
Signed-off-by: Sergio Castaño Arteaga <tegioz@icloud.com>
2019-12-17 09:15:00 -05:00
Carol A. Scott 43c394aa97
Pluralize dashboard breadcrumbs if appropriate (#3832)
Closes #3483.

This PR refactors and simplifies breadcrumb text pluralization. The redesigned
dashboard added a view that shows the user a list of all pods, deployments, etc.
in a namespace. The breadcrumb navigation text needed to be tweaked to correctly
pluralize the resource type selected.
2019-12-16 16:31:45 -08:00
Cynthia S. Garcia aec0f6b6df Fix issue with Community iframe height in dashboard (#3834)
Closes #3764.

This PR fixes an issue where the dashboard would cut off the bottom of the
Community Updates posts (displayed in an iframe) if the browser height was
shorter than the height of the iframe. Related to [#605 in the linkerd website
repo](https://github.com/linkerd/website/pull/605).

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-16 16:11:44 -08:00
Cynthia S. Garcia 9bda237ce3 Fix issue with grid for Tap/Top form (#3783)
Closes #3778. 

Fixes a formatting issue in the dashboard Tap/Top form where if a longer 
resource name was selected, the placement of the buttons was off.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-16 10:06:57 -08:00
Cynthia S. Garcia 2e1bde9ce1 Add some unit tests for namespace select button (#3782)
Adds unit tests for namespace select button in the dashboard.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-16 10:04:01 -08:00
Carol A. Scott 857a03c79c
Update yarn and add network-concurrency flag (#3826)
This PR addresses recent JS unit test failures on CI by: 

* Upgrading yarn from 1.7.0 to 1.21.1 (current stable version) in the Dockerfile 
and Github Actions workflow 
* Wrapping the yarn installation with the --network-concurrency 1 flag, setting the 
maximum number of concurrent network requests to 1, suggested as a fix here:
https://github.com/yarnpkg/yarn/issues/2629
2019-12-13 16:49:52 -08:00
Cynthia S. Garcia 0d93fd2a3b Update enzyme-adapter-react-16 library (#3820)
This PR updates enzyme-adapter-react-16 in preparation for Material UI upgrading
(#3710)

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-13 15:48:08 -08:00
Dax McDonald 3088f404ce Upgrade prometheus to v1.2.1 (#3541)
Signed-off-by: Dax McDonald <dax@rancher.com>
2019-12-11 15:26:16 -08:00
Sergio C. Arteaga cee8e3d0ae Add CronJobs and ReplicaSets to dashboard and CLI (#3687)
This PR adds support for CronJobs and ReplicaSets to `linkerd inject`, the web
dashboard and CLI. It adds a new Grafana dashboard for each kind of resource. 

Closes #3614 
Closes #3630 
Closes #3584 
Closes #3585

Signed-off-by: Sergio Castaño Arteaga tegioz@icloud.com
Signed-off-by: Cintia Sanchez Garcia cynthiasg@icloud.com
2019-12-11 10:02:37 -08:00
Cynthia S. Garcia cda0f8dd15 Fix dashboard unit test warning (#3793)
This PR fixes a dashboard unit test added in #3666 that was passing, but
returning a warning.

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-11 09:38:55 -08:00
Cynthia S. Garcia a36fee66e4 Fix Octopus graph styling in dashboard (#3698)
This PR fixes issues with Octopus graph line styling in the dashboard, and improves 
the UI of the collapsed neighbors display.

Closes #3577

Signed-off-by: Cintia Sanchez Garcia cynthiasg@icloud.com
2019-12-05 11:39:57 -08:00
Cynthia S. Garcia a564609ed5 Update dashboard to React 16.11.0 (#3737)
This PR updates `react` and `react-dom` to version 16.11.0, and `react-router`
and `react-router-dom` to version 5.1.2.

The following breaking changes have been fixed as part of the upgrade:

- Change deprecated `componentWillUpdate` to `componentDidUpdate` 
- Replace`react-url-query` library with `use-query-params` (a Hook) due 
to the deprecation of some React lifecycle methods. This required some 
changes in the Tap, Top, TapQueryForm and TopRoutes components.

Fixes #3617

Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2019-12-04 10:10:56 -08:00
Sergio C. Arteaga 78ed5f8883 Make resource definition available to dashboard (#3666)
This PR allows the dashboard to query for a resource's definition in YAML
format, if the boolean `queryForDefinition` in the `ResourceDetail` component is
set to true. 

This change to the web API and the dashboard component was made for a future
redesigned dashboard detail page. At present, `queryForDefinition` is set to
false and there is no visible change to the user with this PR. 

Signed-off-by: Sergio Castaño Arteaga <tegioz@icloud.com> Signed-off-by: Cintia
Sanchez Garcia <cynthiasg@icloud.com>
2019-12-03 10:25:20 -08:00
Carol A. Scott 66a74b23a7
Adding new browser tests for URL routing in dashboard (#3646)
This PR adds two tests to test the dashboard's new navigation and routing
patterns: url-routing.js and namespace-select.js

It deletes the now-obsolete logo-redirect.js test.
2019-12-02 18:18:34 -08:00
Alejandro Pedraza cf9fa0a8c9
Removed calico logutils dependency, incompatible with go 1.13 (#3763)
* Removed calico logutils dependency, incompatible with go 1.13

Fixes #1153

Removed dependency on
`github.com/projectcalico/libcalico-go/lib/logutils` because it has
problems with go modules, as described in
projectcalico/libcalico-go#1153

Not a big deal since it was only used for modifying the plugin's log
format.
2019-11-29 09:19:11 -05:00