Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

81 lines
2.6 KiB

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
syntax = "proto3";
package hashicorp.consul.catalog.v2beta1;
import "pbcatalog/v2beta1/protocol.proto";
import "pbresource/annotations.proto";
// Workload is the representation of a unit of addressable work. This could
// represent a process on a VM, a Kubernetes pod or something else entirely.
message Workload {
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
// addresses has a list of all workload addresses. This should include
// LAN and WAN addresses as well as any addresses a proxy would need
// to bind to (if different from the default address).
repeated WorkloadAddress addresses = 1;
// ports is a map from port name to workload port’s number and protocol.
map<string, WorkloadPort> ports = 2;
// node_name is the name of the node this workload belongs to.
string node_name = 3;
// identity is the name of the workload identity this workload is associated with.
string identity = 4;
// Locality specifies workload locality.
Locality locality = 5;
// Below fields are deprecated but kept here for backward compatibility reasons.
// deprecated: tags correspond to service tags that you can add to a service for DNS resolution.
repeated string tags = 6 [deprecated = true];
// deprecated: enable_tag_override indicates whether agents should be overriding tags during anti-entropy syncs.
bool enable_tag_override = 7 [deprecated = true];
// deprecated: connect_native indicates whether this workload is connect native which will allow it to be
// part of MeshEndpoints without having the corresponding Proxy resource.
bool connect_native = 8 [deprecated = true];
// dns contains any workload customization that will be returned in DNS discovery requests.
DNSPolicy dns = 9;
}
message WorkloadAddress {
// host can be an IP, DNS name or a unix socket.
// If it's a unix socket, only one port can be provided.
string host = 1;
// ports is a list of names of ports that this host binds to.
// If no ports are provided, we will assume all ports from the ports map.
repeated string ports = 2;
// external indicates whether this address should be used for external communication
// (aka a WAN address).
bool external = 3;
}
message WorkloadPort {
uint32 port = 1;
Protocol protocol = 2;
}
message Locality {
// Region is region the zone belongs to.
string region = 1;
// Zone is the zone the entity is running in.
string zone = 2;
}
message DNSPolicy {
Weights weights = 1;
}
message Weights {
uint32 passing = 1;
uint32 warning = 2;
}