profile
viewpoint
Kyle Havlovitz kyhavlov HashiCorp

hashicorp/consul-esm 182

External service monitoring for Consul

kyhavlov/consul-alerting 21

Simple, distributed alerting for Consul

kyhavlov/carbon 0

Carbon is one of the components of Graphite, and is responsible for receiving metrics over the network and writing them down to disk using a storage backend.

kyhavlov/carbon-cassandra-plugin 0

A backend plugin for Megacarbon to talk with Cassandra

kyhavlov/collectd-elasticsearch 0

Collectd ElasticSearch plugin

kyhavlov/consul 0

Consul is a tool for service discovery, monitoring and configuration.

kyhavlov/consul-replicate 0

Consul cross-DC KV replication daemon

kyhavlov/engo 0

Engo is an open-source 2D game engine written in Go.

issue openedhashicorp/consul

hashicorp-consul-server-0 pod is dying with SIGSEGV

I've encountered this issue a few times. I have consul deployed on my minikube cluster using the helm chart listed in the tutorial (though I also enabled syncCatalog).

Things seem to work well for a while, but then at some point, often after restarting minikube, the consul server will get into a crash loop

kubectl logs hashicorp-consul-server-0
==> Starting Consul agent...
           Version: '1.9.1'
           Node ID: '2b24045a-08bd-14cb-669c-4f6e4177a10d'
         Node name: 'hashicorp-consul-server-0'
        Datacenter: 'minidc' (Segment: '<all>')
            Server: true (Bootstrap: true)
       Client Addr: [0.0.0.0] (HTTP: 8500, HTTPS: -1, gRPC: -1, DNS: 8600)
      Cluster Addr: 172.17.0.5 (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false, Auto-Encrypt-TLS: false

==> Log data will now stream in as it occurs:

    2021-01-20T17:17:22.452Z [WARN]  agent: BootstrapExpect is set to 1; this is the same as Bootstrap mode.
    2021-01-20T17:17:22.452Z [WARN]  agent: bootstrap = true: do not enable unless necessary
    2021-01-20T17:17:22.558Z [WARN]  agent.auto_config: BootstrapExpect is set to 1; this is the same as Bootstrap mode.
    2021-01-20T17:17:22.558Z [WARN]  agent.auto_config: bootstrap = true: do not enable unless necessary
    2021-01-20T17:17:22.665Z [INFO]  agent.server.raft: restored from snapshot: id=8-16385-1611097981735
    2021-01-20T17:17:22.955Z [INFO]  agent.server.raft: initial configuration: index=18522 servers="[{Suffrage:Voter ID:2b24045a-08bd-14cb-669c-4f6e4177a10d Address:172.17.0.8:8300}]"
    2021-01-20T17:17:22.955Z [INFO]  agent.server.raft: entering follower state: follower="Node at 172.17.0.5:8300 [Follower]" leader=
    2021-01-20T17:17:22.956Z [INFO]  agent.server.serf.wan: serf: EventMemberJoin: hashicorp-consul-server-0.minidc 172.17.0.5
    2021-01-20T17:17:22.956Z [WARN]  agent.server.serf.wan: serf: Failed to re-join any previously known node
    2021-01-20T17:17:22.957Z [INFO]  agent.server.serf.lan: serf: EventMemberJoin: hashicorp-consul-server-0 172.17.0.5
    2021-01-20T17:17:22.957Z [INFO]  agent.router: Initializing LAN area manager
    2021-01-20T17:17:22.957Z [INFO]  agent.server.serf.lan: serf: Attempting re-join to previously known node: minikube: 172.17.0.4:8301
    2021-01-20T17:17:22.957Z [INFO]  agent.server: Handled event for server in area: event=member-join server=hashicorp-consul-server-0.minidc area=wan
    2021-01-20T17:17:22.957Z [INFO]  agent.server: Adding LAN server: server="hashicorp-consul-server-0 (Addr: tcp/172.17.0.5:8300) (DC: minidc)"
    2021-01-20T17:17:22.957Z [INFO]  agent: Started DNS server: address=0.0.0.0:8600 network=udp
    2021-01-20T17:17:22.957Z [INFO]  agent: Started DNS server: address=0.0.0.0:8600 network=tcp
    2021-01-20T17:17:23.051Z [INFO]  agent.server.serf.lan: serf: EventMemberJoin: minikube 172.17.0.4
    2021-01-20T17:17:23.051Z [INFO]  agent: Starting server: address=[::]:8500 network=tcp protocol=http
    2021-01-20T17:17:23.150Z [WARN]  agent: DEPRECATED Backwards compatibility with pre-1.9 metrics enabled. These metrics will be removed in a future version of Consul. Set `telemetry { disable_compat_1.9 = true }` to disable them.
    2021-01-20T17:17:23.052Z [INFO]  agent.server.serf.lan: serf: Re-joined to previously known node: minikube: 172.17.0.4:8301
    2021-01-20T17:17:23.150Z [INFO]  agent: Retry join is supported for the following discovery methods: cluster=LAN discovery_methods="aliyun aws azure digitalocean gce k8s linode mdns os packet scaleway softlayer tencentcloud triton vsphere"
    2021-01-20T17:17:23.250Z [INFO]  agent: Joining cluster...: cluster=LAN
    2021-01-20T17:17:23.250Z [INFO]  agent: (LAN) joining: lan_addresses=[hashicorp-consul-server-0.hashicorp-consul-server.default.svc:8301]
    2021-01-20T17:17:23.250Z [INFO]  agent: started state syncer
==> Consul agent running!
    2021-01-20T17:17:23.350Z [INFO]  agent: (LAN) joined: number_of_nodes=1
    2021-01-20T17:17:23.350Z [INFO]  agent: Join cluster completed. Synced with initial agents: cluster=LAN num_agents=1
    2021-01-20T17:17:30.356Z [ERROR] agent.anti_entropy: failed to sync remote state: error="No cluster leader"
    2021-01-20T17:17:30.684Z [WARN]  agent.server.raft: heartbeat timeout reached, starting election: last-leader=
    2021-01-20T17:17:30.684Z [INFO]  agent.server.raft: entering candidate state: node="Node at 172.17.0.5:8300 [Candidate]" term=51
    2021-01-20T17:17:30.704Z [INFO]  agent.server.raft: election won: tally=1
    2021-01-20T17:17:30.704Z [INFO]  agent.server.raft: entering leader state: leader="Node at 172.17.0.5:8300 [Leader]"
    2021-01-20T17:17:30.704Z [INFO]  agent.server: cluster leadership acquired
    2021-01-20T17:17:30.705Z [INFO]  agent.server: New leader elected: payload=hashicorp-consul-server-0
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0x7ad532]

goroutine 109 [running]:
github.com/hashicorp/go-immutable-radix.(*Iterator).Next(0xc000f73820, 0xc000f72fa0, 0x0, 0x0, 0xc000908fd0, 0x0, 0xffffffffffffffff)
	/go/pkg/mod/github.com/hashicorp/go-immutable-radix@v1.3.0/iter.go:178 +0xb2
github.com/hashicorp/go-memdb.(*radixIterator).Next(0xc000908d50, 0xc0006b4e20, 0x485b)
	/go/pkg/mod/github.com/hashicorp/go-memdb@v1.3.0/txn.go:895 +0x2e
github.com/hashicorp/consul/agent/consul/state.cleanupMeshTopology(0x38f5800, 0xc0006b4e20, 0x485b, 0xc000603b00, 0x485b, 0xc000603c70)
	/home/circleci/project/consul/agent/consul/state/catalog.go:3271 +0x36c
github.com/hashicorp/consul/agent/consul/state.(*Store).deleteServiceTxn(0xc00089e6c0, 0x38f5800, 0xc0006b4e20, 0x485b, 0xc000e75728, 0x8, 0xc00020c5a0, 0x49, 0xc000603c70, 0x0, ...)
	/home/circleci/project/consul/agent/consul/state/catalog.go:1542 +0x8c5
github.com/hashicorp/consul/agent/consul/state.(*Store).deleteNodeTxn(0xc00089e6c0, 0x38f5800, 0xc0006b4e20, 0x485b, 0xc000e75728, 0x8, 0xb25ddc, 0xc000f9b860)
	/home/circleci/project/consul/agent/consul/state/catalog.go:715 +0x62d
github.com/hashicorp/consul/agent/consul/state.(*Store).DeleteNode(0xc00089e6c0, 0x485b, 0xc000e75728, 0x8, 0x0, 0x0)
	/home/circleci/project/consul/agent/consul/state/catalog.go:648 +0xbb
github.com/hashicorp/consul/agent/consul/fsm.(*FSM).applyDeregister(0xc000c879e0, 0xc000979641, 0x3c, 0x3c, 0x485b, 0x0, 0x0)
	/home/circleci/project/consul/agent/consul/fsm/commands_oss.go:171 +0x41a
github.com/hashicorp/consul/agent/consul/fsm.NewFromDeps.func1(0xc000979641, 0x3c, 0x3c, 0x485b, 0xc0001376d0, 0xc000999c80)
	/home/circleci/project/consul/agent/consul/fsm/fsm.go:99 +0x56
github.com/hashicorp/consul/agent/consul/fsm.(*FSM).Apply(0xc000c879e0, 0xc000b98aa0, 0x0, 0x0)
	/home/circleci/project/consul/agent/consul/fsm/fsm.go:133 +0x1b6
github.com/hashicorp/go-raftchunking.(*ChunkingFSM).Apply(0xc000c8b740, 0xc000b98aa0, 0x5191aa0, 0xbffa374b43333586)
	/go/pkg/mod/github.com/hashicorp/go-raftchunking@v0.6.1/fsm.go:66 +0x5b
github.com/hashicorp/raft.(*Raft).runFSM.func1(0xc000963050)
	/go/pkg/mod/github.com/hashicorp/raft@v1.2.0/fsm.go:90 +0x2c2
github.com/hashicorp/raft.(*Raft).runFSM.func2(0xc000b96000, 0x40, 0x40)
	/go/pkg/mod/github.com/hashicorp/raft@v1.2.0/fsm.go:113 +0x75
github.com/hashicorp/raft.(*Raft).runFSM(0xc00025ec00)
	/go/pkg/mod/github.com/hashicorp/raft@v1.2.0/fsm.go:219 +0x3c4
github.com/hashicorp/raft.(*raftState).goFunc.func1(0xc00025ec00, 0xc000da3c80)
	/go/pkg/mod/github.com/hashicorp/raft@v1.2.0/state.go:146 +0x55
created by github.com/hashicorp/raft.(*raftState).goFunc
	/go/pkg/mod/github.com/hashicorp/raft@v1.2.0/state.go:144 +0x66

The only way to fix this seems to be uninstalling consul via helm, deleting the persistent volume, and then reinstalling consul to the cluster.

$ helm uninstall hashicorp
$ kubectl delete -n default persistentvolumeclaim data-default-hashicorp-consul-server-0
persistentvolumeclaim "data-default-hashicorp-consul-server-0" deleted
$ kubectl delete persistentvolume pvc-066ace39-2807-4c53-8b1f-91cc6e9a5f51
persistentvolume "pvc-066ace39-2807-4c53-8b1f-91cc6e9a5f51" deleted
$ helm install hashicorp hashicorp/consul -f helm-consul-values.yaml 

I saved the problematic hostpath-provisioner directory but I'm not sure about uploading since I don't know what data is contained in it.

created time in 9 minutes

pull request commenthashicorp/consul

Fix UI content path without regex

Manually backported to 1.9.x

johncowen

comment created time in 24 minutes

push eventhashicorp/consul

John Cowen

commit sha cdb1730a21efa76d6c52a882b200feffe22d7ffc

Fix -ui-content-path without regex (#9569) * Add templating to inject JSON into an application/json script tag Plus an external script in order to pick it out and inject the values we need injecting into ember's environment meta tag. The UI still uses env style naming (CONSUL_*) but we uses the new style JSON/golang props behind the scenes. Co-authored-by: Paul Banks <banks@banksco.de>

view details

push time in 24 minutes

push eventhashicorp/consul

hashicorp-ci

commit sha 27a5434cb0157273a77d12386d51d0931b1dc480

auto-updated agent/uiserver/bindata_assetfs.go from commit 02772e46a

view details

push time in 26 minutes

pull request commenthashicorp/consul

Fix UI content path without regex

:cherries::x: Cherry pick of commit 02772e46a2ce236df9a2a51646e3de7a4ff92ad3 onto release/1.9.x failed! Build Log

johncowen

comment created time in 31 minutes

pull request commenthashicorp/consul

Fix UI content path without regex

:cherries: If backport labels were added before merging, cherry-picking will start automatically.

To retroactively trigger a backport after merging, add backport labels and re-run https://circleci.com/gh/hashicorp/consul/313590.

johncowen

comment created time in 31 minutes

push eventhashicorp/consul

John Cowen

commit sha 02772e46a2ce236df9a2a51646e3de7a4ff92ad3

Fix -ui-content-path without regex (#9569) * Add templating to inject JSON into an application/json script tag Plus an external script in order to pick it out and inject the values we need injecting into ember's environment meta tag. The UI still uses env style naming (CONSUL_*) but we uses the new style JSON/golang props behind the scenes. Co-authored-by: Paul Banks <banks@banksco.de>

view details

push time in 32 minutes

delete branch hashicorp/consul

delete branch : fix-ui-content-path-without-regex

delete time in 32 minutes

PR merged hashicorp/consul

Fix UI content path without regex backport/1.9 theme/ui

This PR is an eventual replacement for https://github.com/hashicorp/consul/pull/9523 and fixes #9522.

Following chats with @dnephin, we decided we preferred the overall method to pass variables between binary > ui that we had pre-1.9, which was mostly based on gotemplate rather than using regular expressions.

The pre-1.9 code did have its downsides, mainly as we were using gotemplate to inject the variables, inline, straight into the javascript, and this can cause complications with CSP.

We came up with various alternatives to do away with the dependence on regular expressions, and of all of the options (and combinations of options), this PR was the cleanest and least weird way we came up with.

The approach here avoids the CSP issues by injecting the variables as JSON into a <script type="application/json"> tag, which avoids any such complications. Then, in a separate externally sourced script, we pick the values we need out of that tag, and then perform the same replacement in Ember's meta tag as we did pre-1.9. Importantly, we only do this with the values we need to inject before ember bootstraps itself, which for the moment is only rootURL/ContentPath.

As we are moving all our 'binary variables' to the ui_config 'concept', I changed the frontend part of the codebase to pick the remaining 'not needed pre ember bootstrap' values from the same ui_config JSON, but from within ember - once it has started up. There's potentially a tiny bit more cleanup that can be done on the frontend, but I wanted to get the backend all ironed out and merged in before doing this (this cleanup possibly could be in the distant future). There are also a couple more backend variables we could probably pass in using this approach, but again a piece of future work.

~There are no amends to the go tests here yet as I wanted to get review before looking at that, so tests will fail currently.~

+280 -218

4 comments

13 changed files

johncowen

pr closed time in 32 minutes

issue closedhashicorp/consul

ui: ui-content-path flag/config no longer works (1.9.0/.1)

Consul has a configuration flag and config setting called content-path in order to change the root directory of where the ui runs from /ui to a user configured value (say /consul).

As of 1.9.0 the configuration value has no effect on the UI.

On first glance it looks like the value is no longer being passed through to the ui from the binary, therefore although HTTP redirects from say / to /consul (instead of to /ui) work, but the UI doesn't know that the configuration value is set and therefore sends the user back to /ui/consul instead.

closed time in 32 minutes

johncowen

issue openedhashicorp/consul

Default Service Mesh to Enabled

Feature Description

Currently with default non-dev settings Consul has the Connect feature disabled. This means that the servers do not initialize the CA, the various connect RPCs/HTTP APIs will return errors, agents will not listen on the gRPC port for xDS and that agents will not be performing central service configuration. As service mesh is a core use case of Consul the idea is that it should be enabled by default.

New server defaults:

connect {
   enabled = true
}

New agent defaults:

enable_central_service_config = true

ports {
   grpc = 8502
}

Considerations

While this isn't technically a breaking change in functionality we should still treat it as such and save it for a major release. Many users would not want an upgrade to start opening new ports or putting more stress on their servers (which the central service config bit can do). So while it would be good to default these to on for the day 0-1 UX of trying out Consul service mesh we need to very loudly advertise that these changes are happening and provide clear/simple instructions on how to opt-out for existing users or new users not utilizing Consul as a service mesh.

created time in 38 minutes

pull request commenthashicorp/consul

ui: Adds @NullValue attr decorator

Note to future self, this isn't required for 1.9

johncowen

comment created time in an hour

push eventhashicorp/consul

John Cowen

commit sha 4ddbe1830b3e784390c9988ac9b64fe7dcb0733d

ui: Changelog for #9593 (#9598)

view details

push time in an hour

pull request commenthashicorp/consul

ui: Changelog for #9593

:cherries::white_check_mark: Cherry pick of commit bec994fed38ea59d7a92ee9a32cbd41f5c7e551d onto release/1.9.x succeeded!

johncowen

comment created time in an hour

pull request commenthashicorp/consul

ui: Changelog for #9593

:cherries: If backport labels were added before merging, cherry-picking will start automatically.

To retroactively trigger a backport after merging, add backport labels and re-run https://circleci.com/gh/hashicorp/consul/313505.

johncowen

comment created time in an hour

push eventhashicorp/consul

John Cowen

commit sha bec994fed38ea59d7a92ee9a32cbd41f5c7e551d

ui: Changelog for #9593 (#9598)

view details

push time in an hour

delete branch hashicorp/consul

delete branch : ui/chore/changelog-9593

delete time in an hour

PR merged hashicorp/consul

ui: Changelog for #9593 backport/1.9

See #9593

+4 -0

0 comment

1 changed file

johncowen

pr closed time in an hour

PR opened hashicorp/consul

Reviewers
ui: Changelog for #9593 backport/1.9 theme/ui

See #9593

+4 -0

0 comment

1 changed file

pr created time in an hour

create barnchhashicorp/consul

branch : ui/chore/changelog-9593

created branch time in an hour

issue commenthashicorp/consul

Support mesh gateway mode local as a default not through proxy-defaults

Some discussion we had:

  1. A flag on the servers/clients that would set the "default default"
  2. Notice if there are mesh gateways and no local endpoints and then use them - this gets complicated because the watches need to be rejigged and also what happens if the mesh gateways are "up" but aren't actually usable yet.
lkysow

comment created time in 2 hours

issue openedhashicorp/consul

Support mesh gateway mode local as a default not through proxy-defaults

Feature Description

In Kubernetes, we want users to be able to turn on mesh gateways via their helm configs, install two federated clusters, and have services be able to communicate between them.

Currently, that requires an additional step of creating a proxy-defaults config entry that sets meshGateway.mode to local or remote.

It would be great if there was a way to set this at install time so it doesn't require an extra step.

NOTE: Using the config_entries.bootstrap setting doesn't work anymore (that's what we used to do) because that config entry is now to be managed via CRD.

created time in 2 hours

push eventhashicorp/consul

Freddy

commit sha e50019b0922cfc6ba9a1f277df9efaf19d080c41

Update topology mapping Refs on all proxy instance deletions (#9589) * Insert new upstream/downstream mapping to persist new Refs * Avoid upserting mapping copy if it's a no-op * Add test with panic repro * Avoid deleting up/downstreams from inside memdb iterator * Avoid deleting gateway mappings from inside memdb iterator * Add CHANGELOG entry * Tweak changelog entry Co-authored-by: Paul Banks <banks@banksco.de>

view details

John Cowen

commit sha 30014ff8feff64d29dce840bde500ac11a564f47

ui: Convert Service.GatewayConfig to a model fragment (#9586) * ui: Convert Service.GatewayConfig to a model fragment We added the ember-intl addon, which has its own format-number helper. We replaced our own similarly named helper with this one, but the ember-intl one is far stricter and errors if the arguments passed are undefined. Our previously one would cope with this. We'd rather continue to use the stricter ember-intl helper, so here we convert the GatewayConfig property to a model fragment so that we can give the GatewayConfig.AssociatedServices property a default zero value.

view details

hashicorp-ci

commit sha daa384b64d5807a9e4289412c6269060e1335f56

auto-updated agent/uiserver/bindata_assetfs.go from commit 30014ff8f

view details

John Cowen

commit sha f2fe202010013809038896ebb9ce1078c40b7747

chore: Changelog entry for #9524 (#9595)

view details

Matt Keeler

commit sha 4fa884ee3de327707630f29ecd39775048701588

Fix flaky test by marking mock expectations as optional (#9596) These expectations are optional because in a slow CI environment the deadline to cancell the context might occur before the go routine reaches issuing the RPC. Either way we are successfully ensuring context cancellation is working.

view details

John Cowen

commit sha aedd338e709de71c8dfbba1965e147db5b9b3514

api: Ensure the internal/ui/gateway-service-nodes endpoint responds with an array (#9593) In some circumstances this endpoint will have no results in it (dues to ACLs, Namespaces, filtering or missing configuration). This ensures that the response is at least an empty array (`[]`) rather than `null`

view details

Kenia

commit sha ffb6680e76d4b74c1ddad78c8c4cfe0c54a1c333

ui: Removing formatting to display LockDelay in nanoseconds (#9594) * Removing formatting to display LockDelay in nanoseconds * Update test * Add changelog

view details

hashicorp-ci

commit sha 972fa320f801575ce28b395bc40ca2e11561f2de

auto-updated agent/uiserver/bindata_assetfs.go from commit ffb6680e7

view details

John Cowen

commit sha 597fcbb7cd5e1ab2fbbd09c8b78a55dcb22044ef

Add templating to inject JSON into an application/json script tag Plus an external script in order to pick it out and inject the values we need injecting into ember's environment meta tag.

view details

John Cowen

commit sha ceb2386e50959191d8c91f8ae920a4d448fecad7

Remove all the regex-ness from uiserver and just use gotemplate

view details

John Cowen

commit sha b559d5fda2bc74b0a5db9509ec58d148685f6b30

Fix up where old frontend code and new backend code meet The UI still uses env style naming (CONSUL_*) but we uses the new style JSON/golang props behind the scenes.

view details

John Cowen

commit sha d79dac9fe4dcfebfef718ce170d164be06fec47c

Remove the last remaining bits of the regex/meta/encoding stuff

view details

John Cowen

commit sha 027479efcd981ff5dad3fee1642b22f9a8086b91

Fixup tests

view details

John Cowen

commit sha 4575c0a7a2417a895ecc15654e49fb36c4383b6d

Update vendor

view details

John Cowen

commit sha ad34ff0528d96bb4058986b169071056eb58cf83

Update agent/uiserver/uiserver_test.go Co-authored-by: Paul Banks <banks@banksco.de>

view details

John Cowen

commit sha 685df574b3fdc5226a5c457fedc2edeb56d2631e

binaryConfig > operatorConfig

view details

John Cowen

commit sha 6ea4bc3ee95c48acced771525a4d1228e20de782

Changelog

view details

John Cowen

commit sha d76d086bd01ce8dc857c5d727c2e6d8b7c5e2e34

Fix up js ui tests

view details

John Cowen

commit sha 8661a4399a8a4df0cce04b1aab4ffd3d743e0305

One last make ui (sorry)

view details

push time in 2 hours

push eventhashicorp/consul

hashicorp-ci

commit sha 972fa320f801575ce28b395bc40ca2e11561f2de

auto-updated agent/uiserver/bindata_assetfs.go from commit ffb6680e7

view details

push time in 2 hours

pull request commenthashicorp/consul

ui: Removing formatting to display LockDelay in nanoseconds

:cherries::white_check_mark: Cherry pick of commit ffb6680e76d4b74c1ddad78c8c4cfe0c54a1c333 onto release/1.9.x succeeded!

kaxcode

comment created time in 2 hours

push eventhashicorp/consul

Kenia

commit sha 7abb8697f9fe407219a83b95a14cd2951a3dc385

ui: Removing formatting to display LockDelay in nanoseconds (#9594) * Removing formatting to display LockDelay in nanoseconds * Update test * Add changelog

view details

push time in 2 hours

pull request commenthashicorp/consul

ui: Removing formatting to display LockDelay in nanoseconds

:cherries: If backport labels were added before merging, cherry-picking will start automatically.

To retroactively trigger a backport after merging, add backport labels and re-run https://circleci.com/gh/hashicorp/consul/313352.

kaxcode

comment created time in 2 hours

push eventhashicorp/consul

Kenia

commit sha ffb6680e76d4b74c1ddad78c8c4cfe0c54a1c333

ui: Removing formatting to display LockDelay in nanoseconds (#9594) * Removing formatting to display LockDelay in nanoseconds * Update test * Add changelog

view details

push time in 2 hours

delete branch hashicorp/consul

delete branch : ui/bug/sessions-lock-delay-format

delete time in 2 hours

more