mirror of
https://github.com/YuzuZensai/netbird-kubernetes-operator.git
synced 2026-09-13 18:59:09 +00:00
This change adds a new import resource which enables exposing Netbird resources as Kubernetes services. This remove the need to add sidecars to every pod. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a new `NetworkEgress` custom resource (`netbird.io/v1alpha1`) with CRD, schema validation, and status/conditions. * Extended controller functionality to create egress services and translate egress rules into import `EndpointSlice` resources; egress pods now include a kube-egress-forwarder sidecar. * **Bug Fixes** * Added missing deep-copy and declarative apply support for the new `NetworkEgress` API types. * **Documentation** * Updated README/API reference and added example manifests for `NetworkEgress` (including IP/FQDN target usage). <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Philip Laine <philip.laine@gmail.com>
604 lines
24 KiB
Markdown
604 lines
24 KiB
Markdown
# API Reference
|
|
|
|
## Packages
|
|
- [netbird.io/v1alpha1](#netbirdiov1alpha1)
|
|
|
|
|
|
## netbird.io/v1alpha1
|
|
|
|
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group.
|
|
|
|
### Resource Types
|
|
- [ClusterProxy](#clusterproxy)
|
|
- [Group](#group)
|
|
- [NetworkEgress](#networkegress)
|
|
- [NetworkResource](#networkresource)
|
|
- [NetworkRouter](#networkrouter)
|
|
- [SetupKey](#setupkey)
|
|
- [SidecarProfile](#sidecarprofile)
|
|
|
|
|
|
|
|
#### ClusterProxy
|
|
|
|
|
|
|
|
ClusterProxy is the Schema for the clusterproxies API
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `ClusterProxy` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[ClusterProxySpec](#clusterproxyspec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[ClusterProxyStatus](#clusterproxystatus)_ | | \{ observedGeneration:-1 \} | |
|
|
|
|
|
|
#### ClusterProxySpec
|
|
|
|
|
|
|
|
ClusterProxySpec defines the desired state of ClusterProxy.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [ClusterProxy](#clusterproxy)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `clusterName` _string_ | ClusterName is the name of the Kubernetes cluster. | | Required: \{\} <br /> |
|
|
| `apiServer` _string_ | APIServer is the URL of the Kubernetes API server to proxy requests to. | https://kubernetes.default.svc.cluster.local/ | Required: \{\} <br /> |
|
|
| `serviceAccountName` _string_ | ServiceAccountName is a reference to the service account used for impersonation. | | Required: \{\} <br /> |
|
|
| `groups` _[GroupReference](#groupreference) array_ | Groups are references to groups that the peer will be a part of. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### ClusterProxyStatus
|
|
|
|
|
|
|
|
ClusterProxyStatus defines the observed state of ClusterProxy.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [ClusterProxy](#clusterproxy)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `observedGeneration` _integer_ | ObservedGeneration is the last reconciled generation. | | Optional: \{\} <br /> |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the ClusterProxy. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### ContainerOverride
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [SidecarProfileSpec](#sidecarprofilespec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `image` _string_ | Image overrides the image used by the client. | | Optional: \{\} <br /> |
|
|
| `env` _[EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#envvar-v1-core) array_ | | | Optional: \{\} <br /> |
|
|
| `securityContext` _[SecurityContext](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#securitycontext-v1-core)_ | | | Optional: \{\} <br /> |
|
|
| `startupProbe` _[Probe](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#probe-v1-core)_ | StartupProbe overrides the startup probe for the sidecar container. | | Optional: \{\} <br /> |
|
|
| `livenessProbe` _[Probe](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#probe-v1-core)_ | LivenessProbe overrides the liveness probe for the sidecar container. | | Optional: \{\} <br /> |
|
|
| `readinessProbe` _[Probe](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#probe-v1-core)_ | ReadinessProbe overrides the readiness probe for the sidecar container. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### CrossNamespaceReference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgressSpec](#networkegressspec)
|
|
- [NetworkResourceSpec](#networkresourcespec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `name` _string_ | Name of the referent. | | Required: \{\} <br /> |
|
|
| `namespace` _string_ | Namespace of the referent. | | Required: \{\} <br /> |
|
|
|
|
|
|
#### DNSZoneReference
|
|
|
|
|
|
|
|
DNSZoneReference references a Netbird DNS zone by domain name.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkRouterSpec](#networkrouterspec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `name` _string_ | Name is the domain name of an existing Netbird DNS zone, e.g. "example.com". | | Required: \{\} <br /> |
|
|
|
|
|
|
#### Group
|
|
|
|
|
|
|
|
Group is the Schema for the groups API.
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `Group` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[GroupSpec](#groupspec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[GroupStatus](#groupstatus)_ | | \{ observedGeneration:-1 \} | |
|
|
|
|
|
|
#### GroupReference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [ClusterProxySpec](#clusterproxyspec)
|
|
- [NetworkResourceSpec](#networkresourcespec)
|
|
- [SetupKeySpec](#setupkeyspec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `name` _string_ | Name is the name of the group. | | Optional: \{\} <br /> |
|
|
| `id` _string_ | ID is the id of the group. | | Optional: \{\} <br /> |
|
|
| `localRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core)_ | LocalReference is a reference to a group in the same namespace. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### GroupSpec
|
|
|
|
|
|
|
|
GroupSpec defines the desired state of Group.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [Group](#group)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `name` _string_ | Name of the group. | | MinLength: 1 <br /> |
|
|
|
|
|
|
#### GroupStatus
|
|
|
|
|
|
|
|
GroupStatus defines the observed state of Group.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [Group](#group)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `observedGeneration` _integer_ | ObservedGeneration is the last reconciled generation. | | Optional: \{\} <br /> |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the Group. | | Optional: \{\} <br /> |
|
|
| `groupID` _string_ | GroupID is the id of the created group. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### InjectionMode
|
|
|
|
_Underlying type:_ _string_
|
|
|
|
InjectionMode defines how the sidecar is injected into the pod.
|
|
|
|
_Validation:_
|
|
- Enum: [Sidecar Container]
|
|
|
|
_Appears in:_
|
|
- [SidecarProfileSpec](#sidecarprofilespec)
|
|
|
|
| Field | Description |
|
|
| --- | --- |
|
|
| `Sidecar` | InjectionModeSidecar injects the client as a sidecar container.<br /> |
|
|
| `Container` | InjectionModeContainer injects the client as a regular container.<br /> |
|
|
|
|
|
|
#### NetworkEgress
|
|
|
|
|
|
|
|
NetworkEgress is the Schema for the networkegresses API.
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `NetworkEgress` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[NetworkEgressSpec](#networkegressspec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[NetworkEgressStatus](#networkegressstatus)_ | | \{ observedGeneration:-1 \} | |
|
|
|
|
|
|
#### NetworkEgressFQDNTarget
|
|
|
|
|
|
|
|
NetworkEgressFQDNTarget matches traffic by an exact domain name (no wildcards).
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgressTarget](#networkegresstarget)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `hostname` _string_ | Hostname is a fully qualified domain name to match exactly. | | Pattern: `^([a-zA-Z0-9]([a-zA-Z0-9-]\{0,61\}[a-zA-Z0-9])?\.)+[a-zA-Z]\{2,\}$` <br />Required: \{\} <br /> |
|
|
|
|
|
|
#### NetworkEgressIPTarget
|
|
|
|
|
|
|
|
NetworkEgressIPTarget is a single IPv4 or IPv6 address.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgressTarget](#networkegresstarget)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `address` _string_ | Address is a single IP address. | | Required: \{\} <br /> |
|
|
|
|
|
|
#### NetworkEgressPort
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgressSpec](#networkegressspec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `name` _string_ | Name of the port. | | MaxLength: 15 <br />MinLength: 1 <br />Pattern: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$` <br />Required: \{\} <br /> |
|
|
| `port` _integer_ | The port that will be exposed by this service. | | Maximum: 65535 <br />Minimum: 1 <br />Required: \{\} <br /> |
|
|
|
|
|
|
#### NetworkEgressSpec
|
|
|
|
|
|
|
|
NetworkEgressSpec defines the desired state of NetworkEgress.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgress](#networkegress)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `networkRouterRef` _[CrossNamespaceReference](#crossnamespacereference)_ | NetworkRouterRef is a reference to the network and router where the resource will be created. | | |
|
|
| `target` _[NetworkEgressTarget](#networkegresstarget)_ | Target for egress traffic. | | |
|
|
| `ports` _[NetworkEgressPort](#networkegressport) array_ | Ports to the resource to route. | | MinItems: 1 <br />Required: \{\} <br /> |
|
|
|
|
|
|
#### NetworkEgressStatus
|
|
|
|
|
|
|
|
NetworkEgressStatus defines the observed state of NetworkEgress.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgress](#networkegress)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `observedGeneration` _integer_ | ObservedGeneration is the last reconciled generation. | | Optional: \{\} <br /> |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the NetworkEgress. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### NetworkEgressTarget
|
|
|
|
|
|
|
|
NetworkEgressTarget describes a single allowed egress destination.
|
|
Exactly one of IP or FQDN must be set.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkEgressSpec](#networkegressspec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `ip` _[NetworkEgressIPTarget](#networkegressiptarget)_ | IP targets a single specific IP address (not a CIDR range). | | Optional: \{\} <br /> |
|
|
| `fqdn` _[NetworkEgressFQDNTarget](#networkegressfqdntarget)_ | FQDN targets an exact domain name (no wildcards). | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### NetworkResource
|
|
|
|
|
|
|
|
NetworkResource is the Schema for the networkresources API.
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `NetworkResource` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[NetworkResourceSpec](#networkresourcespec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[NetworkResourceStatus](#networkresourcestatus)_ | | \{ observedGeneration:-1 \} | |
|
|
|
|
|
|
#### NetworkResourceSpec
|
|
|
|
|
|
|
|
NetworkResourceSpec defines the desired state of NetworkResource.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkResource](#networkresource)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `networkRouterRef` _[CrossNamespaceReference](#crossnamespacereference)_ | NetworkRouterRef is a reference to the network and router where the resource will be created. | | |
|
|
| `serviceRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core)_ | ServiceRef is a reference to the service to expose in the Network. | | |
|
|
| `groups` _[GroupReference](#groupreference) array_ | Groups are references to groups that the resource will be a part of. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### NetworkResourceStatus
|
|
|
|
|
|
|
|
NetworkResourceStatus defines the observed state of NetworkResource.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkResource](#networkresource)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `observedGeneration` _integer_ | ObservedGeneration is the last reconciled generation. | | Optional: \{\} <br /> |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the NetworkResource. | | Optional: \{\} <br /> |
|
|
| `networkID` _string_ | NetworkID is the id of the network the resource is created in. | | Optional: \{\} <br /> |
|
|
| `resourceID` _string_ | ResourceID is the id of the created resource. | | Optional: \{\} <br /> |
|
|
| `dnsZoneID` _string_ | DNSZoneID is the id of the zone the DNS record is created in. | | Optional: \{\} <br /> |
|
|
| `dnsRecordID` _string_ | DNSRecordID is the id of the created DNS record. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### NetworkRouter
|
|
|
|
|
|
|
|
NetworkRouter is the Schema for the networkrouters API.
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `NetworkRouter` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[NetworkRouterSpec](#networkrouterspec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[NetworkRouterStatus](#networkrouterstatus)_ | | \{ observedGeneration:-1 \} | |
|
|
|
|
|
|
#### NetworkRouterSpec
|
|
|
|
|
|
|
|
NetworkRouterSpec defines the desired state of NetworkRouter.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkRouter](#networkrouter)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `dnsZoneRef` _[DNSZoneReference](#dnszonereference)_ | DNSZoneRef is a reference to the DNS zone used to create records for resources. | | Required: \{\} <br /> |
|
|
| `image` _string_ | Netbird client image. | | Optional: \{\} <br /> |
|
|
| `logLevel` _string_ | Log level for Netbird client. | | Optional: \{\} <br /> |
|
|
| `workloadOverride` _[WorkloadOverride](#workloadoverride)_ | WorkloadOverride contains configuration that will override the default workload. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### NetworkRouterStatus
|
|
|
|
|
|
|
|
NetworkRouterStatus defines the observed state of NetworkRouter.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkRouter](#networkrouter)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `observedGeneration` _integer_ | ObservedGeneration is the last reconciled generation. | | Optional: \{\} <br /> |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the NetworkRouter. | | Optional: \{\} <br /> |
|
|
| `routingPeerID` _string_ | RoutingPeerID is the id of the created routing peer. | | Optional: \{\} <br /> |
|
|
| `networkID` _string_ | NetworkID is the id of the network the routing peer was created in. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### SetupKey
|
|
|
|
|
|
|
|
SetupKey is the Schema for the setupkeys API.
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `SetupKey` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[SetupKeySpec](#setupkeyspec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[SetupKeyStatus](#setupkeystatus)_ | | \{ observedGeneration:-1 \} | |
|
|
|
|
|
|
#### SetupKeySpec
|
|
|
|
|
|
|
|
SetupKeySpec defines the desired state of SetupKey.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [SetupKey](#setupkey)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `name` _string_ | Name of the setup key. | | MinLength: 1 <br /> |
|
|
| `ephemeral` _boolean_ | Ephemeral decides if peers added with the key are ephemeral or not. | | |
|
|
| `allowExtraDnsLabels` _boolean_ | AllowExtraDnsLabels decides if peers added with the key can have extra DNS labels. | false | |
|
|
| `duration` _[Duration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)_ | Duration sets how long the setup key is valid for. | | Pattern: `^([0-9]+(\.[0-9]+)?(m\|h))+$` <br />Type: string <br />Optional: \{\} <br /> |
|
|
| `autoGroups` _[GroupReference](#groupreference) array_ | AutoGroups are groups that will be automatically assigned to peers using setup key. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### SetupKeyStatus
|
|
|
|
|
|
|
|
SetupKeyStatus defines the observed state of SetupKey.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [SetupKey](#setupkey)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `observedGeneration` _integer_ | ObservedGeneration is the last reconciled generation. | | Optional: \{\} <br /> |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the SetupKey. | | Optional: \{\} <br /> |
|
|
| `setupKeyID` _string_ | SetupKeyID is the id of the created setup key. | | |
|
|
|
|
|
|
#### SidecarProfile
|
|
|
|
|
|
|
|
SidecarProfile is the Schema for the sidecarprofiles API.
|
|
|
|
|
|
|
|
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `apiVersion` _string_ | `netbird.io/v1alpha1` | | |
|
|
| `kind` _string_ | `SidecarProfile` | | |
|
|
| `kind` _string_ | Kind is a string value representing the REST resource this object represents.<br />Servers may infer this from the endpoint the client submits requests to.<br />Cannot be updated.<br />In CamelCase.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds | | Optional: \{\} <br /> |
|
|
| `apiVersion` _string_ | APIVersion defines the versioned schema of this representation of an object.<br />Servers should convert recognized schemas to the latest internal value, and<br />may reject unrecognized values.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources | | Optional: \{\} <br /> |
|
|
| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | |
|
|
| `spec` _[SidecarProfileSpec](#sidecarprofilespec)_ | | | Required: \{\} <br /> |
|
|
| `status` _[SidecarProfileStatus](#sidecarprofilestatus)_ | | \{ \} | |
|
|
|
|
|
|
#### SidecarProfileSpec
|
|
|
|
|
|
|
|
SidecarProfileSpec defines the desired state of SidecarProfile.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [SidecarProfile](#sidecarprofile)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `setupKeyRef` _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core)_ | SetupKeyRef is the reference to the setup key used in the client. | | Required: \{\} <br /> |
|
|
| `podSelector` _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselector-v1-meta)_ | PodSelector determines which pods the profile should apply to.<br />An empty slector means the profile will apply to all pods in the namespace. | | Optional: \{\} <br /> |
|
|
| `injectionMode` _[InjectionMode](#injectionmode)_ | InjectionMode defines whether the sidecar is injected as a native Kubernetes sidecar container or as a regular container. | Sidecar | Enum: [Sidecar Container] <br />Optional: \{\} <br /> |
|
|
| `extraDNSLabels` _string array_ | ExtraDNSLabels assigns additional DNS names to peers beyond their default hostname. | | Optional: \{\} <br /> |
|
|
| `containerOverride` _[ContainerOverride](#containeroverride)_ | | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### SidecarProfileStatus
|
|
|
|
|
|
|
|
SidecarProfileStatus defines the observed state of SidecarProfile.
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [SidecarProfile](#sidecarprofile)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array_ | Conditions holds the conditions for the SidecarProfile. | | Optional: \{\} <br /> |
|
|
|
|
|
|
#### WorkloadOverride
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Appears in:_
|
|
- [NetworkRouterSpec](#networkrouterspec)
|
|
|
|
| Field | Description | Default | Validation |
|
|
| --- | --- | --- | --- |
|
|
| `labels` _object (keys:string, values:string)_ | Labels that will be added. | | Optional: \{\} <br /> |
|
|
| `annotations` _object (keys:string, values:string)_ | Annotations that will be added. | | Optional: \{\} <br /> |
|
|
| `replicas` _integer_ | Replicas sets the amount of client replicas. | 3 | Minimum: 1 <br />Optional: \{\} <br /> |
|
|
| `podTemplate` _[PodTemplateSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podtemplatespec-v1-core)_ | PodTemplate overrides the pod template. | | Schemaless: \{\} <br />Optional: \{\} <br /> |
|
|
|
|
|