Merge pull request #1597 from hashicorp/sethvargo/links

Use HTTPS + www. where appropriate
This commit is contained in:
James Phillips 2016-01-13 14:46:07 -08:00
commit 57cf69df15
21 changed files with 39 additions and 40 deletions

View File

@ -1,6 +1,6 @@
# Consul [![Build Status](https://travis-ci.org/hashicorp/consul.png)](https://travis-ci.org/hashicorp/consul) # Consul [![Build Status](https://travis-ci.org/hashicorp/consul.png)](https://travis-ci.org/hashicorp/consul)
* Website: http://www.consul.io * Website: https://www.consul.io
* IRC: `#consul` on Freenode * IRC: `#consul` on Freenode
* Mailing list: [Google Groups](https://groups.google.com/group/consul-tool/) * Mailing list: [Google Groups](https://groups.google.com/group/consul-tool/)
@ -32,13 +32,13 @@ Consul servers only on Linux, however.
An extensive quick quick start is viewable on the Consul website: An extensive quick quick start is viewable on the Consul website:
http://www.consul.io/intro/getting-started/install.html https://www.consul.io/intro/getting-started/install.html
## Documentation ## Documentation
Full, comprehensive documentation is viewable on the Consul website: Full, comprehensive documentation is viewable on the Consul website:
http://www.consul.io/docs https://www.consul.io/docs
## Developing Consul ## Developing Consul

View File

@ -9,7 +9,7 @@ Currently, all of the Consul APIs included in version 0.6.0 are supported.
Documentation Documentation
============= =============
The full documentation is available on [Godoc](http://godoc.org/github.com/hashicorp/consul/api) The full documentation is available on [Godoc](https://godoc.org/github.com/hashicorp/consul/api)
Usage Usage
===== =====
@ -41,4 +41,3 @@ if err != nil {
fmt.Printf("KV: %v", pair) fmt.Printf("KV: %v", pair)
``` ```

View File

@ -56,7 +56,7 @@ var (
) )
// Lock is used to implement client-side leader election. It is follows the // Lock is used to implement client-side leader election. It is follows the
// algorithm as described here: https://consul.io/docs/guides/leader-election.html. // algorithm as described here: https://www.consul.io/docs/guides/leader-election.html.
type Lock struct { type Lock struct {
c *Client c *Client
opts *LockOptions opts *LockOptions

View File

@ -183,7 +183,7 @@ func (c *Command) readConfig() *Config {
if _, err := os.Stat(mdbPath); !os.IsNotExist(err) { if _, err := os.Stat(mdbPath); !os.IsNotExist(err) {
c.Ui.Error(fmt.Sprintf("CRITICAL: Deprecated data folder found at %q!", mdbPath)) c.Ui.Error(fmt.Sprintf("CRITICAL: Deprecated data folder found at %q!", mdbPath))
c.Ui.Error("Consul will refuse to boot with this directory present.") c.Ui.Error("Consul will refuse to boot with this directory present.")
c.Ui.Error("See https://consul.io/docs/upgrade-specific.html for more information.") c.Ui.Error("See https://www.consul.io/docs/upgrade-specific.html for more information.")
return nil return nil
} }
} }

View File

@ -23,5 +23,5 @@ At this point the two nodes are running and you can SSH in to play with them:
... ...
To learn more about starting Consul, joining nodes and interacting with the agent, To learn more about starting Consul, joining nodes and interacting with the agent,
checkout the [getting started guide](http://www.consul.io/intro/getting-started/install.html). checkout the [getting started guide](https://www.consul.io/intro/getting-started/install.html).

View File

@ -5,7 +5,7 @@ HTTP server that serves this directory, but any common HTTP server
is capable of serving it. is capable of serving it.
It uses JavaScript and [Ember](http://emberjs.com) to communicate with It uses JavaScript and [Ember](http://emberjs.com) to communicate with
the [Consul API](http://www.consul.io/docs/agent/http.html). The basic the [Consul API](https://www.consul.io/docs/agent/http.html). The basic
features it provides are: features it provides are:
- Service view. A list of your registered services, their - Service view. A list of your registered services, their

View File

@ -62,7 +62,7 @@
<p>The default agent token does not <p>The default agent token does not
have the appropriate permissions to perform the expected action.</p> have the appropriate permissions to perform the expected action.</p>
{{/if}} {{/if}}
<p>Learn more in the <a href="http://www.consul.io/docs/internals/acl.html">ACL documentation</a>.</p> <p>Learn more in the <a href="https://www.consul.io/docs/internals/acl.html">ACL documentation</a>.</p>
</div> </div>
</div> </div>
</div> </div>
@ -74,7 +74,7 @@
<div class="text-center vertical-center"> <div class="text-center vertical-center">
<p class="bold">ACLs Disabled</p> <p class="bold">ACLs Disabled</p>
<p>ACLs are disabled in this Consul cluster. This is the default behavior, as you have to explicitly enable them.</p> <p>ACLs are disabled in this Consul cluster. This is the default behavior, as you have to explicitly enable them.</p>
</p>Learn more in the <a href="http://www.consul.io/docs/internals/acl.html">ACL documentation</a>.</p> </p>Learn more in the <a href="https://www.consul.io/docs/internals/acl.html">ACL documentation</a>.</p>
</div> </div>
</div> </div>
</div> </div>
@ -645,7 +645,7 @@
<div class="form-group"> <div class="form-group">
<label>Rules</label> <label>Rules</label>
{{ textarea value=newAcl.Rules class="form-control" }} {{ textarea value=newAcl.Rules class="form-control" }}
<span class="help-block">For more information on rules, visit the <a href="http://www.consul.io/docs/internals/acl.html">ACL documentation.</a></span> <span class="help-block">For more information on rules, visit the <a href="https://www.consul.io/docs/internals/acl.html">ACL documentation.</a></span>
</div> </div>
<button {{ action "createAcl"}} {{ bind-attr class=":btn :btn-success" }}>Create</button> <button {{ action "createAcl"}} {{ bind-attr class=":btn :btn-success" }}>Create</button>
@ -691,7 +691,7 @@
<div class="form-group"> <div class="form-group">
<label>Rules</label> <label>Rules</label>
{{ textarea value=model.Rules class="form-control" }} {{ textarea value=model.Rules class="form-control" }}
<span class="help-block">For more information on rules, visit the <a href="http://www.consul.io/docs/internals/acl.html">ACL documentation.</a></span> <span class="help-block">For more information on rules, visit the <a href="https://www.consul.io/docs/internals/acl.html">ACL documentation.</a></span>
</div> </div>
<button {{ action "updateAcl"}} {{ bind-attr class=":btn :btn-success" }}>Update</button> <button {{ action "updateAcl"}} {{ bind-attr class=":btn :btn-success" }}>Update</button>

View File

@ -12,7 +12,7 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<h2>Consul Web UI Style Guide</h2> <h2>Consul Web UI Style Guide</h2>
<p>This is style guide for the <a href="http://www.consul.io">Consul</a> Web UI. When possible, <p>This is style guide for the <a href="https://www.consul.io">Consul</a> Web UI. When possible,
it's best to follow this guide modifying the UI.</p> it's best to follow this guide modifying the UI.</p>
<p>Some reasoning behind choices: <p>Some reasoning behind choices:
<ul> <ul>

View File

@ -1,7 +1,7 @@
Consul Website Consul Website
============== ==============
This subdirectory contains the entire source for the [Consul Website](http://www.consul.io). This is a [Middleman](http://middlemanapp.com) project, which builds a static site from these source files. This subdirectory contains the entire source for the [Consul Website](https://www.consul.io). This is a [Middleman](http://middlemanapp.com) project, which builds a static site from these source files.
Contributions Welcome! Contributions Welcome!
---------------------- ----------------------

View File

@ -53,8 +53,8 @@ There are four different kinds of checks:
can periodically `PUT` a status update to the HTTP endpoint; if the app fails, the TTL will can periodically `PUT` a status update to the HTTP endpoint; if the app fails, the TTL will
expire and the health check enters a critical state. The endpoints used to expire and the health check enters a critical state. The endpoints used to
update health information for a given check are the update health information for a given check are the
[pass endpoint](https://consul.io/docs/agent/http/agent.html#agent_check_pass) [pass endpoint](https://www.consul.io/docs/agent/http/agent.html#agent_check_pass)
and the [fail endpoint](https://consul.io/docs/agent/http/agent.html#agent_check_fail). and the [fail endpoint](https://www.consul.io/docs/agent/http/agent.html#agent_check_fail).
TTL checks also persist TTL checks also persist
their last known status to disk. This allows the Consul agent to restore the their last known status to disk. This allows the Consul agent to restore the
last known status of the check across restarts. Persisted check status is last known status of the check across restarts. Persisted check status is
@ -157,7 +157,7 @@ used for any interaction with the catalog for the check, including
Script, TCP, Docker and HTTP checks must include an `interval` field. This field is Script, TCP, Docker and HTTP checks must include an `interval` field. This field is
parsed by Go's `time` package, and has the following parsed by Go's `time` package, and has the following
[formatting specification](http://golang.org/pkg/time/#ParseDuration): [formatting specification](https://golang.org/pkg/time/#ParseDuration):
> A duration string is a possibly signed sequence of decimal numbers, each with > A duration string is a possibly signed sequence of decimal numbers, each with
> optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". > optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m".
> Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". > Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".

View File

@ -479,7 +479,7 @@ definitions support being updated during a reload.
* <a name="http_api_response_headers"></a><a href="#http_api_response_headers">`http_api_response_headers`</a> * <a name="http_api_response_headers"></a><a href="#http_api_response_headers">`http_api_response_headers`</a>
This object allows adding headers to the HTTP API This object allows adding headers to the HTTP API
responses. For example, the following config can be used to enable responses. For example, the following config can be used to enable
[CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) on [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing) on
the HTTP API endpoints: the HTTP API endpoints:
```javascript ```javascript

View File

@ -35,7 +35,7 @@ See the [Atlas integration guide](/docs/guides/atlas.html) for more details.
## Q: Does Consul rely on UDP Broadcast or Multicast? ## Q: Does Consul rely on UDP Broadcast or Multicast?
Consul uses the [Serf](https://serfdom.io) gossip protocol which relies on Consul uses the [Serf](https://www.serfdom.io) gossip protocol which relies on
TCP and UDP unicast. Broadcast and Multicast are rarely available in a multi-tenant TCP and UDP unicast. Broadcast and Multicast are rarely available in a multi-tenant
or cloud network environment. For that reason, Consul and Serf were both or cloud network environment. For that reason, Consul and Serf were both
designed to avoid any dependence on those capabilities. designed to avoid any dependence on those capabilities.

View File

@ -10,7 +10,7 @@ description: |-
Consul provides an optional Access Control List (ACL) system which can be used to control Consul provides an optional Access Control List (ACL) system which can be used to control
access to data and APIs. The ACL is access to data and APIs. The ACL is
[Capability-based](http://en.wikipedia.org/wiki/Capability-based_security), relying [Capability-based](https://en.wikipedia.org/wiki/Capability-based_security), relying
on tokens to which fine grained rules can be applied. It is very similar to on tokens to which fine grained rules can be applied. It is very similar to
[AWS IAM](http://aws.amazon.com/iam/) in many ways. [AWS IAM](http://aws.amazon.com/iam/) in many ways.

View File

@ -49,13 +49,13 @@ region would be considered part of a single datacenter.
* Consensus - When used in our documentation we use consensus to mean agreement upon * Consensus - When used in our documentation we use consensus to mean agreement upon
the elected leader as well as agreement on the ordering of transactions. Since these the elected leader as well as agreement on the ordering of transactions. Since these
transactions are applied to a transactions are applied to a
[finite-state machine](http://en.wikipedia.org/wiki/Finite-state_machine), our definition [finite-state machine](https://en.wikipedia.org/wiki/Finite-state_machine), our definition
of consensus implies the consistency of a replicated state machine. Consensus is described of consensus implies the consistency of a replicated state machine. Consensus is described
in more detail on [Wikipedia](http://en.wikipedia.org/wiki/Consensus_(computer_science)), in more detail on [Wikipedia](https://en.wikipedia.org/wiki/Consensus_(computer_science)),
and our implementation is described [here](/docs/internals/consensus.html). and our implementation is described [here](/docs/internals/consensus.html).
* Gossip - Consul is built on top of [Serf](https://www.serfdom.io/) which provides a full * Gossip - Consul is built on top of [Serf](https://www.serfdom.io/) which provides a full
[gossip protocol](http://en.wikipedia.org/wiki/Gossip_protocol) that is used for multiple purposes. [gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol) that is used for multiple purposes.
Serf provides membership, failure detection, and event broadcast. Our use of these Serf provides membership, failure detection, and event broadcast. Our use of these
is described more in the [gossip documentation](/docs/internals/gossip.html). It is enough to know is described more in the [gossip documentation](/docs/internals/gossip.html). It is enough to know
that gossip involves random node-to-node communication, primarily over UDP. that gossip involves random node-to-node communication, primarily over UDP.

View File

@ -8,8 +8,8 @@ description: |-
# Consensus Protocol # Consensus Protocol
Consul uses a [consensus protocol](http://en.wikipedia.org/wiki/Consensus_(computer_science)) Consul uses a [consensus protocol](https://en.wikipedia.org/wiki/Consensus_(computer_science))
to provide [Consistency (as defined by CAP)](http://en.wikipedia.org/wiki/CAP_theorem). to provide [Consistency (as defined by CAP)](https://en.wikipedia.org/wiki/CAP_theorem).
The consensus protocol is based on The consensus protocol is based on
["Raft: In search of an Understandable Consensus Algorithm"](https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf). ["Raft: In search of an Understandable Consensus Algorithm"](https://ramcloud.stanford.edu/wiki/download/attachments/11370504/raft.pdf).
For a visual explanation of Raft, see [The Secret Lives of Data](http://thesecretlivesofdata.com/raft). For a visual explanation of Raft, see [The Secret Lives of Data](http://thesecretlivesofdata.com/raft).
@ -22,7 +22,7 @@ to learn about them without having to go spelunking through the source code.
## Raft Protocol Overview ## Raft Protocol Overview
Raft is a consensus algorithm that is based on Raft is a consensus algorithm that is based on
[Paxos](http://en.wikipedia.org/wiki/Paxos_%28computer_science%29). Compared [Paxos](https://en.wikipedia.org/wiki/Paxos_%28computer_science%29). Compared
to Paxos, Raft is designed to have fewer states and a simpler, more to Paxos, Raft is designed to have fewer states and a simpler, more
understandable algorithm. understandable algorithm.
@ -33,7 +33,7 @@ of consistency can be decomposed into a *replicated log*. A log is an ordered
sequence of entries. We consider the log consistent if all members agree on sequence of entries. We consider the log consistent if all members agree on
the entries and their order. the entries and their order.
* FSM - [Finite State Machine](http://en.wikipedia.org/wiki/Finite-state_machine). * FSM - [Finite State Machine](https://en.wikipedia.org/wiki/Finite-state_machine).
An FSM is a collection of finite states with transitions between them. As new logs An FSM is a collection of finite states with transitions between them. As new logs
are applied, the FSM is allowed to transition between states. Application of the are applied, the FSM is allowed to transition between states. Application of the
same sequence of logs must result in the same state, meaning behavior must be deterministic. same sequence of logs must result in the same state, meaning behavior must be deterministic.

View File

@ -8,7 +8,7 @@ description: |-
# Gossip Protocol # Gossip Protocol
Consul uses a [gossip protocol](http://en.wikipedia.org/wiki/Gossip_protocol) Consul uses a [gossip protocol](https://en.wikipedia.org/wiki/Gossip_protocol)
to manage membership and broadcast messages to the cluster. All of this is provided to manage membership and broadcast messages to the cluster. All of this is provided
through the use of the [Serf library](https://www.serfdom.io/). The gossip protocol through the use of the [Serf library](https://www.serfdom.io/). The gossip protocol
used by Serf is based on used by Serf is based on

View File

@ -12,7 +12,7 @@ Consul relies on both a lightweight gossip mechanism and an RPC system
to provide various features. Both of the systems have different security to provide various features. Both of the systems have different security
mechanisms that stem from their designs. However, the security mechanisms mechanisms that stem from their designs. However, the security mechanisms
of Consul have a common goal: to provide of Consul have a common goal: to provide
[confidentiality, integrity, and authentication](http://en.wikipedia.org/wiki/Information_security). [confidentiality, integrity, and authentication](https://en.wikipedia.org/wiki/Information_security).
The [gossip protocol](/docs/internals/gossip.html) is powered by [Serf](https://www.serfdom.io/), The [gossip protocol](/docs/internals/gossip.html) is powered by [Serf](https://www.serfdom.io/),
which uses a symmetric key, or shared secret, cryptosystem. There are more which uses a symmetric key, or shared secret, cryptosystem. There are more
@ -21,7 +21,7 @@ For details on how to enable Serf's gossip encryption in Consul, see the
[encryption doc here](/docs/agent/encryption.html). [encryption doc here](/docs/agent/encryption.html).
The RPC system supports using end-to-end TLS with optional client authentication. The RPC system supports using end-to-end TLS with optional client authentication.
[TLS](http://en.wikipedia.org/wiki/Transport_Layer_Security) is a widely deployed asymmetric [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) is a widely deployed asymmetric
cryptosystem and is the foundation of security on the Web. cryptosystem and is the foundation of security on the Web.
This means Consul communication is protected against eavesdropping, tampering, This means Consul communication is protected against eavesdropping, tampering,

View File

@ -25,7 +25,7 @@ description: |-
<a href="https://releases.hashicorp.com/consul/<%= latest_version %>/consul_<%= latest_version %>_SHA256SUMS.sig"> <a href="https://releases.hashicorp.com/consul/<%= latest_version %>/consul_<%= latest_version %>_SHA256SUMS.sig">
verify the checksums signature file verify the checksums signature file
</a> </a>
which has been signed using <a href="https://hashicorp.com/security.html" target="_TOP">HashiCorp's GPG key</a>. which has been signed using <a href="https://www.hashicorp.com/security.html" target="_TOP">HashiCorp's GPG key</a>.
You can also <a href="https://releases.hashicorp.com/consul/" target="_TOP">download older versions of Consul</a> from the releases service. You can also <a href="https://releases.hashicorp.com/consul/" target="_TOP">download older versions of Consul</a> from the releases service.
</p> </p>
</div> </div>

View File

@ -160,8 +160,8 @@ will automatically join your Consul cluster without any hardcoded
configuration. configuration.
Alternatively, you can join a cluster at startup using the Alternatively, you can join a cluster at startup using the
[`-join` flag](http://www.consul.io/docs/agent/options.html#_join) or [`-join` flag](https://www.consul.io/docs/agent/options.html#_join) or
[`start_join` setting](http://www.consul.io/docs/agent/options.html#start_join) [`start_join` setting](https://www.consul.io/docs/agent/options.html#start_join)
with hardcoded addresses of other known Consul agents. with hardcoded addresses of other known Consul agents.
## Querying Nodes ## Querying Nodes

View File

@ -8,7 +8,7 @@ description: |-
# Consul & the HashiCorp Ecosystem # Consul & the HashiCorp Ecosystem
HashiCorp is the creator of the open source projects Vagrant, Packer, Terraform, Serf, and Consul, and the commercial product Atlas. Terraform is just one piece of the ecosystem HashiCorp has built to make application delivery a versioned, auditable, repeatable, and collaborative process. To learn more about our beliefs on the qualities of the modern datacenter and responsible application delivery, read [The Atlas Mindset: Version Control for Infrastructure](https://hashicorp.com/blog/atlas-mindset.html/?utm_source=consul&utm_campaign=HashicorpEcosystem). HashiCorp is the creator of the open source projects Vagrant, Packer, Terraform, Serf, and Consul, and the commercial product Atlas. Terraform is just one piece of the ecosystem HashiCorp has built to make application delivery a versioned, auditable, repeatable, and collaborative process. To learn more about our beliefs on the qualities of the modern datacenter and responsible application delivery, read [The Atlas Mindset: Version Control for Infrastructure](https://www.hashicorp.com/blog/atlas-mindset.html/?utm_source=consul&utm_campaign=HashicorpEcosystem).
If you are using Consul for service discovery, its likely that you have a system to deploy infrastructure which Consul is then connecting. Terraform is our tool for creating, combining, and modifying infrastructure. If you are using Consul for service discovery, its likely that you have a system to deploy infrastructure which Consul is then connecting. Terraform is our tool for creating, combining, and modifying infrastructure.
@ -19,12 +19,12 @@ Below are summaries of HashiCorps open source projects and a graphic showing
[Atlas](https://atlas.hashicorp.com/?utm_source=consul&utm_campaign=HashicorpEcosystem) is HashiCorp's only commercial product. It unites Packer, Terraform, and Consul to make application delivery a versioned, auditable, repeatable, and collaborative process. [Atlas](https://atlas.hashicorp.com/?utm_source=consul&utm_campaign=HashicorpEcosystem) is HashiCorp's only commercial product. It unites Packer, Terraform, and Consul to make application delivery a versioned, auditable, repeatable, and collaborative process.
[Packer](https://packer.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for creating machine images and deployable artifacts such as AMIs, OpenStack images, Docker containers, etc. [Packer](https://www.packer.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for creating machine images and deployable artifacts such as AMIs, OpenStack images, Docker containers, etc.
[Terraform](https://terraform.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for creating, combining, and modifying infrastructure. In the Atlas workflow Terraform reads from the artifact registry and provisions infrastructure. [Terraform](https://www.terraform.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for creating, combining, and modifying infrastructure. In the Atlas workflow Terraform reads from the artifact registry and provisions infrastructure.
[Consul](https://consul.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for service discovery, service registry, and health checks. In the Atlas workflow Consul is configured at the Packer build stage and identifies the service(s) contained in each artifact. Since Consul is configured at the build phase with Packer, when the artifact is deployed with Terraform, it is fully configured with dependencies and service discovery pre-baked. This greatly reduces the risk of an unhealthy node in production due to configuration failure at runtime. [Consul](https://www.consul.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for service discovery, service registry, and health checks. In the Atlas workflow Consul is configured at the Packer build stage and identifies the service(s) contained in each artifact. Since Consul is configured at the build phase with Packer, when the artifact is deployed with Terraform, it is fully configured with dependencies and service discovery pre-baked. This greatly reduces the risk of an unhealthy node in production due to configuration failure at runtime.
[Serf](https://serfdom.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for cluster membership and failure detection. Consul uses Serfs gossip protocol as the foundation for service discovery. [Serf](https://www.serfdom.io/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for cluster membership and failure detection. Consul uses Serfs gossip protocol as the foundation for service discovery.
[Vagrant](https://www.vagrantup.com/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for managing development environments that mirror production. Vagrant environments reduce the friction of developing a project and reduce the risk of unexpected behavior appearing after deployment. Vagrant boxes can be built in parallel with production artifacts with Packer to maintain parity between development and production. [Vagrant](https://www.vagrantup.com/?utm_source=consul&utm_campaign=HashicorpEcosystem) is a HashiCorp tool for managing development environments that mirror production. Vagrant environments reduce the friction of developing a project and reduce the risk of unexpected behavior appearing after deployment. Vagrant boxes can be built in parallel with production artifacts with Packer to maintain parity between development and production.

View File

@ -32,7 +32,7 @@
<div class="navbar-header"> <div class="navbar-header">
<div class="navbar-brand"> <div class="navbar-brand">
<a class="logo" href="/">Consul</a> <a class="logo" href="/">Consul</a>
<a class="by-hashicorp white" href="https://hashicorp.com/"><span class="svg-wrap">by</span><%= partial "layouts/svg/svg-by-hashicorp" %><%= partial "layouts/svg/svg-hashicorp-logo" %>Hashicorp</a> <a class="by-hashicorp white" href="https://www.hashicorp.com/"><span class="svg-wrap">by</span><%= partial "layouts/svg/svg-by-hashicorp" %><%= partial "layouts/svg/svg-hashicorp-logo" %>Hashicorp</a>
</div> </div>
<button class="navbar-toggle white" type="button"> <button class="navbar-toggle white" type="button">
<span class="sr-only">Toggle navigation</span> <span class="sr-only">Toggle navigation</span>