272c878559
* add peers route * add peers to nav * use regular app ui patterns peers template * use empty state in peers UI * mock `v1/peerings` request * implement custom adapter/serializer for `peers`-model * index request for peerings on peers route * update peers list to show as proper list * Use tailwind for easier styling * Unique ids in peerings response mock-api * Add styling peerings list * Allow creating empty tooltip To make it easier to iterate over a set of items where some items should not display a tooltip and others should. * Add tooltip Peerings:Badge * Add undefined peering state badge * Remove imported/exported services count peering This won't be included in the initial version of the API response * Implement Peerings::Search * Make it possible to filter peerings by name * Install ember-keyboard For idiomatic handling of key-presses. * Clear peering search input when pressing `Escape` * use peers.index instead of peers for peerings listing * Allow to include peered services in services-query * update services mock to add peerName * add Consul::Peer component To surface peering information on a resource * add PeerName as attribute to service model * surface peering information in service list * Add tooltip to Consul::Peer * Make services searchable by peer-name * Allow passing optional query-params to href-to * Add peer query-param to dc.services.show * Pass peer as query-param services listing * support option peer route-param * set peer-name undefined in services serializer when empty * update peer route-param when navigating to peered service * request sercice with peer-name if need be * make sure to reset peer route-param when leaving service.show * componentize services.peer-info * surface peer info services.show * make sure to reset peer route-param in main nav * fix services breadcrumb services.intentions we need to reset peer route-param here to not break the app * surface peer when querying for it on service api call * query for peer info service-instance api calls * surface peer info service-instance.show * Camelize peer attributes to match rest of app * Refactor peers.index to reflect camelized attributes for peer * Remove unused query-params services.show * make logo href reset peer route-param * Cleanup optional peer param query service-instance * Use replace decorator instead of serializer for empty peerName * make sure to only send peer info when correct qp is passed * Always send qp for querying peers services request * rename with-imports to with-peers * Use css for peer-icon * Refactor bucket-list component to surface peer-info * Remove Consul::Peer component This info is now displayed via the bucket-list component * Fix bucket-list component to surface service again * Update bucket-list docs to reflect peer-info addition * Remove tailwind related styles * Remove consul-tailwind package We won't be using tailwind for now * Fix typo badge scss * Add with-import handling mock-api nodes * Add peerName to node attributes * include peers when querying nodes * reflect api updates node list mock * Create consul::node::peer-info component * Surface peer-info in nodes list * Mock peer response for node request * Make it possible to add peer-name to node request * Update peer route-param when linking to node * Reset peers route-param when leaving nodes.show We need to reset the route-param to not introduce a bug - otherwise subsequent node show request would request with the old peer query-param * Add sourcePeer intentions api mock * add SourcePeer attr to intentions model * Surface peering info on intentions list * Request peered intentions differently intentions.edit * Handle peer info in intentions/exact mock * Surface peering info intention view * Add randomized peer data topology mock * Surface peer info topology view * fix service/peer-info styling We aren't using tailwind anymore - we need to create a custom scss file * Update peerings api mocks * Update peerings::badge with updated styling * cleanup intentions/exact mock * Create watcher component to declaratively register polling * Poll peers in background when on peers route * use existing colors for peering-badge * Add test for requesting service with `with-peers`-query * add imported/exported count to peers model * update mock-api to surface exported/imported count on peers * Show exported/imported peers count on peers list * Use translations for service import/export UI peers * Make sure to ask for nodes with peers * Add match-url step for easier url testing of service urls * Add test for peer-name on peered services * Add test for service navigation peered service * Implement feature-flag handling * Enable peering feature in test and development * Redirect peers to services.index when feature-flag is disabled * Only query for peers when feature is enabled * Only show peers in nav when feature is enabled * Componentize peering service count detail * Handle non-state Peerings::Badge * Use Peerings::ServiceCount in peerings list * Only send peer query for peered service-instances. * Add step to visit url directly * add test for accessing peered service directly * Remove unused service import peers.index * Only query for peer when peer provided node-adapter * fix tests
387 lines
15 KiB
YAML
387 lines
15 KiB
YAML
dc:
|
||
show:
|
||
title: Cluster Overview
|
||
serverstatus:
|
||
title: Server status
|
||
unassigned: Unassigned Zones
|
||
tolerance:
|
||
link: |
|
||
<a href="{CONSUL_DOCS_URL}/architecture/improving-consul-resilience#strategies-to-increase-fault-tolerance" target="_blank" rel="noopener noreferrer">Learn how to improve fault tolerance</a>
|
||
header: Server fault tolerance
|
||
immediate:
|
||
header: Immediate
|
||
body: the number of healthy active voting servers that can fail at once without causing an outage
|
||
optimistic:
|
||
header: Optimistic
|
||
body: the number of healthy active and back-up voting servers that can fail gradually without causing an outage
|
||
cataloghealth:
|
||
title: Health
|
||
license:
|
||
title: License
|
||
expiry:
|
||
header: Expiry
|
||
expired:
|
||
header: Expired
|
||
body: |
|
||
<p>
|
||
Your license expired on {date} at {time}.
|
||
</p>
|
||
valid:
|
||
header: ''
|
||
body: |
|
||
<p>
|
||
Your license expires on {date} at {time}.
|
||
</p>
|
||
documentation:
|
||
title: Learn More
|
||
body: |
|
||
<ul>
|
||
<li>
|
||
<a href="{CONSUL_DOCS_URL}/enterprise/license/faq#q-is-there-a-grace-period-when-licenses-expire" target="_blank" rel="noopener noreferrer">
|
||
License expiration
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="{CONSUL_DOCS_URL}/enterprise/license/faq#q-how-can-i-renew-a-license" target="_blank" rel="noopener noreferrer">
|
||
Renewing a license
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="{CONSUL_DOCS_LEARN_URL}/tutorials/nomad/hashicorp-enterprise-license?in=consul/enterprise" target="_blank" rel="noopener noreferrer">
|
||
Applying a new license
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
|
||
nodes:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Nodes}
|
||
other {No Nodes found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any registered Nodes in this Consul cluster}
|
||
other {No Nodes were found matching your search}
|
||
}, or you may not have <code>service:read</code> and <code>node:read</code> permissions access to this view.
|
||
</p>
|
||
show:
|
||
rtt:
|
||
title: Round Trip Time
|
||
metadata:
|
||
title: Metadata
|
||
sessions:
|
||
title: Lock Sessions
|
||
empty:
|
||
header: Welcome to Lock Sessions
|
||
body: |
|
||
<p>
|
||
Consul provides a session mechanism which can be used to build distributed locks. Sessions act as a binding layer between Nodes, Health Checks, and Key/Value data. There are currently no Lock Sessions present, or you may not have <code>key:read</code> or <code>session:read</code> permissions.
|
||
</p>
|
||
services:
|
||
title: Service Instances
|
||
empty: |
|
||
<p>
|
||
This Node has no Service Instances{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
healthchecks:
|
||
title: Health Checks
|
||
empty: |
|
||
<p>
|
||
This Node has no Health Checks{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
critical-serf-notice:
|
||
header: Failing serf check
|
||
body: |
|
||
<p>
|
||
This node has a failing serf node check. The health statuses shown on this page are the statuses as they were known before the node became unreachable.
|
||
</p>
|
||
peers:
|
||
index:
|
||
detail:
|
||
imported:
|
||
count: |
|
||
{count} imported services
|
||
tooltip: The number of services imported from {name}
|
||
exported:
|
||
count: |
|
||
{count} exported services
|
||
tooltip: The number of services exported from {name}
|
||
services:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Services}
|
||
other {No Services found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any registered services in this Consul cluster}
|
||
other {No Services were found matching your search}
|
||
}, or you may not have <code>service:read</code> and <code>node:read</code> access to this view. Use Terraform, Kubernetes CRDs, Vault, or the Consul CLI to register Services.
|
||
</p>
|
||
instance:
|
||
exposedpaths:
|
||
intro: |
|
||
<p>
|
||
The following list shows individual HTTP paths exposed through Envoy for external services like Prometheus. Read more about this in our <a href="{CONSUL_DOCS_URL}/connect/registration/service-registration#expose-paths-configuration-reference" target="_blank" rel="noopener noreferrer">documentation</a>.
|
||
</p>
|
||
|
||
empty:
|
||
body: |
|
||
<p>
|
||
There are no individual HTTP paths exposed through Envoy for external services like Prometheus. Read more about this in our <a href="{CONSUL_DOCS_URL}/connect/registration/service-registration#expose-paths-configuration-reference" target="_blank" rel="noopener noreferrer">documentation</a>.
|
||
</p>
|
||
healthchecks:
|
||
empty: |
|
||
<p>
|
||
This instance has no health checks{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
critical-serf-notice:
|
||
header: Failing serf check
|
||
body: |
|
||
<p>
|
||
This instance has a failing serf node check. The health statuses shown on this page are the statuses as they were known before the node became unreachable.
|
||
</p>
|
||
upstreams:
|
||
tproxy-mode:
|
||
header: Transparent proxy mode
|
||
body: |
|
||
<p>
|
||
The upstreams listed on this page have been defined in a proxy registration. There may be more upstreams, though, as "transparent" mode is enabled on this proxy.
|
||
</p>
|
||
footer: |
|
||
<p>
|
||
<a href="{CONSUL_DOCS_URL}/connect/transparent-proxy" target="_blank" rel="noopener noreferrer">Read the documentation
|
||
</p>
|
||
empty: |
|
||
<p>
|
||
This Service Instance has no Upstreams{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
show:
|
||
topology:
|
||
notices:
|
||
open: Expand Banners
|
||
close: Collapse Banners
|
||
notice:
|
||
filtered-by-acls:
|
||
header: Limited Access
|
||
body: This service may have dependencies you won’t see because you don’t have access to them.
|
||
default-allow:
|
||
header: Intentions are set to default allow
|
||
body: Your Intention settings are currently set to default allow. This means that this view will show connections to every service in your cluster. We recommend changing your Intention settings to default deny and creating specific Intentions for upstream and downstream services for this view to be useful.
|
||
footer: |
|
||
<p>
|
||
<a href="{route_intentions}">Edit Intentions</a>
|
||
</p>
|
||
wildcard-intention:
|
||
header: Permissive Intention
|
||
body: One or more of your Intentions are set to allow traffic to and/or from all other services in a namespace. This Topology view will show all of those connections if that remains unchanged. We recommend setting more specific Intentions for upstream and downstream services to make this visualization more useful.
|
||
footer: |
|
||
<p>
|
||
<a href="{route_intentions}">Edit Intentions</a>
|
||
</p>
|
||
not-defined-intention:
|
||
header: Connections are not explicitly defined
|
||
body: There appears to be an Intention allowing traffic, but the services are unable to communicate until that connection is enabled by defining an explicit upstream or proxies are set to 'transparent' mode.
|
||
footer: |
|
||
<p>
|
||
<a href="{CONSUL_DOCS_URL}/connect/registration/service-registration#upstreams" target="_blank" rel="noopener noreferrer">Read the documentation</a>
|
||
</p>
|
||
no-dependencies:
|
||
header: No dependencies
|
||
body: The service you are viewing currently has no dependencies. You will only see metrics for the current service until dependencies are added.
|
||
footer: |
|
||
<p>
|
||
<a href="{CONSUL_DOCS_URL}/connect/registration/service-registration#upstream-configuration-reference" target="_blank" rel="noopener noreferrer">Read the documentation</a>
|
||
</p>
|
||
acls-disabled:
|
||
header: Enable ACLs
|
||
body: This connect-native service may have dependencies, but Consul isn't aware of them when ACLs are disabled. Enable ACLs to make this view more useful.
|
||
footer: |
|
||
<p>
|
||
<a href="{CONSUL_DOCS_URL}/security/acl/acl-system#configuring-acls" target="_blank" rel="noopener noreferrer">Read the documentation</a>
|
||
</p>
|
||
intentions:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Intentions}
|
||
other {No Intentions found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any Intentions in this Consul cluster}
|
||
other {No Intentions were found matching your search}
|
||
}, or you may not have <code>intentions:read</code> permissions access to this view.
|
||
</p>
|
||
|
||
instances:
|
||
empty: |
|
||
<p>
|
||
This Service has no Instances{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
services:
|
||
intro: |
|
||
<p>
|
||
The following services may receive traffic from external services through this gateway. Learn more about configuring gateways in our <a href="{CONSUL_DOCS_URL}/connect/terminating-gateway" target="_blank" rel="noopener noreferrer">step-by-step guide</a>.
|
||
</p>
|
||
empty: |
|
||
<p>
|
||
There are no Services{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
tags:
|
||
empty:
|
||
header: Welcome to Tags
|
||
body: |
|
||
<p>
|
||
There are no tags for this Service.
|
||
</p>
|
||
upstreams:
|
||
intro: |
|
||
<p>
|
||
Upstreams are services that may receive traffic from this gateway. If you are not using Consul DNS, please make sure your <code>Host:</code> header uses the correct domain name for the gateway to correctly proxy to its upstreams. Learn more about configuring gateways in our <a href="{CONSUL_DOCS_URL}/connect/ingress-gateways" target="_blank" rel="noopener noreferrer">documentation</a>.
|
||
</p>
|
||
empty: |
|
||
<p>
|
||
This Service has no Upstreams{items, select,
|
||
0 {}
|
||
other { matching that search}
|
||
}.
|
||
</p>
|
||
|
||
routing-config:
|
||
source: Routing Configuration
|
||
intentions:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Intentions}
|
||
other {No Intentions found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any Intentions in this Consul cluster}
|
||
other {No Intentions were found matching your search}
|
||
}, or you may not have <code>intentions:read</code> permissions access to this view.
|
||
</p>
|
||
kv:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Key/Value}
|
||
other {No Key/Values found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any K/V pairs in this Consul cluster yet}
|
||
other {No K/V pairs were found matching your search}
|
||
}, or you may not have <code>key:read</code> permissions access to this view.
|
||
</p>
|
||
acls:
|
||
tokens:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Tokens}
|
||
other {No Tokens found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any Tokens}
|
||
other {No Tokens were found matching your search}
|
||
}, or you may not have <code>acl:read</code> permissions to view Tokens yet.
|
||
</p>
|
||
policies:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Policies}
|
||
other {No Policies found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any Policies}
|
||
other {No Policies were found matching your search}
|
||
}, or you may not have <code>acl:read</code> permissions to view Policies yet.
|
||
</p>
|
||
roles:
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Roles}
|
||
other {No Roles found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any Roles}
|
||
other {No Roles were found matching your search}
|
||
}, or you may not have <code>acl:read</code> permissions to view Roles yet.
|
||
</p>
|
||
auth-methods:
|
||
show:
|
||
binding-rules:
|
||
empty:
|
||
header: No Binding Rules
|
||
body: |
|
||
<p>
|
||
Binding rules allow an operator to express a systematic way of automatically linking roles and service identities to newly created tokens without operator intervention.
|
||
</p>
|
||
nspace-rules:
|
||
empty:
|
||
header: No Namespace Rules
|
||
body: |
|
||
<p>
|
||
A set of rules that can control which namespace tokens created via this auth method will be created within. Unlike binding rules, the first matching namespace rule wins.
|
||
</p>
|
||
|
||
index:
|
||
empty:
|
||
header: |
|
||
{items, select,
|
||
0 {Welcome to Auth Methods}
|
||
other {No Auth Methods found}
|
||
}
|
||
body: |
|
||
<p>
|
||
{items, select,
|
||
0 {There don't seem to be any Auth Methods}
|
||
other {No Auth Methods were found matching your search}
|
||
}, or you may not have <code>acl:read</code> permissions to view Auth Methods yet.
|
||
</p>
|