Skip to content

Replace Configuration Specification.

PUT
/api/config/namespaces/{metadata.namespace}/k8s_clusters/{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/k8s_clusters/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "metadata": { "annotations": {}, "description": "example", "disable": true, "labels": {}, "name": "example", "namespace": "example" }, "spec": { "cluster_scoped_access_deny": {}, "cluster_scoped_access_permit": {}, "cluster_wide_app_list": { "cluster_wide_apps": [ { "argo_cd": { "local_domain": { "default_port": {}, "local_domain": "example", "password": { "blindfold_secret_info": { "decryption_provider": "example", "location": "example", "store_provider": "example" }, "clear_secret_info": { "provider": "example", "url": "https://example.com" }, "blindfold_secret_info_internal": { "decryption_provider": "example", "location": "example", "store_provider": "example" }, "secret_encoding_type": "EncodingNone", "vault_secret_info": { "key": "example", "location": "example", "provider": "example", "secret_encoding": "EncodingNone", "version": 1 }, "wingman_secret_info": { "name": "example" } }, "port": 1 } }, "dashboard": {}, "metrics_server": {}, "prometheus": {} } ] }, "global_access_enable": {}, "insecure_registry_list": { "insecure_registries": [ "example" ] }, "local_access_config": { "default_port": {}, "local_domain": "example", "port": 1 }, "no_cluster_wide_apps": {}, "no_global_access": {}, "no_insecure_registries": {}, "no_local_access": {}, "use_custom_cluster_role_bindings": { "cluster_role_bindings": [ { "name": "example", "namespace": "example" } ] }, "use_custom_cluster_role_list": { "cluster_roles": [ { "name": "example", "namespace": "example" } ] }, "use_custom_pod_security_admission": { "name": "example", "namespace": "example" }, "use_custom_psp_list": { "pod_security_policies": [ { "name": "example", "namespace": "example" } ] }, "use_default_cluster_role_bindings": {}, "use_default_cluster_roles": {}, "use_default_pod_security_admission": {}, "use_default_psp": {}, "vk8s_namespace_access_deny": {}, "vk8s_namespace_access_permit": {} } }'

Replacing an k8s_cluster object will update the object by replacing the existing spec with the provided one. For read-then-write operations a resourceVersion mismatch will occur if the object was modified between the read and write.

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 k8s_cluster

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_scoped_access_deny
object
cluster_scoped_access_permit
object
cluster_wide_app_list
object
cluster_wide_apps
Cluster Wide Application List

List of cluster wide applications

Required: YES.

Array<object>
>= 1 items <= 5 items
Cluster Wide Application

Cluster wide application configuration.

object
argo_cd
object
local_domain
object
default_port
object
local_domain
Local Domain

ArgoCD will be accessible at .. Required: YES.

string
>= 1 characters <= 192 characters
password
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
blindfold_secret_info_internal
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
secret_encoding_type
string
default: EncodingNone
Allowed values: EncodingNone EncodingBase64
vault_secret_info
object
key
Key

X-displayName: “Key” Key of the individual secret. Vault Secrets are stored as key-value pair. If user is only interested in one value from the map, this field should be set to the corresponding key. If not provided entire secret will be returned.

string
>= 7 characters <= 1024 characters
location
Location

X-displayName: “Location” x-required Path to secret in Vault.

string
>= 4 characters <= 1024 characters
provider
Provider

X-displayName: “Provider” x-required Name of the Secret Management Access object that contains information about the backend Vault.

string
>= 3 characters <= 1024 characters
secret_encoding
string
default: EncodingNone
Allowed values: EncodingNone EncodingBase64
version
Version

X-displayName: “Version” Version of the secret to be fetched. As vault secrets are versioned, user can specify this field to fetch specific version. If not provided latest version will be returned.

integer format: int64
>= 1 characters <= 1 characters
wingman_secret_info
object
name
Name

X-displayName: “Name” x-required Name of the secret.

string
>= 6 characters <= 1024 characters
port
Custom ArgoCD Port

Exclusive with [default_port] Use custom ArgoCD port. Available port range is less than 65000 except reserved ports.

integer format: int64
>= 1 <= 65535
dashboard
object
metrics_server
object
prometheus
object
global_access_enable
object
insecure_registry_list
object
insecure_registries
Docker Insecure Registry List

List of docker insecure registries in format “example.com:5000” Required: YES.

Array<string>
>= 1 items <= 16 items
local_access_config
object
default_port
object
local_domain
Local Domain

Local K8s API server will be accessible at .. Required: YES.

string
>= 1 characters <= 192 characters
port
Custom k8s Port

Exclusive with [default_port] Use custom K8s port for API server. Available port range is less than 65000 except reserved ports.

integer format: int64
>= 1 <= 65535
no_cluster_wide_apps
object
no_global_access
object
no_insecure_registries
object
no_local_access
object
use_custom_cluster_role_bindings
object
cluster_role_bindings
Cluster Role Binding List

List of active cluster role binding list for a K8s cluster

Required: YES.

Array<object>
>= 1 items <= 100 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.

object
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. Required: YES.

string
>= 1 characters <= 128 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 <= 64 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 <= 64 characters
use_custom_cluster_role_list
object
cluster_roles
Cluster Role List

List of active cluster role list for a K8s cluster

Required: YES.

Array<object>
>= 1 items <= 100 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.

object
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. Required: YES.

string
>= 1 characters <= 128 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 <= 64 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 <= 64 characters
use_custom_pod_security_admission
object
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. Required: YES.

string
>= 1 characters <= 128 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 <= 64 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 <= 64 characters
use_custom_psp_list
object
pod_security_policies
Pod Security Policy List

List of active Pod security policies for a K8s cluster

Required: YES.

Array<object>
>= 1 items <= 16 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.

object
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. Required: YES.

string
>= 1 characters <= 128 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 <= 64 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 <= 64 characters
use_default_cluster_role_bindings
object
use_default_cluster_roles
object
use_default_pod_security_admission
object
use_default_psp
object
vk8s_namespace_access_deny
object
vk8s_namespace_access_permit
object

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