v1

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2021 License: Apache-2.0 Imports: 8 Imported by: 3

Documentation

Overview

Package v1 contains API Schema definitions for the pkg v1 API group +kubebuilder:object:generate=true +groupName=dvr.ndd.henderiw.be

Package v1 contains API Schema definitions for the driver v1 API group +kubebuilder:object:generate=true +groupName=driver.ndd.henderiw.be

Copyright 2021 Wim Henderickx.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// A DeviceDriverInstalled indicates whether the device driver has been installed.
	ConditionKindDeviceDriverInstalled nddv1.ConditionKind = "DeviceDriverInstalled"

	// A DeviceDriverHealthy indicates whether the device driver is healthy.
	ConditionKindDeviceDriverHealthy nddv1.ConditionKind = "DeviceDriverHealthy"

	// A ConditionKindDeviceDriverReady indicates whether the device driver is discovered
	// and connected to the network device.
	ConditionKindDeviceDriverReady nddv1.ConditionKind = "DeviceDriverReady"
)

Condition Kinds.

View Source
const (
	ConditionReasonInactive         nddv1.ConditionReason = "InactiveDeviceDriver"
	ConditionReasonActive           nddv1.ConditionReason = "ActiveDeviceDriver"
	ConditionReasonUnhealthy        nddv1.ConditionReason = "UnhealthyDeviceDriver"
	ConditionReasonHealthy          nddv1.ConditionReason = "HealthyDeviceDriver"
	ConditionReasonUnknownHealth    nddv1.ConditionReason = "UnknownDeviceDriverHealth"
	ConditionReasonDiscoveredReady  nddv1.ConditionReason = "DeviceDriverReady"
	ConditionReasonNotDiscovered    nddv1.ConditionReason = "UndiscoveredDeviceDriver"
	ConditionReasonUnknownDiscovery nddv1.ConditionReason = "UnknownDeviceDriverDiscovery"
)

ConditionReasons a package is or is not installed.

View Source
const (
	Group   = "dvr.ndd.henderiw.be"
	Version = "v1"
)

Package type metadata.

View Source
const (
	ConfigmapJsonConfig      = "config.json"
	LabelApplication         = "app"
	LabelNetworkDeviceDriver = "ndd"
	PrefixNetworkNode        = "ndd"
	PrefixConfigmap          = "ndd-cm"
	PrefixDeployment         = "ndd-dep"
	PrefixService            = "ndd-svc"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	NetworkNodeKind             = reflect.TypeOf(NetworkNode{}).Name()
	NetworkNodeGroupKind        = schema.GroupKind{Group: Group, Kind: NetworkNodeKind}.String()
	NetworkNodeKindAPIVersion   = NetworkNodeKind + "." + GroupVersion.String()
	NetworkNodeGroupVersionKind = GroupVersion.WithKind(NetworkNodeKind)
)

NetworkNode type metadata.

Functions

func Active

func Active() nddv1.Condition

Active indicates that the device driver is is installed and activated

func Discovered

func Discovered() nddv1.Condition

Discovered indicates that the device driver is discovered.

func Healthy

func Healthy() nddv1.Condition

Healthy indicates that the device driver is healthy.

func Inactive

func Inactive() nddv1.Condition

Inactive indicates that the device driver is waiting to be transitioned to an active state.

func NotDiscovered

func NotDiscovered() nddv1.Condition

NotDiscovered indicates that the device driver is not discovered.

func Unhealthy

func Unhealthy() nddv1.Condition

Unhealthy indicates that the device driver is unhealthy.

func UnknownDiscovery

func UnknownDiscovery() nddv1.Condition

UnknownDiscovery indicates that the device driver discovery is unknown.

func UnknownHealth

func UnknownHealth() nddv1.Condition

UnknownHealth indicates that the health of the device driver is unknown.

Types

type DeviceDetails

type DeviceDetails struct {
	// the Type of device the device driver is connected to
	Type *nddv1.DeviceKind `json:"type,omitempty"`

	// Host name of the device the device driver is connected to
	HostName *string `json:"hostname,omitempty"`

	// the Kind of device the device driver is connected to
	Kind *string `json:"kind,omitempty"`

	// SW version that is running on the device
	SwVersion *string `json:"swVersion,omitempty"`

	// the Mac address of the device the device driver is connected to
	MacAddress *string `json:"macAddress,omitempty"`

	// the Serial Number of the device the device driver is connected to
	SerialNumber *string `json:"serialNumber,omitempty"`
}

DeviceDetails collects information about the deiscovered device

func (*DeviceDetails) DeepCopy

func (in *DeviceDetails) DeepCopy() *DeviceDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDetails.

func (*DeviceDetails) DeepCopyInto

func (in *DeviceDetails) DeepCopyInto(out *DeviceDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceDriver

type DeviceDriver struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec DeviceDriverSpec `json:"spec,omitempty"`
}

DeviceDriver is the Schema for the devicedrivers API

func (*DeviceDriver) DeepCopy

func (in *DeviceDriver) DeepCopy() *DeviceDriver

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDriver.

func (*DeviceDriver) DeepCopyInto

func (in *DeviceDriver) DeepCopyInto(out *DeviceDriver)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeviceDriver) DeepCopyObject

func (in *DeviceDriver) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeviceDriverKind

type DeviceDriverKind string

DeviceDriverKind represents the kinds of device drivers are supported by the network device driver

const (
	// DeviceDriverKindGnmi operates using the gnmi specification
	DeviceDriverKindGnmi DeviceDriverKind = "gnmi"

	// DeviceDriverKindNetconf operates using the netconf specification
	DeviceDriverKindNetconf DeviceDriverKind = "netconf"
)

type DeviceDriverList

type DeviceDriverList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []DeviceDriver `json:"items"`
}

DeviceDriverList contains a list of DeviceDriver

func (*DeviceDriverList) DeepCopy

func (in *DeviceDriverList) DeepCopy() *DeviceDriverList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDriverList.

func (*DeviceDriverList) DeepCopyInto

func (in *DeviceDriverList) DeepCopyInto(out *DeviceDriverList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeviceDriverList) DeepCopyObject

func (in *DeviceDriverList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type DeviceDriverSpec

type DeviceDriverSpec struct {
	// Container defines the container parameters for the device driver
	Container *corev1.Container `json:"container,omitempty"`
}

DeviceDriverSpec defines the desired state of DeviceDriver

func (*DeviceDriverSpec) DeepCopy

func (in *DeviceDriverSpec) DeepCopy() *DeviceDriverSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDriverSpec.

func (*DeviceDriverSpec) DeepCopyInto

func (in *DeviceDriverSpec) DeepCopyInto(out *DeviceDriverSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeviceStatus

type DeviceStatus struct {
	// The discovered DeviceDetails
	DeviceDetails *DeviceDetails `json:"deviceDetails,omitempty"`

	// UsedNetworkNodeSpec identifies the used networkNode spec when installed
	UsedNetworkNodeSpec *NetworkNodeSpec `json:"usedNetworkNodeSpec,omitempty"`

	// UsedDeviceDriverSpec identifies the used deviceDriver spec when installed
	UsedDeviceDriverSpec *DeviceDriverSpec `json:"usedDeviceDriverSpec,omitempty"`
}

DeviceStatus defines the observed state of the Device

func (*DeviceStatus) DeepCopy

func (in *DeviceStatus) DeepCopy() *DeviceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceStatus.

func (*DeviceStatus) DeepCopyInto

func (in *DeviceStatus) DeepCopyInto(out *DeviceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkNode

type NetworkNode struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   NetworkNodeSpec   `json:"spec,omitempty"`
	Status NetworkNodeStatus `json:"status,omitempty"`
}

NetworkNode is the Schema for the networknodes API +kubebuilder:subresource:status +kubebuilder:printcolumn:name="INSTALLED",type="string",JSONPath=".status.conditions[?(@.kind=='DeviceDriverInstalled')].status" +kubebuilder:printcolumn:name="HEALTHY",type="string",JSONPath=".status.conditions[?(@.kind=='DeviceDriverHealthy')].status" +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.kind=='DeviceDriverReady')].status" +kubebuilder:printcolumn:name="ADDRESS",type="string",JSONPath=".spec.target.address",description="address to connect to the device'" +kubebuilder:printcolumn:name="CONN-KIND",type="string",JSONPath=".spec.deviceDriverKind",description="Kind of communication type to the device" +kubebuilder:printcolumn:name="TYPE",type="string",JSONPath=".status.deviceDetails.type",description="Type of device" +kubebuilder:printcolumn:name="KIND",type="string",JSONPath=".status.deviceDetails.kind",description="Kind of device" +kubebuilder:printcolumn:name="SWVERSION",type="string",JSONPath=".status.deviceDetails.swVersion",description="SW version of the device" +kubebuilder:printcolumn:name="MACADDRESS",type="string",JSONPath=".status.deviceDetails.macAddress",description="macAddress of the device" +kubebuilder:printcolumn:name="SERIALNBR",type="string",JSONPath=".status.deviceDetails.serialNumber",description="serialNumber of the device" +kubebuilder:printcolumn:name="GRPCSERVERPORT",type="string",JSONPath=".spec.grpcServerPort",description="grpc server port to connect to the devic driver" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Cluster,categories={ndd,dvr},shortName=nn

func (*NetworkNode) DeepCopy

func (in *NetworkNode) DeepCopy() *NetworkNode

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkNode.

func (*NetworkNode) DeepCopyInto

func (in *NetworkNode) DeepCopyInto(out *NetworkNode)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkNode) DeepCopyObject

func (in *NetworkNode) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*NetworkNode) GetCondition

func (nn *NetworkNode) GetCondition(ct nddv1.ConditionKind) nddv1.Condition

GetCondition of this Network Node.

func (*NetworkNode) GetControllerReference added in v0.1.2

func (nn *NetworkNode) GetControllerReference() nddv1.Reference

GetControllerReference of the Network Node.

func (*NetworkNode) GetDeviceDetails

func (nn *NetworkNode) GetDeviceDetails() DeviceDetails

func (*NetworkNode) GetDeviceDriverKind

func (nn *NetworkNode) GetDeviceDriverKind() DeviceDriverKind

func (*NetworkNode) GetGrpcServerPort

func (nn *NetworkNode) GetGrpcServerPort() int

func (*NetworkNode) GetTargetAddress

func (nn *NetworkNode) GetTargetAddress() string

func (*NetworkNode) GetTargetCredentialsName

func (nn *NetworkNode) GetTargetCredentialsName() string

func (*NetworkNode) GetTargetEncoding

func (nn *NetworkNode) GetTargetEncoding() string

func (*NetworkNode) GetTargetInsecure

func (nn *NetworkNode) GetTargetInsecure() bool

func (*NetworkNode) GetTargetProxy

func (nn *NetworkNode) GetTargetProxy() string

func (*NetworkNode) GetTargetSkipVerify

func (nn *NetworkNode) GetTargetSkipVerify() bool

func (*NetworkNode) GetTargetTLSCredentialsName

func (nn *NetworkNode) GetTargetTLSCredentialsName() string

func (*NetworkNode) SetConditions

func (nn *NetworkNode) SetConditions(c ...nddv1.Condition)

SetConditions of the Network Node.

func (*NetworkNode) SetControllerReference added in v0.1.2

func (nn *NetworkNode) SetControllerReference(c nddv1.Reference)

SetControllerReference of the Network Node.

func (*NetworkNode) SetDeviceDetails

func (nn *NetworkNode) SetDeviceDetails(dd *DeviceDetails)

func (*NetworkNode) SetDeviceDriverKind

func (nn *NetworkNode) SetDeviceDriverKind(k *DeviceDriverKind)

func (*NetworkNode) SetGrpcServerPort

func (nn *NetworkNode) SetGrpcServerPort(p *int)

func (*NetworkNode) SetTargetAddress

func (nn *NetworkNode) SetTargetAddress(a *string)

func (*NetworkNode) SetTargetCredentialsName

func (nn *NetworkNode) SetTargetCredentialsName(c *string)

func (*NetworkNode) SetTargetEncoding

func (nn *NetworkNode) SetTargetEncoding(s *string)

func (*NetworkNode) SetTargetInsecure

func (nn *NetworkNode) SetTargetInsecure(s *bool)

func (*NetworkNode) SetTargetProxy

func (nn *NetworkNode) SetTargetProxy(p *string)

func (*NetworkNode) SetTargetSkipVerify

func (nn *NetworkNode) SetTargetSkipVerify(s *bool)

func (*NetworkNode) SetTargetTLSCredentialsName

func (nn *NetworkNode) SetTargetTLSCredentialsName(c *string)

type NetworkNodeList

type NetworkNodeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NetworkNode `json:"items"`
}

NetworkNodeList contains a list of NetworkNode

func (*NetworkNodeList) DeepCopy

func (in *NetworkNodeList) DeepCopy() *NetworkNodeList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkNodeList.

func (*NetworkNodeList) DeepCopyInto

func (in *NetworkNodeList) DeepCopyInto(out *NetworkNodeList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NetworkNodeList) DeepCopyObject

func (in *NetworkNodeList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NetworkNodeSpec

type NetworkNodeSpec struct {
	// Target defines the details how we connect to the network device
	Target *TargetDetails `json:"target"`

	// DeviceDriver defines the device driver details to connect to the network device
	// +optional
	// +kubebuilder:default=gnmi
	DeviceDriverKind *DeviceDriverKind `json:"deviceDriverKind,omitempty"`

	// GrpcServerPort defines the grpc server port to connect to the device driver
	// from the network device provider
	// +optional
	// +kubebuilder:default=9999
	GrpcServerPort *int `json:"grpcServerPort,omitempty"`
}

NetworkNodeSpec defines the desired state of NetworkNode

func (*NetworkNodeSpec) DeepCopy

func (in *NetworkNodeSpec) DeepCopy() *NetworkNodeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkNodeSpec.

func (*NetworkNodeSpec) DeepCopyInto

func (in *NetworkNodeSpec) DeepCopyInto(out *NetworkNodeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NetworkNodeStatus

type NetworkNodeStatus struct {
	nddv1.ConditionedStatus `json:",inline"`
	ControllerRef           nddv1.Reference `json:"controllerRef,omitempty"`
	DeviceStatus            `json:",inline"`
}

NetworkNodeStatus defines the observed state of NetworkNode

func (*NetworkNodeStatus) DeepCopy

func (in *NetworkNodeStatus) DeepCopy() *NetworkNodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkNodeStatus.

func (*NetworkNodeStatus) DeepCopyInto

func (in *NetworkNodeStatus) DeepCopyInto(out *NetworkNodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Nn

type Nn interface {
	resource.Object
	resource.Conditioned

	GetControllerReference() nddv1.Reference
	SetControllerReference(c nddv1.Reference)

	GetGrpcServerPort() int
	SetGrpcServerPort(p *int)

	GetDeviceDriverKind() DeviceDriverKind
	SetDeviceDriverKind(k *DeviceDriverKind)

	GetTargetAddress() string
	SetTargetAddress(a *string)

	GetTargetProxy() string
	SetTargetProxy(p *string)

	GetTargetCredentialsName() string
	SetTargetCredentialsName(c *string)

	GetTargetTLSCredentialsName() string
	SetTargetTLSCredentialsName(s *string)

	GetTargetSkipVerify() bool
	SetTargetSkipVerify(s *bool)

	GetTargetInsecure() bool
	SetTargetInsecure(s *bool)

	GetTargetEncoding() string
	SetTargetEncoding(e *string)

	GetDeviceDetails() DeviceDetails
	SetDeviceDetails(dd *DeviceDetails)
}

+k8s:deepcopy-gen=false

type TargetDetails

type TargetDetails struct {
	// Address holds the IP:port for accessing the network node
	// +kubebuilder:validation:Required
	Address *string `json:"address"`

	// Proxy used to communicate to the target network node
	// +kubebuilder:validation:Optional
	Proxy *string `json:"proxy,omitempty"`

	// The name of the secret containing the credentials (requires
	// keys "username" and "password").
	// +kubebuilder:validation:Required
	CredentialsName *string `json:"credentialsName"`

	// The name of the secret containing the credentials (requires
	// keys "TLSCA" and "TLSCert", " TLSKey").
	// +kubebuilder:validation:Optional
	TLSCredentialsName *string `json:"tlsCredentialsName,omitempty"`

	// SkipVerify disables verification of server certificates when using
	// HTTPS to connect to the Target. This is required when the server
	// certificate is self-signed, but is insecure because it allows a
	// man-in-the-middle to intercept the connection.
	// +kubebuilder:validation:Optional
	SkipVerify *bool `json:"skpVerify,omitempty"`

	// Insecure runs the communication in an insecure manner
	// +kubebuilder:validation:Optional
	Insecure *bool `json:"insecure,omitempty"`

	// Encoding defines the gnmi encoding
	// +kubebuilder:validation:Enum=`JSON`;`BYTES`;`PROTO`;`ASCII`;`JSON_IETF`
	// +kubebuilder:default=JSON_IETF
	// +kubebuilder:validation:Optional
	Encoding *string `json:"encoding,omitempty"`
}

TargetDetails contains the information necessary to communicate with the network node.

func (*TargetDetails) DeepCopy

func (in *TargetDetails) DeepCopy() *TargetDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetDetails.

func (*TargetDetails) DeepCopyInto

func (in *TargetDetails) DeepCopyInto(out *TargetDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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