Class Server
Describes the properties of the proxy on a given load balancer port.
Namespace: Neon.Kube.Resources.Istio
Assembly: Neon.Kube.Resources.dll
Syntax
public class Server
Constructors
Server()
Initializes a new instance of the Server class.
Declaration
public Server()
Properties
Bind
The ip or the Unix domain socket to which the listener should be bound to. Format: x.x.x.x or unix:///path/to/uds or unix://@foobar (Linux abstract namespace). When using Unix domain sockets, the port number should be 0. This can be used to restrict the reachability of this server to be gateway internal only. This is typically used when a gateway needs to communicate to another mesh service e.g. publishing metrics. In such case, the server created with the specified bind will not be available to external gateway clients.
Declaration
[JsonProperty(PropertyName = "bind", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
public string Bind { get; set; }
Property Value
Type | Description |
---|---|
string |
Hosts
One or more hosts exposed by this gateway. While typically applicable to HTTP services, it can also be used for TCP services using TLS with SNI. A host is specified as a dnsName with an optional namespace/ prefix. The dnsName should be specified using FQDN format, optionally including a wildcard character in the left-most component (e.g., prod/*.example.com). Set the dnsName to * to select all V1VirtualService hosts from the specified namespace (e.g.,prod/*).
The namespace can be set to * or ., representing any or the current namespace, respectively. For example, */foo.example.com selects the service from any available namespace while ./foo.example.com only selects the service from the namespace of the sidecar. The default, if no namespace/ is specified, is */, that is, select services from any namespace. Any associated DestinationRule in the selected namespace will also be used.
A V1VirtualService must be bound to the gateway and must have one or more hosts that match the hosts specified in a server. The match could be an exact match or a suffix match with the server’s hosts. For example, if the server’s hosts specifies *.example.com, a V1VirtualService with hosts dev.example.com or prod.example.com will match. However, a V1VirtualService with host example.com or newexample.com will not match.
NOTE: Only virtual services exported to the gateway’s namespace (e.g., exportTo value of *) can be referenced. Private configurations (e.g., exportTo set to .) will not be available. Refer to the exportTo setting in V1VirtualService, DestinationRule, and ServiceEntry configurations for details.
Declaration
[JsonProperty(PropertyName = "hosts", Required = Required.Always)]
public List<string> Hosts { get; set; }
Property Value
Type | Description |
---|---|
List<string> |
Name
An optional name of the server, when set must be unique across all servers. This will be used for variety of purposes like prefixing stats generated with this name etc.
Declaration
[JsonProperty(PropertyName = "name", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
public string Name { get; set; }
Property Value
Type | Description |
---|---|
string |
Port
The Port on which the proxy should listen for incoming connections.
Declaration
[JsonProperty(PropertyName = "port", Required = Required.Always)]
public Port Port { get; set; }
Property Value
Type | Description |
---|---|
Port |
TLS
Set of TLS related options that govern the server’s behavior. Use these options to control if all http requests should be redirected to https, and the TLS modes to use.
Declaration
[JsonProperty(PropertyName = "tls", Required = Required.Default, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate)]
public ServerTLSSettings TLS { get; set; }
Property Value
Type | Description |
---|---|
ServerTLSSettings |