Skip to content

Latest commit

 

History

History
311 lines (167 loc) · 12.9 KB

File metadata and controls

311 lines (167 loc) · 12.9 KB

API Reference

Packages

cloud.datumapis.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the cloud.datumapis.com/v1alpha1 API group.

Resource Types

IPAddress

Underlying type: string

IPAddress is an IPv4 or IPv6 address with CIDR notation.

Validation:

  • MaxLength: 64

Appears in:

Network

Underlying type: string

Network is an IPv4 or IPv6 CIDR block (e.g., "10.0.0.0/24").

Validation:

  • MaxLength: 64

Appears in:

NetworkFabricIdentity

NetworkFabricIdentity tells a location what identity the fabric knows a network by.

There is one per network, not one per location. A VPC is the network's realization at a single location and takes its identity from here, which is what makes the locations of one network the same network on the fabric instead of unrelated ones that happen to share a name.

This is platform-internal. It is written centrally and carried to the cells where the network is required; it never appears in a project control plane and no consumer reads or writes one. The identity is a value the fabric acts on directly, so it is kept to the platform rather than published beside the network it belongs to.

This object is managed for you. It follows the Network it was allocated for.

Field Description Default Validation
apiVersion string cloud.datumapis.com/v1alpha1
kind string NetworkFabricIdentity
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec NetworkFabricIdentitySpec Spec is the whole of this object. There is no status: federation carries
configuration to a cell and deliberately does not carry status, so
anything a cell has to read has to be here.

NetworkFabricIdentityNetworkRef

NetworkFabricIdentityNetworkRef identifies the network an identity was allocated for.

Appears in:

Field Description Default Validation
name string Name is the network's name. Required: {}

NetworkFabricIdentitySpec

NetworkFabricIdentitySpec carries the identity the fabric knows one network by.

Appears in:

Field Description Default Validation
identity integer Identity is what the fabric knows the network by, the same in every
location the network reaches. The Route Target is derived from it, which
is what makes two locations of one network import each other's routes
rather than behave as two networks that share a name. The VRF device is
named from it for the same reason.
It is an integer rather than an encoded string because a consumer builds
ASN:<identity> from it and encodes it for its own use. It is 32 bits
wide because that is what survives into the Route Target: the fabric
truncates, so a wider value would be uniqueness the platform believes it
has and the fabric does not.
It is never zero and never changes. The fabric embeds it in import policy
in every location the network reaches, so a network that changed identity
would be a different network to everything already carrying its traffic.
Maximum: 4.294967295e+09
Minimum: 1
Required: {}
networkRef NetworkFabricIdentityNetworkRef NetworkRef names the network this identity belongs to.
It carries a name and no UID, deliberately. The identity is a permanent
property of a name in a namespace, not of one object's lifetime: a
network deleted and recreated under the same name inherits it. A UID here
would document the opposite of the rule.
Required: {}

NetworkInterfaceRef

NetworkInterfaceRef references a networking.datumapis.com NetworkInterface in the same namespace.

Appears in:

Field Description Default Validation
name string Name of the NetworkInterface. MinLength: 1

VPC

VPC represents a virtual private cloud — an isolated Layer 2 domain backed by one or more CIDR blocks.

Field Description Default Validation
apiVersion string cloud.datumapis.com/v1alpha1
kind string VPC
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VPCSpec Desired CIDR address space.
status VPCStatus Controller-observed state.

VPCAttachment

VPCAttachment is the Schema for the vpcattachments API

Field Description Default Validation
apiVersion string cloud.datumapis.com/v1alpha1
kind string VPCAttachment
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec VPCAttachmentSpec spec defines the desired state of VPCAttachment
status VPCAttachmentStatus status defines the observed state of VPCAttachment

VPCAttachmentInterface

VPCAttachmentInterface defines the network interface details.

Appears in:

Field Description Default Validation
name string Name of the interface (e.g., eth0).
mode VPCAttachmentInterfaceMode Mode is how the workload consumes the interface, resolved and written by
the attachment controller rather than by whoever runs the workload.
Netns Enum: [Netns Hypervisor HypervisorDeclared]
addresses IPAddress array A list of IPv4 or IPv6 addresses associated with the interface. Empty when
the guest manages its own addressing.
MaxItems: 16
MaxLength: 64

VPCAttachmentInterfaceMode

Underlying type: string

VPCAttachmentInterfaceMode is how the workload consumes the interface. It describes the guest, not the data plane, so a change of implementation on the data plane side does not move this API.

Validation:

  • Enum: [Netns Hypervisor HypervisorDeclared]

Appears in:

Field Description
Netns VPCAttachmentInterfaceModeNetns moves the interface into the workload's
network namespace, which is what a container consumes.
Hypervisor VPCAttachmentInterfaceModeHypervisor hands the interface to a hypervisor as
a device, which is what a virtual machine guest consumes.
HypervisorDeclared VPCAttachmentInterfaceModeHypervisorDeclared also hands the interface to a
hypervisor as a device. It differs from Hypervisor in who tells the
hypervisor that the device exists. Under Hypervisor the hypervisor finds
the device from what the node publishes. Under HypervisorDeclared the data
plane states the device, its addresses, and its MTU to the hypervisor
directly, which is what a guest whose hypervisor reads no node state
needs.

VPCAttachmentSpec

VPCAttachmentSpec defines the desired state of VPCAttachment

Appears in:

Field Description Default Validation
vpc VPCRef VPC this attachment belongs to.
interfaceRef NetworkInterfaceRef NetworkInterface this attachment realizes.
interface VPCAttachmentInterface Interface defines the network interface configuration.

VPCAttachmentStatus

VPCAttachmentStatus defines the observed state of VPCAttachment.

Every field but Conditions is optional: an identifier is recorded before a pod attaches, and a guest managing its own addressing never reports a subnet.

Appears in:

Field Description Default Validation
observedGeneration integer
conditions Condition array
vpc string Base62-encoded VPC identifier. MaxLength: 16
MinLength: 1
vpcAttachment string Base62-encoded VPCAttachment identifier. MaxLength: 16
MinLength: 1
node string Kubernetes node name where the attachment lives. MinLength: 1
containerID string Full container ID (46 hex characters). MaxLength: 46
MinLength: 46
podName string Pod name. MinLength: 1
hostInterface string Host-side veth or tap device name (e.g., "G000000010013H"). MinLength: 1
vrfInterface string VRF device name, which is per-VPC (e.g., "G000000010V"). MinLength: 1
guestInterface string Guest-side veth device name (e.g., "G000000010013G"). MinLength: 1
podSubnet string Allocated subnet in CIDR notation (e.g., "fd00:10:ff01:0:1::/80"). MinLength: 1
networkAttachmentDefinition string NetworkAttachmentDefinition rendered for this attachment. MinLength: 1

VPCRef

VPCRef references a VPC by name within the same namespace.

Appears in:

Field Description Default Validation
name string Name is the name of the VPC. MinLength: 1

VPCSpec

VPCSpec defines the desired state of a VPC. It specifies the CIDR address space.

Appears in:

Field Description Default Validation
networks Network array CIDR blocks that form the VPC address space. MaxItems: 64
MaxLength: 64
MinItems: 1

VPCStatus

VPCStatus defines the observed state of a VPC, populated by the controller.

Appears in:

Field Description Default Validation
observedGeneration integer
conditions Condition array
vpc string Base62-encoded VPC identifier. MaxLength: 16
MinLength: 1