mirror of https://github.com/status-im/consul.git
Sync partition fields from enterprise (#11021)
This commit is contained in:
parent
ad914e16c2
commit
5b658d2f39
|
@ -30,6 +30,7 @@ const (
|
||||||
type ConfigEntry interface {
|
type ConfigEntry interface {
|
||||||
GetKind() string
|
GetKind() string
|
||||||
GetName() string
|
GetName() string
|
||||||
|
GetPartition() string
|
||||||
GetNamespace() string
|
GetNamespace() string
|
||||||
GetMeta() map[string]string
|
GetMeta() map[string]string
|
||||||
GetCreateIndex() uint64
|
GetCreateIndex() uint64
|
||||||
|
@ -133,6 +134,10 @@ type UpstreamConfiguration struct {
|
||||||
type UpstreamConfig struct {
|
type UpstreamConfig struct {
|
||||||
// Name is only accepted within a service-defaults config entry.
|
// Name is only accepted within a service-defaults config entry.
|
||||||
Name string `json:",omitempty"`
|
Name string `json:",omitempty"`
|
||||||
|
|
||||||
|
// Partition is only accepted within a service-defaults config entry.
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
|
|
||||||
// Namespace is only accepted within a service-defaults config entry.
|
// Namespace is only accepted within a service-defaults config entry.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
|
@ -205,6 +210,7 @@ type UpstreamLimits struct {
|
||||||
type ServiceConfigEntry struct {
|
type ServiceConfigEntry struct {
|
||||||
Kind string
|
Kind string
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
Protocol string `json:",omitempty"`
|
Protocol string `json:",omitempty"`
|
||||||
Mode ProxyMode `json:",omitempty"`
|
Mode ProxyMode `json:",omitempty"`
|
||||||
|
@ -219,33 +225,18 @@ type ServiceConfigEntry struct {
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ServiceConfigEntry) GetKind() string {
|
func (s *ServiceConfigEntry) GetKind() string { return s.Kind }
|
||||||
return s.Kind
|
func (s *ServiceConfigEntry) GetName() string { return s.Name }
|
||||||
}
|
func (s *ServiceConfigEntry) GetPartition() string { return s.Partition }
|
||||||
|
func (s *ServiceConfigEntry) GetNamespace() string { return s.Namespace }
|
||||||
func (s *ServiceConfigEntry) GetName() string {
|
func (s *ServiceConfigEntry) GetMeta() map[string]string { return s.Meta }
|
||||||
return s.Name
|
func (s *ServiceConfigEntry) GetCreateIndex() uint64 { return s.CreateIndex }
|
||||||
}
|
func (s *ServiceConfigEntry) GetModifyIndex() uint64 { return s.ModifyIndex }
|
||||||
|
|
||||||
func (s *ServiceConfigEntry) GetNamespace() string {
|
|
||||||
return s.Namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *ServiceConfigEntry) GetMeta() map[string]string {
|
|
||||||
return s.Meta
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *ServiceConfigEntry) GetCreateIndex() uint64 {
|
|
||||||
return s.CreateIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *ServiceConfigEntry) GetModifyIndex() uint64 {
|
|
||||||
return s.ModifyIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
type ProxyConfigEntry struct {
|
type ProxyConfigEntry struct {
|
||||||
Kind string
|
Kind string
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
Mode ProxyMode `json:",omitempty"`
|
Mode ProxyMode `json:",omitempty"`
|
||||||
TransparentProxy *TransparentProxyConfig `json:",omitempty" alias:"transparent_proxy"`
|
TransparentProxy *TransparentProxyConfig `json:",omitempty" alias:"transparent_proxy"`
|
||||||
|
@ -257,29 +248,13 @@ type ProxyConfigEntry struct {
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ProxyConfigEntry) GetKind() string {
|
func (p *ProxyConfigEntry) GetKind() string { return p.Kind }
|
||||||
return p.Kind
|
func (p *ProxyConfigEntry) GetName() string { return p.Name }
|
||||||
}
|
func (p *ProxyConfigEntry) GetPartition() string { return p.Partition }
|
||||||
|
func (p *ProxyConfigEntry) GetNamespace() string { return p.Namespace }
|
||||||
func (p *ProxyConfigEntry) GetName() string {
|
func (p *ProxyConfigEntry) GetMeta() map[string]string { return p.Meta }
|
||||||
return p.Name
|
func (p *ProxyConfigEntry) GetCreateIndex() uint64 { return p.CreateIndex }
|
||||||
}
|
func (p *ProxyConfigEntry) GetModifyIndex() uint64 { return p.ModifyIndex }
|
||||||
|
|
||||||
func (p *ProxyConfigEntry) GetNamespace() string {
|
|
||||||
return p.Namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *ProxyConfigEntry) GetMeta() map[string]string {
|
|
||||||
return p.Meta
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *ProxyConfigEntry) GetCreateIndex() uint64 {
|
|
||||||
return p.CreateIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *ProxyConfigEntry) GetModifyIndex() uint64 {
|
|
||||||
return p.ModifyIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func makeConfigEntry(kind, name string) (ConfigEntry, error) {
|
func makeConfigEntry(kind, name string) (ConfigEntry, error) {
|
||||||
switch kind {
|
switch kind {
|
||||||
|
|
|
@ -2,41 +2,44 @@ package api
|
||||||
|
|
||||||
import "encoding/json"
|
import "encoding/json"
|
||||||
|
|
||||||
|
// MeshConfigEntry manages the global configuration for all service mesh
|
||||||
|
// proxies.
|
||||||
type MeshConfigEntry struct {
|
type MeshConfigEntry struct {
|
||||||
Namespace string `json:",omitempty"`
|
// Partition is the partition the MeshConfigEntry applies to.
|
||||||
|
// Partitioning is a Consul Enterprise feature.
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
|
|
||||||
|
// Namespace is the namespace the MeshConfigEntry applies to.
|
||||||
|
// Namespacing is a Consul Enterprise feature.
|
||||||
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
|
// TransparentProxy applies configuration specific to proxies
|
||||||
|
// in transparent mode.
|
||||||
TransparentProxy TransparentProxyMeshConfig `alias:"transparent_proxy"`
|
TransparentProxy TransparentProxyMeshConfig `alias:"transparent_proxy"`
|
||||||
Meta map[string]string `json:",omitempty"`
|
|
||||||
CreateIndex uint64
|
Meta map[string]string `json:",omitempty"`
|
||||||
ModifyIndex uint64
|
|
||||||
|
// CreateIndex is the Raft index this entry was created at. This is a
|
||||||
|
// read-only field.
|
||||||
|
CreateIndex uint64
|
||||||
|
|
||||||
|
// ModifyIndex is used for the Check-And-Set operations and can also be fed
|
||||||
|
// back into the WaitIndex of the QueryOptions in order to perform blocking
|
||||||
|
// queries.
|
||||||
|
ModifyIndex uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type TransparentProxyMeshConfig struct {
|
type TransparentProxyMeshConfig struct {
|
||||||
MeshDestinationsOnly bool `alias:"mesh_destinations_only"`
|
MeshDestinationsOnly bool `alias:"mesh_destinations_only"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *MeshConfigEntry) GetKind() string {
|
func (e *MeshConfigEntry) GetKind() string { return MeshConfig }
|
||||||
return MeshConfig
|
func (e *MeshConfigEntry) GetName() string { return MeshConfigMesh }
|
||||||
}
|
func (e *MeshConfigEntry) GetPartition() string { return e.Partition }
|
||||||
|
func (e *MeshConfigEntry) GetNamespace() string { return e.Namespace }
|
||||||
func (e *MeshConfigEntry) GetName() string {
|
func (e *MeshConfigEntry) GetMeta() map[string]string { return e.Meta }
|
||||||
return MeshConfigMesh
|
func (e *MeshConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
||||||
}
|
func (e *MeshConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex }
|
||||||
|
|
||||||
func (e *MeshConfigEntry) GetNamespace() string {
|
|
||||||
return e.Namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *MeshConfigEntry) GetMeta() map[string]string {
|
|
||||||
return e.Meta
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *MeshConfigEntry) GetCreateIndex() uint64 {
|
|
||||||
return e.CreateIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *MeshConfigEntry) GetModifyIndex() uint64 {
|
|
||||||
return e.ModifyIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON adds the Kind field so that the JSON can be decoded back into the
|
// MarshalJSON adds the Kind field so that the JSON can be decoded back into the
|
||||||
// correct type.
|
// correct type.
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
type ServiceRouterConfigEntry struct {
|
type ServiceRouterConfigEntry struct {
|
||||||
Kind string
|
Kind string
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
Routes []ServiceRoute `json:",omitempty"`
|
Routes []ServiceRoute `json:",omitempty"`
|
||||||
|
@ -19,6 +20,7 @@ type ServiceRouterConfigEntry struct {
|
||||||
|
|
||||||
func (e *ServiceRouterConfigEntry) GetKind() string { return e.Kind }
|
func (e *ServiceRouterConfigEntry) GetKind() string { return e.Kind }
|
||||||
func (e *ServiceRouterConfigEntry) GetName() string { return e.Name }
|
func (e *ServiceRouterConfigEntry) GetName() string { return e.Name }
|
||||||
|
func (e *ServiceRouterConfigEntry) GetPartition() string { return e.Partition }
|
||||||
func (e *ServiceRouterConfigEntry) GetNamespace() string { return e.Namespace }
|
func (e *ServiceRouterConfigEntry) GetNamespace() string { return e.Namespace }
|
||||||
func (e *ServiceRouterConfigEntry) GetMeta() map[string]string { return e.Meta }
|
func (e *ServiceRouterConfigEntry) GetMeta() map[string]string { return e.Meta }
|
||||||
func (e *ServiceRouterConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
func (e *ServiceRouterConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
||||||
|
@ -61,8 +63,9 @@ type ServiceRouteHTTPMatchQueryParam struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServiceRouteDestination struct {
|
type ServiceRouteDestination struct {
|
||||||
Service string `json:",omitempty"`
|
Service string `json:",omitempty"`
|
||||||
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
||||||
|
// Referencing other partitions is not supported.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
PrefixRewrite string `json:",omitempty" alias:"prefix_rewrite"`
|
PrefixRewrite string `json:",omitempty" alias:"prefix_rewrite"`
|
||||||
RequestTimeout time.Duration `json:",omitempty" alias:"request_timeout"`
|
RequestTimeout time.Duration `json:",omitempty" alias:"request_timeout"`
|
||||||
|
@ -112,6 +115,7 @@ func (e *ServiceRouteDestination) UnmarshalJSON(data []byte) error {
|
||||||
type ServiceSplitterConfigEntry struct {
|
type ServiceSplitterConfigEntry struct {
|
||||||
Kind string
|
Kind string
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
Splits []ServiceSplit `json:",omitempty"`
|
Splits []ServiceSplit `json:",omitempty"`
|
||||||
|
@ -123,15 +127,17 @@ type ServiceSplitterConfigEntry struct {
|
||||||
|
|
||||||
func (e *ServiceSplitterConfigEntry) GetKind() string { return e.Kind }
|
func (e *ServiceSplitterConfigEntry) GetKind() string { return e.Kind }
|
||||||
func (e *ServiceSplitterConfigEntry) GetName() string { return e.Name }
|
func (e *ServiceSplitterConfigEntry) GetName() string { return e.Name }
|
||||||
|
func (e *ServiceSplitterConfigEntry) GetPartition() string { return e.Partition }
|
||||||
func (e *ServiceSplitterConfigEntry) GetNamespace() string { return e.Namespace }
|
func (e *ServiceSplitterConfigEntry) GetNamespace() string { return e.Namespace }
|
||||||
func (e *ServiceSplitterConfigEntry) GetMeta() map[string]string { return e.Meta }
|
func (e *ServiceSplitterConfigEntry) GetMeta() map[string]string { return e.Meta }
|
||||||
func (e *ServiceSplitterConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
func (e *ServiceSplitterConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
||||||
func (e *ServiceSplitterConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex }
|
func (e *ServiceSplitterConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex }
|
||||||
|
|
||||||
type ServiceSplit struct {
|
type ServiceSplit struct {
|
||||||
Weight float32
|
Weight float32
|
||||||
Service string `json:",omitempty"`
|
Service string `json:",omitempty"`
|
||||||
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
||||||
|
// Referencing other partitions is not supported.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
RequestHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"request_headers"`
|
RequestHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"request_headers"`
|
||||||
ResponseHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"response_headers"`
|
ResponseHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"response_headers"`
|
||||||
|
@ -140,6 +146,7 @@ type ServiceSplit struct {
|
||||||
type ServiceResolverConfigEntry struct {
|
type ServiceResolverConfigEntry struct {
|
||||||
Kind string
|
Kind string
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
DefaultSubset string `json:",omitempty" alias:"default_subset"`
|
DefaultSubset string `json:",omitempty" alias:"default_subset"`
|
||||||
|
@ -195,6 +202,7 @@ func (e *ServiceResolverConfigEntry) UnmarshalJSON(data []byte) error {
|
||||||
|
|
||||||
func (e *ServiceResolverConfigEntry) GetKind() string { return e.Kind }
|
func (e *ServiceResolverConfigEntry) GetKind() string { return e.Kind }
|
||||||
func (e *ServiceResolverConfigEntry) GetName() string { return e.Name }
|
func (e *ServiceResolverConfigEntry) GetName() string { return e.Name }
|
||||||
|
func (e *ServiceResolverConfigEntry) GetPartition() string { return e.Partition }
|
||||||
func (e *ServiceResolverConfigEntry) GetNamespace() string { return e.Namespace }
|
func (e *ServiceResolverConfigEntry) GetNamespace() string { return e.Namespace }
|
||||||
func (e *ServiceResolverConfigEntry) GetMeta() map[string]string { return e.Meta }
|
func (e *ServiceResolverConfigEntry) GetMeta() map[string]string { return e.Meta }
|
||||||
func (e *ServiceResolverConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
func (e *ServiceResolverConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
||||||
|
@ -208,15 +216,17 @@ type ServiceResolverSubset struct {
|
||||||
type ServiceResolverRedirect struct {
|
type ServiceResolverRedirect struct {
|
||||||
Service string `json:",omitempty"`
|
Service string `json:",omitempty"`
|
||||||
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
||||||
Namespace string `json:",omitempty"`
|
// Referencing other partitions is not supported.
|
||||||
Datacenter string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
Datacenter string `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ServiceResolverFailover struct {
|
type ServiceResolverFailover struct {
|
||||||
Service string `json:",omitempty"`
|
Service string `json:",omitempty"`
|
||||||
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
ServiceSubset string `json:",omitempty" alias:"service_subset"`
|
||||||
Namespace string `json:",omitempty"`
|
// Referencing other partitions is not supported.
|
||||||
Datacenters []string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
Datacenters []string `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadBalancer determines the load balancing policy and configuration for services
|
// LoadBalancer determines the load balancing policy and configuration for services
|
||||||
|
|
|
@ -139,6 +139,7 @@ func TestAPI_ConfigEntry_DiscoveryChain(t *testing.T) {
|
||||||
entry: &ServiceResolverConfigEntry{
|
entry: &ServiceResolverConfigEntry{
|
||||||
Kind: ServiceResolver,
|
Kind: ServiceResolver,
|
||||||
Name: "test-failover",
|
Name: "test-failover",
|
||||||
|
Partition: defaultPartition,
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
DefaultSubset: "v1",
|
DefaultSubset: "v1",
|
||||||
Subsets: map[string]ServiceResolverSubset{
|
Subsets: map[string]ServiceResolverSubset{
|
||||||
|
@ -171,6 +172,7 @@ func TestAPI_ConfigEntry_DiscoveryChain(t *testing.T) {
|
||||||
entry: &ServiceResolverConfigEntry{
|
entry: &ServiceResolverConfigEntry{
|
||||||
Kind: ServiceResolver,
|
Kind: ServiceResolver,
|
||||||
Name: "test-redirect",
|
Name: "test-redirect",
|
||||||
|
Partition: defaultPartition,
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
Redirect: &ServiceResolverRedirect{
|
Redirect: &ServiceResolverRedirect{
|
||||||
Service: "test-failover",
|
Service: "test-failover",
|
||||||
|
@ -186,6 +188,7 @@ func TestAPI_ConfigEntry_DiscoveryChain(t *testing.T) {
|
||||||
entry: &ServiceSplitterConfigEntry{
|
entry: &ServiceSplitterConfigEntry{
|
||||||
Kind: ServiceSplitter,
|
Kind: ServiceSplitter,
|
||||||
Name: "test-split",
|
Name: "test-split",
|
||||||
|
Partition: defaultPartition,
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
Splits: []ServiceSplit{
|
Splits: []ServiceSplit{
|
||||||
{
|
{
|
||||||
|
@ -220,6 +223,7 @@ func TestAPI_ConfigEntry_DiscoveryChain(t *testing.T) {
|
||||||
entry: &ServiceRouterConfigEntry{
|
entry: &ServiceRouterConfigEntry{
|
||||||
Kind: ServiceRouter,
|
Kind: ServiceRouter,
|
||||||
Name: "test-route",
|
Name: "test-route",
|
||||||
|
Partition: defaultPartition,
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
Routes: []ServiceRoute{
|
Routes: []ServiceRoute{
|
||||||
{
|
{
|
||||||
|
@ -329,6 +333,7 @@ func TestAPI_ConfigEntry_ServiceResolver_LoadBalancer(t *testing.T) {
|
||||||
entry: &ServiceResolverConfigEntry{
|
entry: &ServiceResolverConfigEntry{
|
||||||
Kind: ServiceResolver,
|
Kind: ServiceResolver,
|
||||||
Name: "test-least-req",
|
Name: "test-least-req",
|
||||||
|
Partition: defaultPartition,
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
LoadBalancer: &LoadBalancer{
|
LoadBalancer: &LoadBalancer{
|
||||||
Policy: "least_request",
|
Policy: "least_request",
|
||||||
|
@ -343,6 +348,7 @@ func TestAPI_ConfigEntry_ServiceResolver_LoadBalancer(t *testing.T) {
|
||||||
Kind: ServiceResolver,
|
Kind: ServiceResolver,
|
||||||
Name: "test-ring-hash",
|
Name: "test-ring-hash",
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
|
Partition: defaultPartition,
|
||||||
LoadBalancer: &LoadBalancer{
|
LoadBalancer: &LoadBalancer{
|
||||||
Policy: "ring_hash",
|
Policy: "ring_hash",
|
||||||
RingHashConfig: &RingHashConfig{
|
RingHashConfig: &RingHashConfig{
|
||||||
|
|
|
@ -10,7 +10,11 @@ type IngressGatewayConfigEntry struct {
|
||||||
// service. This should match the name provided in the service definition.
|
// service. This should match the name provided in the service definition.
|
||||||
Name string
|
Name string
|
||||||
|
|
||||||
// Namespace is the namespace the IngressGateway is associated with
|
// Partition is the partition the IngressGateway is associated with.
|
||||||
|
// Partitioning is a Consul Enterprise feature.
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
|
|
||||||
|
// Namespace is the namespace the IngressGateway is associated with.
|
||||||
// Namespacing is a Consul Enterprise feature.
|
// Namespacing is a Consul Enterprise feature.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
|
@ -34,7 +38,7 @@ type IngressGatewayConfigEntry struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type GatewayTLSConfig struct {
|
type GatewayTLSConfig struct {
|
||||||
// Indicates that TLS should be enabled for this gateway service
|
// Indicates that TLS should be enabled for this gateway service.
|
||||||
Enabled bool
|
Enabled bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +71,7 @@ type IngressService struct {
|
||||||
// protocol and means that the listener will forward traffic to all services.
|
// protocol and means that the listener will forward traffic to all services.
|
||||||
//
|
//
|
||||||
// A name can be specified on multiple listeners, and will be exposed on both
|
// A name can be specified on multiple listeners, and will be exposed on both
|
||||||
// of the listeners
|
// of the listeners.
|
||||||
Name string
|
Name string
|
||||||
|
|
||||||
// Hosts is a list of hostnames which should be associated to this service on
|
// Hosts is a list of hostnames which should be associated to this service on
|
||||||
|
@ -83,38 +87,24 @@ type IngressService struct {
|
||||||
// using a "tcp" listener.
|
// using a "tcp" listener.
|
||||||
Hosts []string
|
Hosts []string
|
||||||
|
|
||||||
// Allow HTTP header manipulation to be configured.
|
// Referencing other partitions is not supported.
|
||||||
RequestHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"request_headers"`
|
|
||||||
ResponseHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"response_headers"`
|
|
||||||
|
|
||||||
// Namespace is the namespace where the service is located.
|
// Namespace is the namespace where the service is located.
|
||||||
// Namespacing is a Consul Enterprise feature.
|
// Namespacing is a Consul Enterprise feature.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
|
// Allow HTTP header manipulation to be configured.
|
||||||
|
RequestHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"request_headers"`
|
||||||
|
ResponseHeaders *HTTPHeaderModifiers `json:",omitempty" alias:"response_headers"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *IngressGatewayConfigEntry) GetKind() string {
|
func (i *IngressGatewayConfigEntry) GetKind() string { return i.Kind }
|
||||||
return i.Kind
|
func (i *IngressGatewayConfigEntry) GetName() string { return i.Name }
|
||||||
}
|
func (i *IngressGatewayConfigEntry) GetPartition() string { return i.Partition }
|
||||||
|
func (i *IngressGatewayConfigEntry) GetNamespace() string { return i.Namespace }
|
||||||
func (i *IngressGatewayConfigEntry) GetName() string {
|
func (i *IngressGatewayConfigEntry) GetMeta() map[string]string { return i.Meta }
|
||||||
return i.Name
|
func (i *IngressGatewayConfigEntry) GetCreateIndex() uint64 { return i.CreateIndex }
|
||||||
}
|
func (i *IngressGatewayConfigEntry) GetModifyIndex() uint64 { return i.ModifyIndex }
|
||||||
|
|
||||||
func (i *IngressGatewayConfigEntry) GetNamespace() string {
|
|
||||||
return i.Namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *IngressGatewayConfigEntry) GetMeta() map[string]string {
|
|
||||||
return i.Meta
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *IngressGatewayConfigEntry) GetCreateIndex() uint64 {
|
|
||||||
return i.CreateIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (i *IngressGatewayConfigEntry) GetModifyIndex() uint64 {
|
|
||||||
return i.ModifyIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
// TerminatingGatewayConfigEntry manages the configuration for a terminating gateway
|
// TerminatingGatewayConfigEntry manages the configuration for a terminating gateway
|
||||||
// with the given name.
|
// with the given name.
|
||||||
|
@ -140,55 +130,45 @@ type TerminatingGatewayConfigEntry struct {
|
||||||
// queries.
|
// queries.
|
||||||
ModifyIndex uint64
|
ModifyIndex uint64
|
||||||
|
|
||||||
// Namespace is the namespace the config entry is associated with
|
// Partition is the partition the config entry is associated with.
|
||||||
|
// Partitioning is a Consul Enterprise feature.
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
|
|
||||||
|
// Namespace is the namespace the config entry is associated with.
|
||||||
// Namespacing is a Consul Enterprise feature.
|
// Namespacing is a Consul Enterprise feature.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// A LinkedService is a service represented by a terminating gateway
|
// A LinkedService is a service represented by a terminating gateway
|
||||||
type LinkedService struct {
|
type LinkedService struct {
|
||||||
// The namespace the service is registered in
|
// Referencing other partitions is not supported.
|
||||||
|
|
||||||
|
// Namespace is where the service is registered.
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
// Name is the name of the service, as defined in Consul's catalog
|
// Name is the name of the service, as defined in Consul's catalog.
|
||||||
Name string `json:",omitempty"`
|
Name string `json:",omitempty"`
|
||||||
|
|
||||||
// CAFile is the optional path to a CA certificate to use for TLS connections
|
// CAFile is the optional path to a CA certificate to use for TLS connections
|
||||||
// from the gateway to the linked service
|
// from the gateway to the linked service.
|
||||||
CAFile string `json:",omitempty" alias:"ca_file"`
|
CAFile string `json:",omitempty" alias:"ca_file"`
|
||||||
|
|
||||||
// CertFile is the optional path to a client certificate to use for TLS connections
|
// CertFile is the optional path to a client certificate to use for TLS connections
|
||||||
// from the gateway to the linked service
|
// from the gateway to the linked service.
|
||||||
CertFile string `json:",omitempty" alias:"cert_file"`
|
CertFile string `json:",omitempty" alias:"cert_file"`
|
||||||
|
|
||||||
// KeyFile is the optional path to a private key to use for TLS connections
|
// KeyFile is the optional path to a private key to use for TLS connections
|
||||||
// from the gateway to the linked service
|
// from the gateway to the linked service.
|
||||||
KeyFile string `json:",omitempty" alias:"key_file"`
|
KeyFile string `json:",omitempty" alias:"key_file"`
|
||||||
|
|
||||||
// SNI is the optional name to specify during the TLS handshake with a linked service
|
// SNI is the optional name to specify during the TLS handshake with a linked service.
|
||||||
SNI string `json:",omitempty"`
|
SNI string `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *TerminatingGatewayConfigEntry) GetKind() string {
|
func (g *TerminatingGatewayConfigEntry) GetKind() string { return g.Kind }
|
||||||
return g.Kind
|
func (g *TerminatingGatewayConfigEntry) GetName() string { return g.Name }
|
||||||
}
|
func (g *TerminatingGatewayConfigEntry) GetPartition() string { return g.Partition }
|
||||||
|
func (g *TerminatingGatewayConfigEntry) GetNamespace() string { return g.Namespace }
|
||||||
func (g *TerminatingGatewayConfigEntry) GetName() string {
|
func (g *TerminatingGatewayConfigEntry) GetMeta() map[string]string { return g.Meta }
|
||||||
return g.Name
|
func (g *TerminatingGatewayConfigEntry) GetCreateIndex() uint64 { return g.CreateIndex }
|
||||||
}
|
func (g *TerminatingGatewayConfigEntry) GetModifyIndex() uint64 { return g.ModifyIndex }
|
||||||
|
|
||||||
func (g *TerminatingGatewayConfigEntry) GetNamespace() string {
|
|
||||||
return g.Namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *TerminatingGatewayConfigEntry) GetMeta() map[string]string {
|
|
||||||
return g.Meta
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *TerminatingGatewayConfigEntry) GetCreateIndex() uint64 {
|
|
||||||
return g.CreateIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *TerminatingGatewayConfigEntry) GetModifyIndex() uint64 {
|
|
||||||
return g.ModifyIndex
|
|
||||||
}
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ import "time"
|
||||||
type ServiceIntentionsConfigEntry struct {
|
type ServiceIntentionsConfigEntry struct {
|
||||||
Kind string
|
Kind string
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
|
|
||||||
Sources []*SourceIntention
|
Sources []*SourceIntention
|
||||||
|
@ -17,6 +18,7 @@ type ServiceIntentionsConfigEntry struct {
|
||||||
|
|
||||||
type SourceIntention struct {
|
type SourceIntention struct {
|
||||||
Name string
|
Name string
|
||||||
|
Partition string `json:",omitempty"`
|
||||||
Namespace string `json:",omitempty"`
|
Namespace string `json:",omitempty"`
|
||||||
Action IntentionAction `json:",omitempty"`
|
Action IntentionAction `json:",omitempty"`
|
||||||
Permissions []*IntentionPermission `json:",omitempty"`
|
Permissions []*IntentionPermission `json:",omitempty"`
|
||||||
|
@ -30,29 +32,13 @@ type SourceIntention struct {
|
||||||
LegacyUpdateTime *time.Time `json:",omitempty" alias:"legacy_update_time"`
|
LegacyUpdateTime *time.Time `json:",omitempty" alias:"legacy_update_time"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ServiceIntentionsConfigEntry) GetKind() string {
|
func (e *ServiceIntentionsConfigEntry) GetKind() string { return e.Kind }
|
||||||
return e.Kind
|
func (e *ServiceIntentionsConfigEntry) GetName() string { return e.Name }
|
||||||
}
|
func (e *ServiceIntentionsConfigEntry) GetPartition() string { return e.Partition }
|
||||||
|
func (e *ServiceIntentionsConfigEntry) GetNamespace() string { return e.Namespace }
|
||||||
func (e *ServiceIntentionsConfigEntry) GetName() string {
|
func (e *ServiceIntentionsConfigEntry) GetMeta() map[string]string { return e.Meta }
|
||||||
return e.Name
|
func (e *ServiceIntentionsConfigEntry) GetCreateIndex() uint64 { return e.CreateIndex }
|
||||||
}
|
func (e *ServiceIntentionsConfigEntry) GetModifyIndex() uint64 { return e.ModifyIndex }
|
||||||
|
|
||||||
func (e *ServiceIntentionsConfigEntry) GetNamespace() string {
|
|
||||||
return e.Namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ServiceIntentionsConfigEntry) GetMeta() map[string]string {
|
|
||||||
return e.Meta
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ServiceIntentionsConfigEntry) GetCreateIndex() uint64 {
|
|
||||||
return e.CreateIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ServiceIntentionsConfigEntry) GetModifyIndex() uint64 {
|
|
||||||
return e.ModifyIndex
|
|
||||||
}
|
|
||||||
|
|
||||||
type IntentionPermission struct {
|
type IntentionPermission struct {
|
||||||
Action IntentionAction
|
Action IntentionAction
|
||||||
|
|
|
@ -204,6 +204,7 @@ func TestAPI_ConfigEntries(t *testing.T) {
|
||||||
"foo": "bar",
|
"foo": "bar",
|
||||||
"gir": "zim",
|
"gir": "zim",
|
||||||
},
|
},
|
||||||
|
Partition: defaultPartition,
|
||||||
Namespace: defaultNamespace,
|
Namespace: defaultNamespace,
|
||||||
}
|
}
|
||||||
ce := c.ConfigEntries()
|
ce := c.ConfigEntries()
|
||||||
|
|
Loading…
Reference in New Issue