consul/proto-public/pbcatalog/v2beta1/workload.proto

82 lines
2.6 KiB
Protocol Buffer
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 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 ports 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;
}