Isovalent daemon API
The daemon API from Isovalent — 9 operation(s) for daemon.
The daemon API from Isovalent — 9 operation(s) for daemon.
swagger: '2.0'
info:
title: Cilium bgp daemon API
description: Cilium
version: v1beta1
basePath: /v1
consumes:
- application/json
produces:
- application/json
tags:
- name: daemon
paths:
/cluster/nodes:
get:
summary: Get nodes information stored in the cilium-agent
tags:
- daemon
parameters:
- name: client-id
description: 'Client UUID should be used when the client wants to request
a diff of nodes added and / or removed since the last time
that client has made a request.
'
in: header
required: false
type: integer
responses:
'200':
description: Success
schema:
$ref: '#/definitions/ClusterNodeStatus'
/healthz:
get:
summary: Get health of Cilium daemon
description: 'Returns health and status information of the Cilium daemon and related
components such as the connected datastore, Kubernetes integration and
Hubble.
'
tags:
- daemon
parameters:
- name: brief
description: 'Brief will return a brief representation of the Cilium status.
'
in: header
required: false
type: boolean
- name: require-k8s-connectivity
description: 'If set to true, failure of the agent to connect to the Kubernetes control plane will cause the agent''s health status to also fail.
'
in: header
required: false
type: boolean
default: true
responses:
'200':
description: Success
schema:
$ref: '#/definitions/StatusResponse'
/config:
get:
summary: Get configuration of Cilium daemon
description: 'Returns the configuration of the Cilium daemon.
'
tags:
- daemon
responses:
'200':
description: Success
schema:
$ref: '#/definitions/DaemonConfiguration'
patch:
summary: Modify daemon configuration
description: 'Updates the daemon configuration by applying the provided
ConfigurationMap and regenerates & recompiles all required datapath
components.
'
tags:
- daemon
parameters:
- name: configuration
in: body
required: true
schema:
$ref: '#/definitions/DaemonConfigurationSpec'
responses:
'200':
description: Success
'400':
description: Bad configuration parameters
schema:
$ref: '#/definitions/Error'
'403':
description: Forbidden
'500':
description: Recompilation failed
x-go-name: Failure
schema:
$ref: '#/definitions/Error'
/debuginfo:
get:
summary: Retrieve information about the agent and environment for debugging
tags:
- daemon
responses:
'200':
description: Success
schema:
$ref: '#/definitions/DebugInfo'
'500':
description: DebugInfo get failed
x-go-name: Failure
schema:
$ref: '#/definitions/Error'
/cgroup-dump-metadata:
get:
summary: Retrieve cgroup metadata for all pods
tags:
- daemon
responses:
'200':
description: Success
schema:
$ref: '#/definitions/CgroupDumpMetadata'
'500':
description: CgroupDumpMetadata get failed
x-go-name: Failure
schema:
$ref: '#/definitions/Error'
/map:
get:
summary: List all open maps
tags:
- daemon
responses:
'200':
description: Success
schema:
$ref: '#/definitions/BPFMapList'
/map/{name}:
get:
summary: Retrieve contents of BPF map
tags:
- daemon
parameters:
- $ref: '#/parameters/map-name'
responses:
'200':
description: Success
schema:
$ref: '#/definitions/BPFMap'
'404':
description: Map not found
/map/{name}/events:
get:
summary: Retrieves the recent event logs associated with this endpoint.
tags:
- daemon
parameters:
- $ref: '#/parameters/map-name'
- $ref: '#/parameters/follow'
responses:
'200':
description: Success
schema:
type: string
format: binary
'404':
description: Map not found
/node/ids:
get:
summary: List information about known node IDs
description: 'Retrieves a list of node IDs allocated by the agent and their
associated node IP addresses.
'
tags:
- daemon
responses:
'200':
description: Success
schema:
type: array
items:
$ref: '#/definitions/NodeID'
definitions:
EndpointIdentifiers:
description: 'Unique identifiers for this endpoint from outside cilium
+deepequal-gen=true'
type: object
properties:
cni-attachment-id:
description: ID assigned to this attachment by container runtime
type: string
container-id:
description: ID assigned by container runtime (deprecated, may not be unique)
type: string
container-name:
description: Name assigned to container (deprecated, may not be unique)
type: string
docker-endpoint-id:
description: Docker endpoint ID
type: string
docker-network-id:
description: Docker network ID
type: string
pod-name:
description: K8s pod for this endpoint (deprecated, may not be unique)
type: string
k8s-pod-name:
description: K8s pod name for this endpoint (deprecated, may not be unique)
type: string
k8s-namespace:
description: K8s namespace for this endpoint (deprecated, may not be unique)
type: string
EndpointPolicyEnabled:
description: Whether policy enforcement is enabled (ingress, egress, both or none)
type: string
enum:
- none
- ingress
- egress
- both
- audit-ingress
- audit-egress
- audit-both
RequestResponseStatistics:
description: 'Statistics of a proxy redirect
+k8s:deepcopy-gen=true'
type: object
properties:
requests:
$ref: '#/definitions/MessageForwardingStatistics'
responses:
$ref: '#/definitions/MessageForwardingStatistics'
EndpointConfigurationSpec:
description: An endpoint's configuration
type: object
properties:
options:
description: Changeable configuration
$ref: '#/definitions/ConfigurationMap'
label-configuration:
description: the endpoint's labels
$ref: '#/definitions/LabelConfigurationSpec'
NodeAddressingElement:
description: Addressing information
type: object
properties:
enabled:
description: True if address family is enabled
type: boolean
ip:
description: IP address of node
type: string
alloc-range:
description: Address pool to be used for local endpoints
type: string
address-type:
description: Node address type, one of HostName, ExternalIP or InternalIP
type: string
LabelConfigurationStatus:
description: Labels and label configuration of an endpoint
type: object
properties:
realized:
description: The current configuration
$ref: '#/definitions/LabelConfigurationSpec'
security-relevant:
description: Labels derived from orchestration system that are used in computing a security identity
$ref: '#/definitions/Labels'
derived:
description: All labels derived from the orchestration system
$ref: '#/definitions/Labels'
disabled:
description: Labels derived from orchestration system which have been disabled.
$ref: '#/definitions/Labels'
EndpointPolicyStatus:
description: Policy information of an endpoint
type: object
properties:
spec:
description: The policy that should apply to this endpoint
$ref: '#/definitions/EndpointPolicy'
realized:
description: The policy in the datapath for this endpoint
$ref: '#/definitions/EndpointPolicy'
proxy-policy-revision:
description: The policy revision currently enforced in the proxy for this endpoint
type: integer
proxy-statistics:
description: Statistics of the proxy redirects configured for this endpoint
type: array
items:
$ref: '#/definitions/ProxyStatistics'
Service:
description: Collection of endpoints to be served
type: object
properties:
spec:
$ref: '#/definitions/ServiceSpec'
status:
$ref: '#/definitions/ServiceStatus'
CIDRPolicy:
description: CIDR endpoint policy
type: object
properties:
ingress:
description: List of CIDR ingress rules
type: array
items:
$ref: '#/definitions/PolicyRule'
egress:
description: List of CIDR egress rules
type: array
items:
$ref: '#/definitions/PolicyRule'
IdentityRange:
description: Status of identity range of the cluster
properties:
min-identity:
description: Minimum identity of the cluster
type: integer
max-identity:
description: Maximum identity of the cluster
type: integer
CNIChainingStatus:
description: Status of CNI chaining
properties:
mode:
type: string
enum:
- none
- aws-cni
- flannel
- generic-veth
- portmap
Srv6:
description: Status of the SRv6
type: object
properties:
enabled:
type: boolean
srv6EncapMode:
type: string
enum:
- SRH
- Reduced
AttachMode:
description: Core datapath attachment mode
type: string
enum:
- tc
- tcx
ProxyStatistics:
description: 'Statistics of a set of proxy redirects for an endpoint
+k8s:deepcopy-gen=true'
type: object
properties:
protocol:
description: Name of the L7 protocol
type: string
port:
description: The port subject to the redirect
type: integer
allocated-proxy-port:
description: The port the proxy is listening on
type: integer
location:
description: Location of where the redirect is installed
type: string
enum:
- ingress
- egress
statistics:
description: Statistics of this set of proxy redirect
$ref: '#/definitions/RequestResponseStatistics'
Masquerading:
description: 'Status of masquerading
+k8s:deepcopy-gen=true'
type: object
properties:
enabled:
type: boolean
enabledProtocols:
description: Is masquerading enabled
type: object
properties:
ipv4:
description: Is masquerading enabled for IPv4 traffic
type: boolean
ipv6:
description: Is masquerading enabled for IPv6 traffic
type: boolean
mode:
type: string
enum:
- BPF
- iptables
ip-masq-agent:
description: Is BPF ip-masq-agent enabled
type: boolean
snat-exclusion-cidr:
description: This field is obsolete, please use snat-exclusion-cidr-v4 or snat-exclusion-cidr-v6.
type: string
snat-exclusion-cidr-v4:
description: 'SnatExclusionCIDRv4 exempts SNAT from being performed on any packet sent to
an IPv4 address that belongs to this CIDR.'
type: string
snat-exclusion-cidr-v6:
description: 'SnatExclusionCIDRv6 exempts SNAT from being performed on any packet sent to
an IPv6 address that belongs to this CIDR.
For IPv6 we only do masquerading in iptables mode.'
type: string
IPV4BigTCP:
description: Status of IPv4 BIG TCP
type: object
properties:
enabled:
description: Is IPv4 BIG TCP enabled
type: boolean
maxGRO:
description: Maximum IPv4 GRO size
type: integer
maxGSO:
description: Maximum IPv4 GSO size
type: integer
HostFirewall:
description: 'Status of the host firewall
+k8s:deepcopy-gen=true'
type: object
properties:
mode:
type: string
enum:
- Disabled
- Enabled
devices:
type: array
items:
type: string
KubeProxyReplacement:
description: 'Status of kube-proxy replacement
+k8s:deepcopy-gen=true'
type: object
properties:
mode:
type: string
enum:
- 'True'
- 'False'
devices:
type: array
items:
type: string
deviceList:
description: '
+k8s:deepcopy-gen=true'
type: array
items:
description: '
+k8s:deepcopy-gen=true'
type: object
properties:
name:
type: string
ip:
description: '
+k8s:deepcopy-gen=true'
type: array
items:
type: string
directRoutingDevice:
type: string
features:
description: '
+k8s:deepcopy-gen=true'
type: object
properties:
nodePort:
type: object
properties:
enabled:
type: boolean
mode:
type: string
enum:
- SNAT
- DSR
- Hybrid
dsrMode:
type: string
enum:
- IP Option/Extension
- IPIP
- Geneve
algorithm:
type: string
enum:
- Random
- Maglev
acceleration:
type: string
enum:
- None
- Native
- Generic
- Best-Effort
portMin:
type: integer
portMax:
type: integer
lutSize:
type: integer
hostPort:
type: object
properties:
enabled:
type: boolean
externalIPs:
type: object
properties:
enabled:
type: boolean
hostReachableServices:
description: '
+k8s:deepcopy-gen=true'
type: object
properties:
enabled:
type: boolean
protocols:
type: array
items:
type: string
socketLB:
type: object
properties:
enabled:
type: boolean
sessionAffinity:
type: object
properties:
enabled:
type: boolean
gracefulTermination:
description: Deprecated
type: object
properties:
enabled:
type: boolean
nat46X64:
description: '
+k8s:deepcopy-gen=true'
type: object
properties:
enabled:
type: boolean
service:
type: object
properties:
enabled:
type: boolean
gateway:
description: '
+k8s:deepcopy-gen=true'
type: object
properties:
enabled:
type: boolean
prefixes:
type: array
items:
type: string
socketLBTracing:
type: object
properties:
enabled:
type: boolean
bpfSocketLBHostnsOnly:
description: flag bpf-lb-sock-hostns-only
type: boolean
annotations:
type: array
items:
type: string
RemoteCluster:
description: 'Status of remote cluster
+k8s:deepcopy-gen=true'
properties:
name:
description: Name of the cluster
type: string
ready:
description: Indicates readiness of the remote cluster
type: boolean
connected:
description: Indicates whether the connection to the remote kvstore is established
type: boolean
synced:
description: Synchronization status about each resource type
$ref: '#/definitions/RemoteClusterSynced'
config:
description: Cluster configuration exposed by the remote cluster
$ref: '#/definitions/RemoteClusterConfig'
num-nodes:
description: Number of nodes in the cluster
type: integer
num-shared-services:
description: Number of services in the cluster
type: integer
num-endpoint-slices:
description: Number of endpoint slices in the cluster
type: integer
num-service-exports:
description: Number of MCS-API service exports in the cluster
type: integer
num-identities:
description: Number of identities in the cluster
type: integer
num-endpoints:
description: Number of endpoints in the cluster
type: integer
status:
description: Status of the control plane
type: string
num-failures:
description: Number of failures reaching the cluster
type: integer
last-failure:
description: Time of last failure that occurred while attempting to reach the cluster
type: string
format: date-time
BPFMapList:
description: List of BPF Maps
type: object
properties:
maps:
description: Array of open BPF map lists
type: array
items:
$ref: '#/definitions/BPFMap'
ServiceStatus:
description: Configuration of a service
type: object
properties:
realized:
$ref: '#/definitions/ServiceSpec'
AddressPair:
description: Addressing information of an endpoint
type: object
properties:
ipv4:
description: IPv4 address
type: string
ipv4-expiration-uuid:
description: UUID of IPv4 expiration timer
type: string
ipv4-pool-name:
description: IPAM pool from which this IPv4 address was allocated
type: string
ipv6:
description: IPv6 address
type: string
ipv6-expiration-uuid:
description: UUID of IPv6 expiration timer
type: string
ipv6-pool-name:
description: IPAM pool from which this IPv6 address was allocated
type: string
RemoteClusterConfig:
description: 'Cluster configuration exposed by the remote cluster
+k8s:deepcopy-gen=true'
properties:
required:
description: Whether the configuration is required to be present
type: boolean
retrieved:
description: Whether the configuration has been correctly retrieved
type: boolean
cluster-id:
description: The Cluster ID advertised by the remote cluster
type: integer
kvstoremesh:
description: Whether the remote cluster information is locally cached by kvstoremesh
type: boolean
sync-canaries:
description: Whether the remote cluster supports per-prefix "synced" canaries
type: boolean
service-exports-enabled:
description: Whether or not MCS-API ServiceExports is enabled by the cluster (null means unsupported).
type: boolean
x-nullable: true
endpoint-slices-export-mode:
description: EndpointSlices export mode advertised by the remote cluster
type: string
enum:
- services-and-endpointslices
- endpointslices-only
WireguardInterface:
description: 'Status of a WireGuard interface
+k8s:deepcopy-gen=true'
properties:
name:
description: Name of the interface
type: string
public-key:
description: Public key of this interface
type: string
listen-port:
description: Port on which the WireGuard endpoint is exposed
type: integer
peer-count:
description: Number of peers configured on this interface
type: integer
peers:
description: Optional list of WireGuard peers
type: array
items:
$ref: '#/definitions/WireguardPeer'
BPFMap:
description: BPF map definition and content
type: object
properties:
path:
description: Path to BPF map
type: string
cache:
description: Contents of cache
type: array
items:
$ref: '#/definitions/BPFMapEntry'
AllocationMap:
description: 'Map of allocated IPs
'
type: object
additionalProperties:
type: string
ClusterMeshStatus:
description: 'Status of ClusterMesh
+k8s:deepcopy-gen=true'
properties:
clusters:
description: List of remote clusters
type: array
items:
$ref: '#/definitions/RemoteCluster'
CgroupContainerMetadata:
description: cgroup container metadata
type: object
properties:
cgroup-id:
type: integer
format: uint64
cgroup-path:
type: string
NamedPorts:
description: 'List of named Layer 4 port and protocol pairs which will be used in Network
Policy specs.
+deepequal-gen=true
+k8s:deepcopy-gen=true'
type: array
items:
$ref: '#/definitions/Port'
ControllerStatus:
description: 'Status of a controller
+k8s:deepcopy-gen=true'
type: object
properties:
name:
description: Name of controller
type: string
uuid:
description: UUID of controller
type: string
format: uuid
configuration:
description: 'Configuration of controller
+deepequal-gen=true
+k8s:deepcopy-gen=true'
type: object
properties:
interval:
description: Regular synchronization interval
type: string
format: duration
error-retry-base:
description: Base error retry back-off time
type: string
format: duration
error-retry:
description: Retry on error
type: boolean
status:
description: 'Current status of controller
+k8s:deepcopy-gen=true'
type: object
properties:
success-count:
description: Total number of successful runs
type: integer
last-success-timestamp:
description: Timestamp of last success
type: string
format: date-time
failure-count:
description: Total number of failed runs
type: integer
last-failure-timestamp:
description: Timestamp of last error
type: string
format: date-time
consecutive-failure-count:
description: Number of consecutive errors since last success
type: integer
last-failure-msg:
description: Error message of last failed run
type: string
RemoteClusterSynced:
description: 'Status of the synchronization with the remote cluster, about each resource
type. A given resource is considered to be synchronized if the initial
list of entries has been completely received from the remote cluster, and
new events are currently being watched.
+k8s:deepcopy-gen=true'
properties:
nodes:
description: Nodes synchronization status
type: boolean
services:
description: Services synchronization status
type: boolean
endpoint-slices:
description: Endpoint slices synchronization status (null means that the component is not watching endpoint slices)
type: boolean
x-nullable: true
service-exports:
description: MCS-API service exports synchronization status (null means that the component is not watching service exports)
type: boolean
x-nullable: true
endpoints:
description: Endpoints synchronization status
type: boolean
identities:
description: Identities synchronization status
type: boolean
EndpointState:
description: State of endpoint
type: string
enum:
- waiting-for-identity
- not-ready
- waiting-to-regenerate
- regenerating
- restoring
- ready
- disconnecting
- disconnected
- invalid
DebugInfo:
description: groups some debugging related information on the agent
type: object
properties:
cilium-version:
type: string
kernel-version:
type: string
cilium-status:
$ref: '#/definitions/StatusResponse'
endpoint-list:
type: array
items:
$ref: '#/definitions/Endpoint'
service-list:
type: array
items:
$ref: '#/definitions/Service'
policy:
$ref: '#/definitions/Policy'
cilium-memory-map:
type: string
cilium-nodemonitor-memory-map:
type: string
environment-variables:
type: array
items:
type: string
subsystem:
type: object
additionalProperties:
type: string
encryption:
type: object
properties:
wireguard:
description: Status of the WireGuard agent
$ref: '#/definitions/WireguardStatus'
MessageForwardingStatistics:
description: Statistics of a message forwarding entity
type: object
properties:
received:
description: Number of messages received
type: integer
denied:
description: Number of messages denied
type: integer
error:
description: Number of errors while parsing messages
type: integer
forwarded:
description: Number of messages forwarded
type: integer
L4Policy:
description: L4 endpoint policy
type: object
properties:
ingress:
description: List of L4 ingress rules
type: array
items:
$ref: '#/definitions/PolicyRule'
egress:
description: List of L4 egress rules
type: array
items:
$ref: '#/definitions/PolicyRule'
EndpointStatusChange:
description: 'Indication of a change of status
+deepequal-gen=true'
type: object
properties:
timestamp:
description: Timestamp when status change occurred
type: string
code:
description: Code indicate type of status change
type: string
enum:
- ok
- failed
message:
description: Status message
type: string
state:
$ref: '#/definitions/EndpointState'
EndpointPolicy:
description: Policy information of an endpoint
type: object
properties:
policy-revision:
description: The agent-local policy revision
type: integer
id:
description: Own identity of endpoint
type: integer
policy-enabled:
description: Whether policy enforcement is enabled (ingress, egress, both or none)
$ref: '#/definitions/EndpointPolicyEnabled'
build:
description: Build number of calculated policy in use
type: integer
allowed-ingress-identities:
description: 'List of identities allowed to communicate to this endpoint
'
type: array
items:
type: integer
denied-ingress-identities:
description: 'List of identities not allowed to communicate to this endpoint
'
type: array
items:
type: integer
allowed-egress-identities:
description: 'List of identities to which this endpoint is allowed to communicate
'
type: array
items:
type: integer
denied-egress-identities:
description: 'List of identities to which this endpoint is not allowed to communicate
'
type: array
items:
type: integer
l4:
$ref: '#/definitions/L4Policy'
cidr-policy:
$ref: '#/definitions/CIDRPolicy'
FrontendAddress:
description: 'Layer 4 address. The protocol is currently ignored, all services will
behave as if protocol any is specified. To restrict to a particular
protocol, use policy.
'
type: object
properties:
ip:
description: Layer 3 address
type: string
protocol:
description: Layer 4 protocol
type: string
enum:
- tcp
- udp
- any
scope:
description: Load balancing scope for frontend address
type: string
enum:
- external
- internal
port:
description: Layer 4 port number
type: integer
format: uint16
LabelConfigurationSpec:
description: User desired Label configuration of an endpoint
type: object
properties:
user:
description: Custom labels in addition to orchestration system labels.
$ref: '#/definitions/Labels'
ServiceSpec:
description: Configuration of a service
type: object
required:
- frontend-address
properties:
id:
description: Unique identification
type: integer
frontend-address:
description: Frontend address
$ref: '#/definitions/FrontendAddress'
backend-addresses:
description: List of backend addresses
type: array
items:
$ref: '#/definitions/BackendAddress'
flags:
description: Optional service configuration flags
type: object
properties:
type:
description: Service type
type: string
enum:
- ClusterIP
- NodePort
- ExternalIPs
- HostPort
- LoadBalancer
- LocalRedirect
trafficPolicy:
description: Service external traffic policy (deprecated in favor of extTrafficPolicy)
type: string
enum:
- Cluster
- Local
extTrafficPolicy:
description: Service external traffic policy
type: string
enum:
- Cluster
- Local
intTrafficPolicy:
description: Service internal traffic policy
type: string
enum:
- Cluster
- Local
natPolicy:
description: Service protocol NAT policy
type: string
enum:
- None
- Nat46
- Nat64
healthCheckNodePort:
description: Service health check node port
type: integer
format: uint16
name:
description: Service name (e.g. Kubernetes service name)
type: string
namespace:
description: Service namespace (e.g. Kubernetes namespace)
type: string
cluster:
description: Service cluster
type: string
updateServices:
description: 'Update all services selecting the backends with their given states
(id and frontend are ignored)
'
type: boolean
CgroupDumpMetadata:
description: cgroup full metadata
type: object
properties:
pod-metadatas:
type: array
items:
$ref: '#/definitions/CgroupPodMetadata'
PolicyRule:
description: A policy rule including the rule labels it derives from
properties:
rule:
description: The policy rule as json
type: string
derived-from-rules:
description: The policy rule labels identifying the policy rules this rule derives from
type: array
items:
type: array
items:
type: string
rules-by-selector:
description: The policy rule labels identifying the polic
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/isovalent/refs/heads/main/openapi/isovalent-daemon-api-openapi.yml