Commit Graph

15439 Commits

Author SHA1 Message Date
Daniel Nephin b2f49279e2 ca: split Primary/Secondary Provider
To make it more clear which methods are necessary for each scenario. This can
also prevent problems which force all DCs to use the same Vault instance, which
is currently a problem.
2021-10-10 15:48:02 -04:00
Daniel Nephin 1d14889eca ca: extract primaryUpdateRootCA
This function is only run when the CAManager is a primary. Extracting this function
makes it clear which parts of UpdateConfiguration are run only in the primary and
also makes the cleanup logic simpler. Instead of both a defer and a local var we
can call the cleanup function in two places.
2021-10-10 15:26:55 -04:00
Daniel Nephin 0bc812a8e5 ca: rename functions to use a primary or secondary prefix
This commit renames functions to use a consistent pattern for identifying the functions that
can only be called when the Manager is run as the primary or secondary.

This is a step toward eventually creating separate types and moving these methods off of CAManager.
2021-10-10 15:26:55 -04:00
Daniel Nephin eaea56c7b2 ca: make receiver variable name consistent
Every other method uses c not ca
2021-10-10 15:26:55 -04:00
Pamela Bortnick 73730d356c
Consul on Kuberntes Link (#11265)
* Add linke to consul on kubernetes page in homepage

* Remove eyebrow
2021-10-08 14:14:31 -07:00
Pamela Bortnick d420015c3c
[Assembly] Consul on Kubernetes Page (#11047)
* Start new page

* reset

* Consul on Kubernetes - Features List Section (#11078)

* Fix conflicts

* Start adding and placing content

* Add a lot of styling and background image

* Looking like design. Before adding more global styles

* Work on editing styles

* Move imports and switch to flex

* Add more styles and bottom left background image

* Fix conflicts

* Fix styles on mobile

* Change images path in public

* Updates from code review - Move data and update styles

* Convert to tsx and add types

* Change button props to get desired styling without using css

* Remove margin on mobile

* Consul On Kubernetes - Hero (#11089)

* Start hero section

* Increase max sizes for container

* Minor Edits

* Use g-grid-container

* Edit video styles and test

* Rename component

* Start moving global styles over

* Move hero styles to locl

* Remove composes g-hero

* Fix flex basis on media

* Add display flex to media

* Clean up some styles

* Consul On Kubernetes - Block List (#11114)

* Start block list

* Enter data and start styles

* Get all images in and update styles

* Move data and convert to ts

* Add comment in page

* Consul On Kubernetes - Side by Side Section (#11122)

* Start block list

* Enter data and start styles

* Get all images in and update styles

* Start side by side

* Add content and more styles

* Some more styles

* Add styles for text and titles

* Edit styles and clean

* Fix spacing between button and text in overview

* Delete public folder

* Fix images in block on page

* remove extra file

* Fix classnames import

* Use fragment

* Consul On Kubernetes - Docs List Component (#11150)

* Add docs list component

* Add docs list content

* Change type declaration

* Remove unecessary style

* Use fragment

* Change icons

* Consul On Kubernetes - Card List & Get Started Section  (#11168)

* Start card list component

* Begin adding content

* Start wrapper styles

* Add more styles for card

* Fix style

* Edit styles

* Use next Link

* Add minor formatting

* Make entire card a link

* Add transition

* Change import

* Use svg instead of button and  make target blank

* Move wrapper div to component and add classname prop, use color variable for border

* Change min of card in grid

* Less pxels for min

* Update copy

* Consul on Kubernetes Content (#11179)

* Add content so far

* Add hero content and switch video to embed - needs editing

* Add overview and docs links

* Use iframe in hero and style

* Remove = null on prop

* Add learn tutorials content so far

* Change learn tutorials content

* Change placeholder learn content

* Add requested copy updates

* Align numbers

* Consul on Kubernetes Content & Design Updates (#11217)

* Update docs icons

* Update learn cards

* Update challenges icon

* Video poster pending

* New image

* Add split up background images

* Looking pretty good

* Fix up background image

* Add more styles

* Add meta description and new feature images

* Revert img change

* Fix up images and replace poster

* Switch to grid

* Move images

* Clean up styles

* Change hero button text

* Update styles for hero video

* Update youtube url

* Use gray variable

* Consul on Kubernetes Metadata (#11219)

* Add meta data for sharing

* Test

* Test 2

* Add meta title

* Update share image

* CHange name

* Test

* Test again

* Use relative url

* Swap urls for hero ctas

* Update tutorial card to be uniform

* Change overview button text

* Resolve conflicts and fix dependencies
2021-10-08 15:50:36 -04:00
FFMMM a0bba9171d
fix consul_autopilot_healthy metric emission (#11231)
https://github.com/hashicorp/consul/issues/10730
2021-10-08 10:31:50 -07:00
Kenia fca0e117e5
ui: Instructions for branch naming pattern (#11256)
* Instructions for branch naming pattern

* fix
2021-10-08 13:09:06 -04:00
David Yu 8988427086
docs: Remove Ambassador docs since they are outdated and link to Learn Guide (#11251)
* docs: Remove Ambassador docs since they are outdated
* Relink to Learn guide
2021-10-08 09:05:25 -07:00
John Cowen baa377ddca
ui: Adds initial CRUD for partitions (#11188)
* Add `is` and `test` helpers in a similar vein to `can`

Adds 2 new helpers in a similar vein to ember-cans can:

- `is` allows you to use vocab/phrases such as (is "something model") which calls isSomething() on the models ability.
- `test` allows you to use vocab/phrases such as (test "is something model") or (test "can something model")which calls isSomething() / canSomething() on the models ability. Mostly using the is helper and the can helper. It's basically the is/can helper combined.

* Adds TextInput component + related modifiers/helpers/machines/services (#11189)

Adds a few new components/modifiers/helpers to aid building forms.

- state-chart helper, used in lieu of a more generic approach for requiring our statecharts.
- A few modifications to our existing disabled modifier.
- A new 'validation' modifier, a super small form validation approach built to make use of state charts (optionally). Eventually we should be able to replace our current validation approach (ember-changeset-validations + extra deps) with this.
- A new TextInput component, which is the first of our new components specifically to make it easy to build forms with validations. This is still a WIP, I left some comments in pointing out where this one would be progressed, but as we don't need the planned functionality yet, I left it where it was. All of this will be fleshed out more at a later date.

Documentation is included for all of ^

* ui: Adds initial CRUD for partitions (#11190)

Adds basic CRUD support for partitions. Engineering-wise probably the biggest takeaway here is that we needed to write very little javascript code to add this entire feature, and the little javascript we did need to write was very straightforwards. Everything is pretty much just HTML. Another note to make is that both ember-changeset and ember-data (model layer things) are now completely abstracted away from the view layer of the application.

New components:

- Consul::Partition::Form
- Consul::Partition::List
- Consul::Partition::Notifications
- Consul::Partition::SearchBar
- Consul::Partition::Selector

See additional documentation here for more details

New Route templates:

- index.hbs partition listing/searching/filtering
- edit.hbs partition editing and creation

Additionally:

There is some additional debug work here for better observability and to prevent any errors regarding our href-to usage when a dc is not available in our documentation site.

Our softDelete functionality has been DRYed out a little to be used across two repos.

isLinkable was removed from our ListCollection component for lists like upstream and service listing, and instead use our new is helper from within the ListCollection, meaning we've added a few more lighterweight templateOnly components.

* ui: Exclude all debug-like files from the build (#11211)

This PR adds **/*-debug.* to our test/prod excluded files (realised I needed to add test-support.js also so added that here as its more or less the same thing). Conditionally juggling ES6 static imports (specifically debug ones) for this was also getting a little hairy, so I moved it all to use the same approach as our conditional routes. All in all it brings the vendor build back down to ~430kb gzipped.
2021-10-08 16:29:30 +01:00
Paul Banks 6c6c75707c
Merge pull request #11037 from hashicorp/docs/mesh-header-manip
Document HTTP Header manipulation options added in #10613
2021-10-08 13:11:44 +01:00
Paul Banks 3da2fbdc63 Wording improvements from review 2021-10-08 12:26:11 +01:00
Luke Kysow d5445d8156
Document running tcpdump on Consul servers (#11249)
* Document running tcpdump on Consul servers

* Update website/content/docs/troubleshoot/faq.mdx

Co-authored-by: Daniel Nephin <dnephin@hashicorp.com>
2021-10-07 15:17:00 -07:00
John Cowen 76cbe6ea86
github: Amends to the UI issue template (#11199)
Some updates to the UI specific issue template.

The previous 'Old UI or New UI' question is no longer relevant and considering the amount of visual change we've had, this leads to folks answering things like 'Consul 1.10.0+ent with new, new UI'. Now it's just "The Consul UI".

I mainly took the rest from the current Consul Core issue template but made it relevant to the UI both for issues/bugfixes and for suggestions/improvements.
2021-10-07 19:24:04 +01:00
John Cowen b8166de30d
ui: Replaces almost all remaining instances of SASS variables with CSS (#11200)
From an engineers perspective, whenever specifying colors from now on we should use the form:

```
color: rgb(var(--tone-red-500));
```

Please note:

- Use rgb. This lets us do this like rgb(var(--tone-red-500) / 10%) so we can use a 10% opacity red-500 if we ever need to whilst still making use of our color tokens.
- Use --tone-colorName-000 (so the prefix tone). Previously we could use a mix of --gray-500: $gray-500 (note the left hand CSS prop and right hand SASS var) for the things we need to theme currently. As we no longer use SASS we can't do --gray-500: --gray-500, so we now do --tone-gray-500: --gray-500.

Just for clarity after that, whenever specifying a color anywhere, use rgb and --tone. There is only one reason where you might not use tone, and that is if you never want a color to be affected by a theme (for example a background shadow probably always should use --black)

There are a 2 or 3 left for the code editor, plus our custom-query values
2021-10-07 19:21:11 +01:00
John Cowen a9fe39e035
ui: Fix up blocking reconciliation for multiple models (#11237)
> In the future, this should all be moved to each individual repository now, which will mean we can finally get rid of this service.

This PR moves reconciliation to 'each individual repository'. I stopped short of getting rid of the service, but its so small now we pretty much don't need it. I'd rather wait until I look at the equivalent DataSink service and see if we can get rid of both equivalent services together (this also currently dependant on work soon to be merged)

Reconciliation of models (basically doing the extra work to clean up the ember-data store and bring our frontend 'truth' into line with the actual backend truth) when blocking/long-polling on different views/filters of data is slightly more complicated due to figuring out what should be cleaned up and what should be left in the store. This is especially apparent for KVs.

I built in a such a way to hopefully make sure it will all make sense for the future. I also checked that this all worked nicely with all our models, even KV which has never supported blocking queries. I left all that work in so that if we want to enable blocking queries/live updates for KV it now just involves deleting a couple of lines of code.

There is a tonne of old stuff that we can clean up here now (our 'fake headers' that we pass around) and I've added that to my list of thing for a 'Big Cleanup PR' that will remove lots of code that we no longer require.
2021-10-07 12:38:04 +01:00
R.B. Boyer 2d05164be1
add changelog entry for enterprise fix (#11226) 2021-10-05 14:44:53 -05:00
Evan Culver d5c9431f50
Merge pull request #11205 from jmgilman/libraries-and-sdks
Adds consulrs Rust client library to SDK list
2021-10-05 20:58:05 +02:00
Bryce Kalow 2ddcd79419
website: upgrades dependencies (#11178) 2021-10-05 13:32:41 -05:00
Joshua Montgomery 8eb5915f7d
Fixing SOA record to use alt domain when alt domain in use (#10431) 2021-10-05 10:47:27 -04:00
trujillo-adam 937fd10041
Merge pull request #11214 from hashicorp/docs-k8s-cli-add-version-command
added version flag to consul-k8s cli docs
2021-10-04 18:51:23 -07:00
trujillo-adam 3cebcd053d fixed command in install section 2021-10-04 18:45:57 -07:00
trujillo-adam 853512f479 added version flag to consul-k8s cli docs 2021-10-04 16:05:32 -07:00
Daniel Nephin ab587f5221
Merge pull request #11182 from hashicorp/dnephin/acl-legacy-remove-upgrade
acl: remove upgrade from legacy, start in non-legacy mode
2021-10-04 17:25:39 -04:00
Evan Culver e808620463
Merge pull request #11118 from hashicorp/eculver/remove-envoy-1.15
Remove support for Envoy 1.15
2021-10-04 23:14:24 +02:00
Evan Culver c7747212c3
Merge pull request #11115 from hashicorp/eculver/envoy-1.19.1
Add support for Envoy 1.19.1
2021-10-04 23:13:26 +02:00
Daniel Nephin c7f74deb17 acl: remove updateEnterpriseSerfTags
The only remaining caller is a test helper, and the tests don't use the enterprise gossip
pools.
2021-10-04 17:01:51 -04:00
Daniel Nephin 9b1d2685bf
Merge pull request #11126 from hashicorp/dnephin/acl-legacy-remove-resolve-and-get-policy
acl: remove ACL.GetPolicy RPC endpoint and ACLResolver.resolveTokenLegacy
2021-10-04 16:29:51 -04:00
Daniel Nephin 2ba9b43ff7
Merge pull request #11210 from hashicorp/dnephin/fix-raft-authz-error
rpc: include error for AuthorizeServerConn failures
2021-10-04 16:18:57 -04:00
Daniel Nephin 3f873d2257 rpc: include error for AuthorizeServerConn failures
The errs were not being captured because the value of append was not being assigned.
2021-10-04 13:22:30 -04:00
Joshua Gilman d37ace2728
Adds consulrs Rust client library to SDK list 2021-10-01 19:29:31 -07:00
Daniel Nephin a1e3fa818c acl: fix test failures caused by remocving legacy ACLs
This commit two test failures:

1. Remove check for "in legacy ACL mode", the actual upgrade will be removed in a following commit.
2. Remove the early WaitForLeader in dc2, because with it the test was
   failing with ACL not found.
2021-10-01 18:03:10 -04:00
Evan Culver db397d62c5
Add 1.15 versions to too old list 2021-10-01 11:28:26 -07:00
Evan Culver 93ef3fb935
Merge branch 'eculver/envoy-1.19.1' into eculver/remove-envoy-1.15 2021-10-01 11:26:52 -07:00
Evan Culver df4bc6a924
Update default version in command docs 2021-10-01 11:13:34 -07:00
Chris S. Kim 1c9b58a8af
agent: Reject partitions in legacy intention endpoints (#11181) 2021-10-01 13:18:57 -04:00
Chris S. Kim 53a35181e5
Support partitions in parseIntentionStringComponent (#11202) 2021-10-01 12:36:12 -04:00
Dhia Ayachi a5b09493ab
fix token list by auth method (#11196)
* add tests to OIDC authmethod and fix entMeta when retrieving auth-methods

* fix oss compilation error
2021-10-01 12:00:43 -04:00
John Cowen 8b002d086a
ui: Address some Admin Partition FIXMEs (#11057)
This commit addresses some left over admin partition FIXMEs

1. Adds Partition correctly to Service Instances
2. Converts non-important 'we can do this later' FIXMEs to TODOs
3. Removes some FIXMEs that I've double checked and addressed.

Most of the remaining FIXMEs I'm waiting on responses to questions from
the consul core folks for. I'll address those in a separate PR.
2021-10-01 11:07:58 +01:00
trujillo-adam 887a23deb1
Merge pull request #11185 from hashicorp/docs-improve-agent-overview
providing additional information about the Consul agent
2021-09-30 15:57:20 -07:00
trujillo-adam f5108e4683 applied feedback, moved the Lifecycle info to the front 2021-09-30 11:41:37 -07:00
Evan Culver e41830af8a
Merge branch 'eculver/envoy-1.19.1' into eculver/remove-envoy-1.15 2021-09-30 11:32:28 -07:00
Evan Culver fdbb742ffd
regenerate more envoy golden files 2021-09-30 10:57:47 -07:00
Kenia 5e7ef183ea
ui: Use of header default ACL policy (#11192)
* Use of header default ACL policy

* Update test for dc serializer
2021-09-30 13:01:48 -04:00
John Cowen 35a92e856b
ui: Make it hard to not URLEncode DataSource srcs/URIs (#11117)
Our DataSource came in very iteratively, when we first started using it we specifically tried not to use it for things that would require portions of the @src="" attribute to be URL encoded (so things like service names couldn't be used, but dc etc would be fine). We then gradually added an easy way to url encode the @src="" attributes with a uri helper and began to use the DataSource component more and more. This meant that some DataSource usage continued to be used without our uri helper.

Recently we hit #10901 which was a direct result of us not encoding @src values/URIs (I didn't realise this was one of the places that required URL encoding) and not going back over things to finish things off once we had implemented our uri helper, resulting in ~half of the codebase using it and ~half of it not.

Now that almost all of the UI uses our DataSource component, this PR makes it even harder to not use the uri helper, by wrapping the string that it requires in a private URI class/object, that is then expected/asserted within the DataSource component/service. This means that as a result of this PR you cannot pass a plain string to the DataSource component without seeing an error in your JS console, which in turn means you have to use the uri helper, and it's very very hard to not URL encode any dynamic/user provided values, which otherwise could lead to bugs/errors similar to the one mentioned above.

The error that you see when you don't use the uri helper is currently a 'soft' dev time only error, but like our other functionality that produces a soft error when you mistakenly pass an undefined value to a uri, at some point soon we will make these hard failing "do not do this" errors.

Both of these 'soft error' DX features have been used this to great effect to implement our Admin Partition feature and these kind of things will minimize the amount of these types of bugs moving forwards in a preventative rather than curative manner. Hopefully these are the some of the kinds of things that get added to our codebase that prevent a multitude of problems and therefore are often never noticed/appreciated.

Additionally here we moved the remaining non-uri using DataSources to use uri (that were now super easy to find), and also fixed up a place where I noticed (due to the soft errors) where we were sometimes passing undefined values to a uri call.

The work here also led me to find another couple of non-important 'bugs' that I've PRed already separately, one of which is yet to be merged (#11105), hence the currently failing tests here. I'll rebase that once that PR is in and the tests here should then pass 🤞

Lastly, I didn't go the whole hog here to make DataSink also be this strict with its uri usage, there is a tiny bit more work on DataSink as a result of recently work, so I may (or may not) make DataSink equally as strict as part of that work in a separate PR.
2021-09-30 15:54:46 +01:00
John Cowen a20bc5dbf1
docs: Call out the UI in README and include details for contributing to it (#11187) 2021-09-30 13:34:28 +01:00
trujillo-adam 0567e2d549 providing additional information about the Consul agent 2021-09-29 16:51:03 -07:00
Daniel Nephin 4faf805716 acl: call stop for the upgrade goroutine when done
TestAgentLeaks_Server was reporting a goroutine leak without this. Not sure if it would actually
be a leak in production or if this is due to the test setup, but seems easy enough to call it
this way until we remove legacyACLTokenUpgrade.
2021-09-29 17:36:43 -04:00
Daniel Nephin 02da08ce77 acl: only run startACLUpgrade once
Since legacy ACL tokens can no longer be created we only need to run this upgrade a single
time when leadership is estalbished.
2021-09-29 16:22:01 -04:00
FFMMM 8bb6d8571c
wrap few doRequest calls for error handling (#11158) 2021-09-29 13:12:15 -07:00