Commit graph

9801 commits

Author SHA1 Message Date
Aestek 9813abcb09 Fix: fail messages after a node rename replace the new node definition (#5520)
When receiving a serf faild message for a node which is not in the
catalog, do not perform a register request to set is serf heath to
critical as it could overwrite the node information and services if it
was renamed.

Fixes : #5518
2019-04-26 21:33:41 +01:00
R.B. Boyer 5a505c5b3a acl: adding support for kubernetes auth provider login (#5600)
* auth providers
* binding rules
* auth provider for kubernetes
* login/logout
2019-04-26 14:49:25 -05:00
R.B. Boyer 9542fdc9bc acl: adding Roles to Tokens (#5514)
Roles are named and can express the same bundle of permissions that can
currently be assigned to a Token (lists of Policies and Service
Identities). The difference with a Role is that it not itself a bearer
token, but just another entity that can be tied to a Token.

This lets an operator potentially curate a set of smaller reusable
Policies and compose them together into reusable Roles, rather than
always exploding that same list of Policies on any Token that needs
similar permissions.

This also refactors the acl replication code to be semi-generic to avoid
3x copypasta.
2019-04-26 14:49:12 -05:00
R.B. Boyer f43bc981e9 making ACLToken.ExpirationTime a *time.Time value instead of time.Time (#5663)
This is mainly to avoid having the API return "0001-01-01T00:00:00Z" as
a value for the ExpirationTime field when it is not set. Unfortunately
time.Time doesn't respect the json marshalling "omitempty" directive.
2019-04-26 14:48:16 -05:00
R.B. Boyer b3956e511c acl: ACL Tokens can now be assigned an optional set of service identities (#5390)
These act like a special cased version of a Policy Template for granting
a token the privileges necessary to register a service and its connect
proxy, and read upstreams from the catalog.
2019-04-26 14:48:04 -05:00
R.B. Boyer 76321aa952 acl: tokens can be created with an optional expiration time (#5353) 2019-04-26 14:47:51 -05:00
Matt Keeler 3ea9fe3bff
Implement bootstrapping proxy defaults from the config file (#5714) 2019-04-26 14:25:03 -04:00
Matt Keeler 3b5d38fb49
Implement config entry replication (#5706) 2019-04-26 13:38:39 -04:00
Matt Keeler 51f2b9d1d4
Update CHANGELOG.md 2019-04-26 12:36:52 -04:00
Matt Keeler 2831c8993d
Move the watch package into the api module (#5664)
* Move the watch package into the api module

It was already just a thin wrapper around the API anyways. The biggest change was to the testing. Instead of using a test agent directly from the agent package it now uses the binary on the PATH just like the other API tests.

The other big changes were to fix up the connect based watch tests so that we didn’t need to pull in the connect package (and therefore all of Consul)
2019-04-26 12:33:01 -04:00
Tyler Ryan db0f464c92 fixing inconsitencies in agent/connect API documentation (#5715) 2019-04-26 12:53:20 +01:00
R.B. Boyer 01c7e4b3df
docs: fix some minor acl related typos (#5711) 2019-04-25 12:24:28 -05:00
Alvin Huang 64860fad30
fix sidebar for install (#5611) 2019-04-25 12:30:35 -04:00
Alvin Huang 96c2c79908
Add fmt and vet (#5671)
* add go fmt and vet

* go fmt fixes
2019-04-25 12:26:33 -04:00
Alvin Huang fe1e688a2e
Add website analytics back (#5699)
* add website analytics to build

* add segment analytics env var check
2019-04-25 12:24:20 -04:00
Kyle Havlovitz 83952c8a3d
Merge pull request #5700 from hashicorp/service-reg-manager
Use centralized service config on agent service registrations
2019-04-25 06:39:50 -07:00
Kyle Havlovitz a113d8ca1f Test an index=0 value in cache.Notify 2019-04-25 02:11:07 -07:00
Freddy 1538a738f2
Update alias checks on local add and remove 2019-04-24 12:17:06 -06:00
Matt Keeler 484e0efaf2
Update CHANGELOG.md 2019-04-24 14:12:54 -04:00
Aestek 6762eeb03c Add support for DNS config hot-reload (#4875)
The DNS config parameters `recursors` and `dns_config.*` are now hot
reloaded on SIGHUP or `consul reload` and do not need an agent restart
to be modified.
Config is stored in an atomic.Value and loaded at the beginning of each
request. Reloading only affects requests that start _after_ the
reload. Ongoing requests are not affected. To match the current
behavior the recursor handler is loaded and unloaded as needed on config
reload.
2019-04-24 14:11:54 -04:00
Kyle Havlovitz c02716ac2c Fix a race in the ready logic 2019-04-24 06:48:11 -07:00
Kyle Havlovitz 1fc96c770b Make central service config opt-in and rework the initial registration 2019-04-24 06:11:08 -07:00
Kyle Havlovitz f89aa69b9d Fix a race in the service updates 2019-04-23 03:31:24 -07:00
Kyle Havlovitz 6faa8ba451 Fill out the service manager functionality and fix tests 2019-04-23 00:17:28 -07:00
Kyle Havlovitz 6aa022c1cd Add the service registration manager to the agent 2019-04-23 00:17:27 -07:00
Kyle Havlovitz d51fd740bf
Merge pull request #5615 from hashicorp/config-entry-rpc
Add RPC endpoints for config entry operations
2019-04-23 00:16:54 -07:00
Kyle Havlovitz e64d1b8016 Rename config entry ACL methods 2019-04-22 23:55:11 -07:00
Freddy fa94b09a99
Clarify -log-rotate-duration string format and default value 2019-04-19 14:07:18 -06:00
Alvin Huang d5abdd2832
Remove old redirects file (#5688)
* add directions on how to update the redirects file

* remove old redirects file
2019-04-18 16:47:09 -04:00
Matt Keeler 960e1fa79e
Add missing token field in the service definition in the docs (#5685)
Fixes #5684
2019-04-18 16:05:51 -04:00
Matt Keeler fc65c02c06
Update CHANGELOG.md 2019-04-18 15:12:04 -04:00
Matt Keeler 913c82ec9f
Update go-msgpack version (#5683)
Fixes #4673
Supercedes: #5677 

There was an error decoding `map[string]string` values due to Go strings being immutable. This was fixes in our go-msgpack fork.
2019-04-18 15:10:34 -04:00
Heechul Ryu e0f08b8a5d Update consul-containers.html.md (#5645)
To reflect the most recent version
2019-04-18 10:35:21 -05:00
joelcollin 110365d6df Fixed minor typos. (#5681) 2019-04-18 10:24:19 -05:00
kaitlincarter-hc 64a2e486f5
[docs] Leader Election Guide Updates (#5654)
* Updating the Leader Election guide.

* Update website/source/docs/guides/leader-election.html.md

* updating key name

* Update website/source/docs/guides/leader-election.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>

* Update website/source/docs/guides/leader-election.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>
2019-04-17 16:16:15 -05:00
kaitlincarter-hc 6cbd67f9df
Updating network connectivity section based on feedback from Pavani. (#5612) 2019-04-17 16:12:30 -05:00
R.B. Boyer 97b7ae7964
tests: actually have TestSessionTTLRenew sleep during execution (#5669)
Due to an unintended order of operations issue with integer division
TestSessionTTLRenew was sleeping for 0s every time.

Also add explicit failures for when the various session renewal returns
nil unexpectedly.
2019-04-17 15:52:23 -05:00
kaitlincarter-hc 9dd2eb71a4
[docs] Geo Failover (#5641)
* Updated the headers, code snippets, and some language.

* Update website/source/docs/guides/geo-failover.html.md

* Changed banking-app to payments

* Update website/source/docs/guides/geo-failover.html.md

Co-Authored-By: kaitlincarter-hc <43049322+kaitlincarter-hc@users.noreply.github.com>
2019-04-17 13:27:57 -05:00
kaitlincarter-hc 7859d8c409
[docs] Server Performance (#5627)
* Moving server performance guide to docs.

* fixing broken links

* updating broken link

* fixing broken links
2019-04-17 13:17:12 -05:00
Paul Banks bd69480fe1
Update CHANGELOG.md 2019-04-17 18:06:22 +01:00
Matt Keeler 1ebe11fa63
Update Consul-Dev.dockerfile (#5678)
This was putting the new binary on the wrong path so this wasn't updating the docker image in any effectual way.
2019-04-17 12:21:24 -04:00
Judith Malnick b441622564 Remove redundant word. 2019-04-16 16:03:03 -06:00
kaitlincarter-hc 5448b1a026
[docs] Windows Guide (#5626)
* Updating the windows guide for the migration.

* adding config dir option
2019-04-16 16:14:10 -05:00
Hans Hasselberg 9c7c8eb4a8
Update CHANGELOG.md 2019-04-16 20:38:20 +02:00
Matt Keeler 656c2cc6d0
Fix some broken links (#5670) 2019-04-16 12:40:03 -04:00
Freddy c5067ee4d1
Filter non-passing nodes without modifying cache 2019-04-16 10:29:34 -06:00
Matt Keeler c733cdb5a3
Update CHANGELOG.md 2019-04-16 12:02:03 -04:00
Matt Keeler ac78c23021
Implement data filtering of some endpoints (#5579)
Fixes: #4222 

# Data Filtering

This PR will implement filtering for the following endpoints:

## Supported HTTP Endpoints

- `/agent/checks`
- `/agent/services`
- `/catalog/nodes`
- `/catalog/service/:service`
- `/catalog/connect/:service`
- `/catalog/node/:node`
- `/health/node/:node`
- `/health/checks/:service`
- `/health/service/:service`
- `/health/connect/:service`
- `/health/state/:state`
- `/internal/ui/nodes`
- `/internal/ui/services`

More can be added going forward and any endpoint which is used to list some data is a good candidate.

## Usage

When using the HTTP API a `filter` query parameter can be used to pass a filter expression to Consul. Filter Expressions take the general form of:

```
<selector> == <value>
<selector> != <value>
<value> in <selector>
<value> not in <selector>
<selector> contains <value>
<selector> not contains <value>
<selector> is empty
<selector> is not empty
not <other expression>
<expression 1> and <expression 2>
<expression 1> or <expression 2>
```

Normal boolean logic and precedence is supported. All of the actual filtering and evaluation logic is coming from the [go-bexpr](https://github.com/hashicorp/go-bexpr) library

## Other changes

Adding the `Internal.ServiceDump` RPC endpoint. This will allow the UI to filter services better.
2019-04-16 12:00:15 -04:00
Alvin Huang 4a103c8cb5
interpolate properly (#5665) 2019-04-15 15:29:19 -04:00
Alvin Huang 2da7967106
Share Fastly and Netlify redirects (#5619)
* consolidate netlify and fastly redirects

* remove validation check to support full url redirects
2019-04-15 14:56:53 -04:00