multitenancy

package
v1.6.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2024 License: MIT Imports: 15 Imported by: 0

README

List of included CRDs

MultitenantPodNetworkConfig CRDs

MTPNC objects represent the network configuration goal state for a pod running a multitenant networked container and are created and managed by control plane as part of the network configuration, during Pod lifecycle events.

NodeInfo CRDs

This CRD is added to enable VNET multitenancy – which will be watched and managed by the control plane.

NodeInfo objects are created by CNS as part of the node registration flow, and is used to pass any metadata from the VM needed by control plane. E.g.: vmUniqueID etc

PodNetwork CRDs

This CRD is added to enable VNET multitenancy – which will be watched and managed by the control plane.

PodNetwork objects need to be created by Orchestrator in the subnet delegation flow. These represent a Cx subnet already delegated by the customer to the Orchestrator and locked with a Service Association Link (SAL) on network RP.

Pod Network Instance (PNI)

PNIs represent optional requirements, or behavior configurations for how we setup the pod networking. They should map 1:1 and follow the lifetime of a customer workload.

The object points to the PodNetwork for the delegated subnet to use and defines allocation requirements (e.g.: for IPs to reserve for pod endpoints). Orchestrator can map the deployments with these requirements to the PNI object through labels on the pod spec pointing to this object identifier. 

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MultitenantPodNetworkConfigsYAML []byte

MultitenantPodNetworkConfigsYAML embeds the CRD YAML for downstream consumers.

View Source
var NodeInfoYAML []byte

NodeInfoYAML embeds the CRD YAML for downstream consumers.

View Source
var PodNetworkInstanceYAML []byte

PodNetworkInstanceYAML embeds the CRD YAML for downstream consumers.

View Source
var PodNetworkYAML []byte

PodNetworkYAML embeds the CRD YAML for downstream consumers.

View Source
var Scheme = runtime.NewScheme()

Scheme is a runtime scheme containing the client-go scheme and the MTPNC/NI scheme.

Functions

func GetMultitenantPodNetworkConfigs

func GetMultitenantPodNetworkConfigs() (*apiextensionsv1.CustomResourceDefinition, error)

GetMultitenantPodNetworkConfigs parses the raw []byte MultitenantPodNetworkConfigs in to a CustomResourceDefinition and returns it or an unmarshalling error.

func GetNodeInfo

GetNodeInfo parses the raw []byte NodeInfo in to a CustomResourceDefinition and returns it or an unmarshalling error.

func GetPodNetworkInstances

func GetPodNetworkInstances() (*apiextensionsv1.CustomResourceDefinition, error)

GetPodNetworkInstances parses the raw []byte PodNetworkInstance in to a CustomResourceDefinition and returns it or an unmarshalling error.

func GetPodNetworks

func GetPodNetworks() (*apiextensionsv1.CustomResourceDefinition, error)

GetPodNetworks parses the raw []byte PodNetwork in to a CustomResourceDefinition and returns it or an unmarshalling error.

Types

type Installer

type Installer struct {
	// contains filtered or unexported fields
}

Installer provides methods to manage the lifecycle of the custom resource definition.

func NewInstaller

func NewInstaller(c *rest.Config) (*Installer, error)

func (*Installer) InstallMTPNC

func (i *Installer) InstallMTPNC(ctx context.Context) (*v1.CustomResourceDefinition, error)

Installs the embedded MultitenantPodNetworkConfig CRD definition in the cluster.

func (*Installer) InstallNodeInfo

func (i *Installer) InstallNodeInfo(ctx context.Context) (*v1.CustomResourceDefinition, error)

Install installs the embedded NodeInfo CRD definition in the cluster.

func (*Installer) InstallOrUpdateMTPNC

func (i *Installer) InstallOrUpdateMTPNC(ctx context.Context) (*v1.CustomResourceDefinition, error)

InstallOrUpdate installs the embedded MultitenantPodNetworkConfig CRD definition in the cluster or updates it if present.

func (*Installer) InstallOrUpdateNodeInfo

func (i *Installer) InstallOrUpdateNodeInfo(ctx context.Context) (*v1.CustomResourceDefinition, error)

InstallOrUpdate installs the embedded NodeInfo CRD definition in the cluster or updates it if present.

func (*Installer) InstallOrUpdatePodNetwork

func (i *Installer) InstallOrUpdatePodNetwork(ctx context.Context) (*v1.CustomResourceDefinition, error)

InstallOrUpdate installs the embedded PodNetwork CRD definition in the cluster or updates it if present.

func (*Installer) InstallOrUpdatePodNetworkInstance

func (i *Installer) InstallOrUpdatePodNetworkInstance(ctx context.Context) (*v1.CustomResourceDefinition, error)

InstallOrUpdate installs the embedded PodNetworkInstance CRD definition in the cluster or updates it if present.

func (*Installer) InstallPodNetwork

func (i *Installer) InstallPodNetwork(ctx context.Context) (*v1.CustomResourceDefinition, error)

Install installs the embedded PodNetwork CRD definition in the cluster.

func (*Installer) InstallPodNetworkInstance

func (i *Installer) InstallPodNetworkInstance(ctx context.Context) (*v1.CustomResourceDefinition, error)

Install installs the embedded PodNetworkInstance CRD definition in the cluster.

type NodeInfoClient added in v1.5.20

type NodeInfoClient struct {
	Cli client.Client
}

func (*NodeInfoClient) CreateOrUpdate added in v1.5.20

func (n *NodeInfoClient) CreateOrUpdate(ctx context.Context, nodeInfo *v1alpha1.NodeInfo, fieldOwner string) error

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the acn v1alpha1 API group +kubebuilder:object:generate=true +groupName=multitenancy.acn.azure.com
Package v1alpha1 contains API Schema definitions for the acn v1alpha1 API group +kubebuilder:object:generate=true +groupName=multitenancy.acn.azure.com
Package manifests exists to allow the rendered CRD manifests to be packaged in to dependent components.
Package manifests exists to allow the rendered CRD manifests to be packaged in to dependent components.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL