Skip to content

Replace Discovery.

PUT
/api/config/namespaces/{metadata.namespace}/discoverys/{metadata.name}
curl --request PUT \
--url https://example-corp.console.ves.volterra.io/api/v1/api/production/us-east-1/namespaces/default/api/config/namespaces/example/discoverys/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "metadata": { "annotations": {}, "description": "example", "disable": true, "labels": {}, "name": "example", "namespace": "example" }, "spec": { "cluster_id": "example", "discovery_consul": { "access_info": { "connection_info": { "api_server": "example", "tls_info": { "certificate": "example", "key_url": { "blindfold_secret_info": { "decryption_provider": "example", "location": "example", "store_provider": "example" }, "clear_secret_info": { "provider": "example", "url": "https://example.com" } }, "server_name": "example", "trusted_ca_url": "example" } }, "http_basic_auth_info": { "passwd_url": { "blindfold_secret_info": { "decryption_provider": "example", "location": "example", "store_provider": "example" }, "clear_secret_info": { "provider": "example", "url": "https://example.com" } }, "user_name": "example" } }, "publish_info": { "disable": {}, "publish": {} } }, "discovery_k8s": { "access_info": { "connection_info": { "api_server": "example", "tls_info": { "certificate": "example", "key_url": { "blindfold_secret_info": { "decryption_provider": "example", "location": "example", "store_provider": "example" }, "clear_secret_info": { "provider": "example", "url": "https://example.com" } }, "server_name": "example", "trusted_ca_url": "example" } }, "isolated": {}, "kubeconfig_url": { "blindfold_secret_info": { "decryption_provider": "example", "location": "example", "store_provider": "example" }, "clear_secret_info": { "provider": "example", "url": "https://example.com" } }, "reachable": {} }, "default_all": {}, "namespace_mapping": { "items": [ { "namespace": "example", "namespace_regex": "example" } ] }, "publish_info": { "disable": {}, "dns_delegation": { "dns_mode": "CORE_DNS", "subdomain": "example" }, "publish": { "namespace": "example" }, "publish_fqdns": {} } }, "no_cluster_id": {}, "where": { "site": { "disable_internet_vip": {}, "enable_internet_vip": {}, "network_type": "VIRTUAL_NETWORK_SITE_LOCAL", "ref": [ { "name": "example", "namespace": "example" } ] }, "virtual_network": { "ref": [ { "name": "example", "namespace": "example" } ] }, "virtual_site": { "disable_internet_vip": {}, "enable_internet_vip": {}, "network_type": "VIRTUAL_NETWORK_SITE_LOCAL", "ref": [ { "name": "example", "namespace": "example" } ] } } } }'

API to replace discovery object for a site or virtual site in system namespace.

Examples of this operation.

metadata.namespace
required
string

Namespace This defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be ""

metadata.name
required
string

Name The configuration object to be replaced will be looked up by name.

Media typeapplication/json
ReplaceRequest is used to replace contents of a discovery

This is the input message of the ‘Replace’ RPC.

object
metadata
object
annotations
annotations

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

object
description
description

Human readable description for the object.

string
>= 21 characters <= 1200 characters
disable
disable

A value of true will administratively disable the object.

boolean format: boolean
labels
labels

Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user. Values specified here will be used by selector expression.

object
name
name

This is the name of configuration object. It has to be unique within the namespace. It can only be specified during create API and cannot be changed during replace API. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 6 characters <= 1024 characters
namespace
namespace

This defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be ""

string
>= 6 characters <= 1024 characters
spec
object
cluster_id

Exclusive with [no_cluster_id] Specify identifier for discovery cluster. This identifier can be specified in endpoint object to discover only from this discovery object.

string
<= 256 characters
discovery_consul
object
access_info
object
connection_info
object
api_server
Discovery Service API server

API server must be a fully qualified domain string and port specified as host:port pair Required: YES.

string
<= 262 characters
tls_info
object
certificate

Client certificate is PEM-encoded certificate or certificate-chain.

string
<= 131072 characters
key_url
object
blindfold_secret_info
object
decryption_provider
Decryption Provider

Name of the Secret Management Access object that contains information about the backend Secret Management service.

string
<= 1024 characters
location
Location

Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location Required: YES.

string
>= 4 characters <= 1024 characters
store_provider
Store Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
<= 1024 characters
clear_secret_info
object
provider
Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
>= 3 characters <= 1024 characters
url
URL

URL of the secret. Currently supported URL schemes is string:///. For string:/// scheme, Secret needs to be encoded Base64 format. When asked for this secret, caller will GET Secret bytes after Base64 decoding. Required: YES.

string format: uri
<= 131072 characters
server_name
Server Name

ServerName is passed to the server for SNI and is used in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.

string
<= 256 characters
trusted_ca_url
Server CA certificates

The URL or value for trusted Server CA certificate or certificate chain Certificates in PEM format including the PEM headers.

string
<= 131072 characters
http_basic_auth_info
object
passwd_url
object
blindfold_secret_info
object
decryption_provider
Decryption Provider

Name of the Secret Management Access object that contains information about the backend Secret Management service.

string
<= 1024 characters
location
Location

Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location Required: YES.

string
>= 4 characters <= 1024 characters
store_provider
Store Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
<= 1024 characters
clear_secret_info
object
provider
Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
>= 3 characters <= 1024 characters
url
URL

URL of the secret. Currently supported URL schemes is string:///. For string:/// scheme, Secret needs to be encoded Base64 format. When asked for this secret, caller will GET Secret bytes after Base64 decoding. Required: YES.

string format: uri
<= 131072 characters
user_name
username

Username in consul.

string
<= 64 characters
publish_info
object
disable
object
publish
object
discovery_k8s
object
access_info
object
connection_info
object
api_server
Discovery Service API server

API server must be a fully qualified domain string and port specified as host:port pair Required: YES.

string
<= 262 characters
tls_info
object
certificate

Client certificate is PEM-encoded certificate or certificate-chain.

string
<= 131072 characters
key_url
object
blindfold_secret_info
object
decryption_provider
Decryption Provider

Name of the Secret Management Access object that contains information about the backend Secret Management service.

string
<= 1024 characters
location
Location

Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location Required: YES.

string
>= 4 characters <= 1024 characters
store_provider
Store Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
<= 1024 characters
clear_secret_info
object
provider
Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
>= 3 characters <= 1024 characters
url
URL

URL of the secret. Currently supported URL schemes is string:///. For string:/// scheme, Secret needs to be encoded Base64 format. When asked for this secret, caller will GET Secret bytes after Base64 decoding. Required: YES.

string format: uri
<= 131072 characters
server_name
Server Name

ServerName is passed to the server for SNI and is used in the client to check server certificates against. If ServerName is empty, the hostname used to contact the server is used.

string
<= 256 characters
trusted_ca_url
Server CA certificates

The URL or value for trusted Server CA certificate or certificate chain Certificates in PEM format including the PEM headers.

string
<= 131072 characters
isolated
object
kubeconfig_url
object
blindfold_secret_info
object
decryption_provider
Decryption Provider

Name of the Secret Management Access object that contains information about the backend Secret Management service.

string
<= 1024 characters
location
Location

Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location Required: YES.

string
>= 4 characters <= 1024 characters
store_provider
Store Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
<= 1024 characters
clear_secret_info
object
provider
Provider

Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.

string
>= 3 characters <= 1024 characters
url
URL

URL of the secret. Currently supported URL schemes is string:///. For string:/// scheme, Secret needs to be encoded Base64 format. When asked for this secret, caller will GET Secret bytes after Base64 decoding. Required: YES.

string format: uri
<= 131072 characters
reachable
object
default_all
object
namespace_mapping
object
items
K8S Namespace to App Namespace Mapping

Map K8s namespace(s) to App Namespaces. In Shared Configuration, Discovered Services can only be mapped to a single App Namespace, which is determined by the first matched regex.

Required: YES.

Array<object>
>= 1 items <= 32 items
K8S Namespace Mapping Item

Map K8s Namespace(s) to an App Namespace. If not specified, all virtual servers will be discovered under shared namespace.

object
namespace
App Namespace

Select a namespace.

string
>= 6 characters <= 1024 characters
namespace_regex
Kubernetes Namespace Regex

The regex here will be used to match K8s namespace(s).

string
<= 256 characters
publish_info
object
disable
object
dns_delegation
object
dns_mode
string
default: CORE_DNS
Allowed values: CORE_DNS KUBE_DNS
subdomain
subdomain

The DNS subdomain for which F5XC will respond to DNS queries. Required: YES.

string
<= 256 characters
publish
object
namespace
namespace

The namespace where the service/endpoints need to be created if it’s not included in the domain. The external K8s administrator needs to ensure that the namespace exists. Required: YES.

string
>= 6 characters <= 64 characters
publish_fqdns
object
no_cluster_id
object
where
object
site
object
disable_internet_vip
object
enable_internet_vip
object
network_type
string
default: VIRTUAL_NETWORK_SITE_LOCAL
Allowed values: VIRTUAL_NETWORK_SITE_LOCAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE VIRTUAL_NETWORK_PER_SITE VIRTUAL_NETWORK_PUBLIC VIRTUAL_NETWORK_GLOBAL VIRTUAL_NETWORK_SITE_SERVICE VIRTUAL_NETWORK_VER_INTERNAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE VIRTUAL_NETWORK_IP_AUTO VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK VIRTUAL_NETWORK_SRV6_NETWORK VIRTUAL_NETWORK_IP_FABRIC VIRTUAL_NETWORK_SEGMENT VIRTUAL_NETWORK_MANAGEMENT
ref
ref

A site direct reference

Required: YES.

Array<object>
<= 1 items
ObjectRefType

This type establishes a ‘direct reference’ from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name for public API and Uid for private API This type of reference is called direct because the relation is explicit and concrete (as opposed to selector reference which builds a group based on labels of selectee objects)

object
kind
kind

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object’s kind (e.g. “route”)

string
>= 12 characters <= 1024 characters
name
name

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name.

string
>= 6 characters <= 1024 characters
namespace
namespace

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace.

string
>= 6 characters <= 1024 characters
tenant
tenant

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant.

string
>= 6 characters <= 1024 characters
uid
uid

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object’s(e.g. Route’s) uid.

string format: uuid
>= 36 characters <= 1024 characters
virtual_network
object
ref
ref

A virtual network direct reference

Required: YES.

Array<object>
<= 1 items
ObjectRefType

This type establishes a ‘direct reference’ from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name for public API and Uid for private API This type of reference is called direct because the relation is explicit and concrete (as opposed to selector reference which builds a group based on labels of selectee objects)

object
kind
kind

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object’s kind (e.g. “route”)

string
>= 12 characters <= 1024 characters
name
name

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name.

string
>= 6 characters <= 1024 characters
namespace
namespace

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace.

string
>= 6 characters <= 1024 characters
tenant
tenant

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant.

string
>= 6 characters <= 1024 characters
uid
uid

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object’s(e.g. Route’s) uid.

string format: uuid
>= 36 characters <= 1024 characters
virtual_site
object
disable_internet_vip
object
enable_internet_vip
object
network_type
string
default: VIRTUAL_NETWORK_SITE_LOCAL
Allowed values: VIRTUAL_NETWORK_SITE_LOCAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE VIRTUAL_NETWORK_PER_SITE VIRTUAL_NETWORK_PUBLIC VIRTUAL_NETWORK_GLOBAL VIRTUAL_NETWORK_SITE_SERVICE VIRTUAL_NETWORK_VER_INTERNAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE VIRTUAL_NETWORK_IP_AUTO VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK VIRTUAL_NETWORK_SRV6_NETWORK VIRTUAL_NETWORK_IP_FABRIC VIRTUAL_NETWORK_SEGMENT VIRTUAL_NETWORK_MANAGEMENT
ref
ref

A virtual_site direct reference

Required: YES.

Array<object>
<= 1 items
ObjectRefType

This type establishes a ‘direct reference’ from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name for public API and Uid for private API This type of reference is called direct because the relation is explicit and concrete (as opposed to selector reference which builds a group based on labels of selectee objects)

object
kind
kind

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object’s kind (e.g. “route”)

string
>= 12 characters <= 1024 characters
name
name

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name.

string
>= 6 characters <= 1024 characters
namespace
namespace

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace.

string
>= 6 characters <= 1024 characters
tenant
tenant

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant.

string
>= 6 characters <= 1024 characters
uid
uid

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object’s(e.g. Route’s) uid.

string format: uuid
>= 36 characters <= 1024 characters

A successful response.

Media typeapplication/json
object
Examplegenerated
{}

Returned when operation is not authorized.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when there is no permission to access resource.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when resource is not found.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when operation on resource is conflicting with current value.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when operation has been rejected as it is happening too frequently.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when server encountered an error in processing API.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when service is unavailable temporarily.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when server timed out processing request.

Media typeapplication/json
string format: string
Examplegenerated
example