Commit graph

18334 commits

Author SHA1 Message Date
Tim Gross 42f9d517d8
CSI volumewatcher testability improvments (#7889)
* volumewatcher: remove redundant log fields

The constructor for `volumeWatcher` already sets a `logger.With` that
includes the volume ID and namespace fields. Remove them from the
various trace logs.

* volumewatcher: advance state for controller already released

One way of bypassing client RPCs in testing is to set a claim status
to controller-detached, but this results in an incorrect claim state
when we checkpoint.
2020-05-07 15:57:24 -04:00
Seth Hoenig 20d7a76d2c docs: mention Connect ACLs guide in jobspec connect docs
Promote the Connect ACLs guide on the jobspec connect stanza docs
page. This was suggested in a ticket after someone got stuck not
realizing they needed to enable Consul Intentions for their connect
enabled services, which is covered in the guide.
2020-05-07 13:53:22 -06:00
Seth Hoenig 2de039d570 docs: update examples for connect jobspec docs
Replace the existing top example with something that is directly
runnable on a `-dev-connect` nomad setup.

Add the _complete_ `countdash` example at the bottom in the
examples section, so that people do not need to go guide-hunting
to find a complete example. The hope is people will see more
runnable examples and be less afraid of connect.
2020-05-07 13:45:13 -06:00
Michael Lange f1904cf22b
Merge pull request #7886 from hashicorp/f/csi-missing-prop-for-plugin-list
Add ControllersExpected to the PluginListStub
2020-05-07 10:39:58 -07:00
Seth Hoenig b82e75c347 docs: improve connect expose path examples
This change replaces the top example for expose path configuration with
two new runnable examples. Users should be able to copy and paste those
jobs into a job file and run them against a basic connect enabled nomad
setup.

The example presented first demonstrates use of the service check expose
parameter with no dynamic port explicitly defined (new to 0.11.2).
This is expected to be the "90%" use case of users, and so we should
try to emphasise this pattern as best practice.

The example presented second demonstrates achieving the same goal as the
first exmaple, but utilizing the full plumbing available through the
`connect.proxy.expose` stanza. This should help readers comprehend what
is happening "under the hood".
2020-05-07 11:03:37 -06:00
Michael Lange 1a9631dbfa Add ControllersExpected to the PluginListStub 2020-05-07 10:01:52 -07:00
Drew Bailey 479905a880
Merge pull request #7885 from hashicorp/update-license-output
update license output
2020-05-07 12:50:00 -04:00
Drew Bailey fde40046a1
update license output 2020-05-07 12:14:15 -04:00
Seth Hoenig a1c198b3e0
Merge pull request #7781 from hashicorp/demo-countdash-docker
demo: create build scripts for our countdash demo
2020-05-07 08:34:20 -06:00
Michael Lange 0e31854213
Merge pull request #7872 from hashicorp/f-ui/csi-phase-2
UI: CSI Plugins Pages
2020-05-06 18:02:41 -07:00
Michael Lange 11a42b6075 Acceptance test for PluginDetail 2020-05-06 17:36:45 -07:00
Michael Lange f3bae3b535 Don't wrap between icons and health text 2020-05-06 17:22:42 -07:00
Michael Lange 38c03f180b Use lazyClick to avoid multiple transitionToRoutes being in flight as once 2020-05-06 17:22:42 -07:00
Michael Lange 2369254a3e Refactor AllocationRow qualifyAllocation
There was a missing edge case where a job is pending. I took the moment
to also refactor the code to use async/await which cleaned up the
promise chaining.
2020-05-06 17:22:42 -07:00
Michael Lange f9882d42e6 Plugin detail page object 2020-05-06 17:21:49 -07:00
Michael Lange 517db723cd Sort allocations on the plugin detail page 2020-05-06 17:21:49 -07:00
Michael Lange 41c4746aaf Test coverage for the plugins list page 2020-05-06 17:21:48 -07:00
Michael Lange e98095bcbd Page object for Plugins List 2020-05-06 17:21:48 -07:00
Michael Lange 59bb9a516e Correct the table headers for dates on the volume page 2020-05-06 17:21:48 -07:00
Michael Lange 665ba3b2f7 Add a nodes table as well 2020-05-06 17:21:48 -07:00
Michael Lange 105e7203cf Set color in addition to fill for the icon class
Structure icons have fill set to currentColor hardcored in their markup.
This mean setting fill to a color in CSS does nothing, but setting color
now does.
2020-05-06 17:21:47 -07:00
Michael Lange 4ec53234d1 Add icons to the plugin alloc row component 2020-05-06 17:21:47 -07:00
Michael Lange 874556704d Use the correct plugin property for the breadcrumb 2020-05-06 17:21:47 -07:00
Michael Lange 778e7fdb07 New PluginAllocationRow derivative of AllocationRow 2020-05-06 17:21:46 -07:00
Michael Lange 7c56fcaecb Emulate belongsTo relationship in storage fragments 2020-05-06 17:21:46 -07:00
Michael Lange 6f84c685b6 Add short option to date formatters 2020-05-06 17:21:46 -07:00
Michael Lange 210f6cdb00 Update storage controller mirage code to accommodate EDMF's lack of relationships 2020-05-06 17:21:46 -07:00
Michael Lange ca6849ebaa Refactor AllocationRow to use AllocationStat 2020-05-06 17:21:45 -07:00
Michael Lange f55133e76e Separate AllocationStat component for containing the multiple states a stat tracker can be in 2020-05-06 17:21:45 -07:00
Michael Lange d94177085e Setup the plugin detail page 2020-05-06 17:21:45 -07:00
Michael Lange ffcaef6b22 Model out the rest of the CSI Plugin properties 2020-05-06 17:21:44 -07:00
Michael Lange b3f140fee6 Plugins table on the plugins list page 2020-05-06 17:21:44 -07:00
Michael Lange bf35d92224 Clean up the csi volume page 2020-05-06 17:21:44 -07:00
Michael Lange 7d524ac341 Set up routes, controllers, and template basics for the plugins page 2020-05-06 17:21:43 -07:00
Michael Lange dba9a25a13 Add a subnav to the volumes page 2020-05-06 17:21:43 -07:00
Michael Lange 1b47885bdb Update plugin model and serializer to match final API 2020-05-06 17:21:42 -07:00
Michael Lange 343d4e0b81 Add constraints table to the volume detail page 2020-05-06 17:21:42 -07:00
Tim Gross 801ebcfe8d
periodic GC for CSI plugins (#7878)
This changeset implements a periodic garbage collection of unused CSI
plugins. Plugins are self-cleaning when the last allocation for a
plugin is stopped, but this feature will cover any missing edge cases
and ensure that upgrades from 0.11.0 and 0.11.1 get any stray plugins
cleaned up.
2020-05-06 16:49:12 -04:00
Buck Doyle 95c938b75b
Migrate page objects away from jQuery (#7843)
This is part of #7834’s jQuery removal goal. It addresses a couple of jQuery-related deprecation warnings and also uses “native events mode” for ember-cli-page-object, which is needed so it doesn’t have to use jQuery via the Ember global.
2020-05-06 15:14:12 -05:00
Jeff Escalante d380784764 update to latest nextjs-scripts 2020-05-06 16:12:34 -04:00
Jeff Escalante c1ad6b0862 fix some highlighting issues 2020-05-06 16:12:34 -04:00
Jeff Escalante 00e5b12a09 update deps 2020-05-06 16:12:34 -04:00
Jeff Escalante 3f2b6a2ca4 switch themes 2020-05-06 16:12:34 -04:00
Jeff Escalante b579c4e255 initial stab at prism highlighting 2020-05-06 16:12:34 -04:00
Buck Doyle 0b2fc7532d
UI: Remove Ember Freestyle (#7839)
This completes the migration to Storybook by replacing the colour palette and typeface components that I left out.
2020-05-06 15:11:15 -05:00
Michael Lange 034eeb1ddb
Merge pull request #7855 from hashicorp/b-ui/alloc-wrong-reserved-resources
UI: Make allocation reference own task group instead of job's task group when job versions don't match
2020-05-06 10:08:37 -07:00
Mahmood Ali 1e404a904c
Merge pull request #7874 from hashicorp/b-ui/node-status-running-allocs
ui: only count running allocations in client view
2020-05-06 12:12:17 -04:00
Tim Gross 00c9bd7ff0
reorder volume claim batch request raft message (#7871)
For backwards compatibility during upgrades, new raft message types
need to come at the end of the enum.
2020-05-06 08:57:51 -04:00
Mahmood Ali 24e0c7f081 ui: only count running allocations in client view
In the client view list, only show running allocations count for each
client, rather than include already completed tasks.

This is done for two reasons:

First, consitency with the CLI: `nomad node status --allocs` only
shows running allocs.

Second, and more importantly, the count is useful to estimate how loaded
the clients are.  Allocs that have completed (but not GCed yet) have
very little value to operators.
2020-05-05 21:31:58 -04:00
Tim Gross ce86a594a6
csi: fix plugin counts on node update (#7844)
In this changeset:

* If a Nomad client node is running both a controller and a node
  plugin (which is a common case), then if only the controller or the
  node is removed, the plugin was not being updated with the correct
  counts.
* The existing test for plugin cleanup didn't go back to the state
  store, which normally is ok but is complicated in this case by
  denormalization which changes the behavior. This commit makes the
  test more comprehensive.
* Set "controller required" when plugin has `PUBLISH_READONLY`. All
  known controllers that support `PUBLISH_READONLY` also support
  `PUBLISH_UNPUBLISH_VOLUME` but we shouldn't assume this.
* Only create plugins when the allocs for those plugins are
  healthy. If we allow a plugin to be created for the first time when
  the alloc is not healthy, then we'll recreate deleted plugins when
  the job's allocs all get marked terminal.
* Terminal plugin alloc updates should cleanup the plugin. The client
  fingerprint can't tell if the plugin is unhealthy intentionally (for
  the case of updates or job stop). Allocations that are
  server-terminal should delete themselves from the plugin and trigger
  a plugin self-GC, the same as an unused node.
2020-05-05 15:39:57 -04:00