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
- Variables
- func Active() nddv1.Condition
- func Discovered() nddv1.Condition
- func Healthy() nddv1.Condition
- func Inactive() nddv1.Condition
- func NotDiscovered() nddv1.Condition
- func Unhealthy() nddv1.Condition
- func UnknownDiscovery() nddv1.Condition
- func UnknownHealth() nddv1.Condition
- type DeviceDetails
- type DeviceDriver
- type DeviceDriverKind
- type DeviceDriverList
- type DeviceDriverSpec
- type DeviceStatus
- type NetworkNode
- func (in *NetworkNode) DeepCopy() *NetworkNode
- func (in *NetworkNode) DeepCopyInto(out *NetworkNode)
- func (in *NetworkNode) DeepCopyObject() runtime.Object
- func (nn *NetworkNode) GetCondition(ct nddv1.ConditionKind) nddv1.Condition
- func (nn *NetworkNode) GetControllerReference() nddv1.Reference
- func (nn *NetworkNode) GetDeviceDetails() DeviceDetails
- func (nn *NetworkNode) GetDeviceDriverKind() DeviceDriverKind
- func (nn *NetworkNode) GetGrpcServerPort() int
- func (nn *NetworkNode) GetTargetAddress() string
- func (nn *NetworkNode) GetTargetCredentialsName() string
- func (nn *NetworkNode) GetTargetEncoding() string
- func (nn *NetworkNode) GetTargetInsecure() bool
- func (nn *NetworkNode) GetTargetProxy() string
- func (nn *NetworkNode) GetTargetSkipVerify() bool
- func (nn *NetworkNode) GetTargetTLSCredentialsName() string
- func (nn *NetworkNode) SetConditions(c ...nddv1.Condition)
- func (nn *NetworkNode) SetControllerReference(c nddv1.Reference)
- func (nn *NetworkNode) SetDeviceDetails(dd *DeviceDetails)
- func (nn *NetworkNode) SetDeviceDriverKind(k *DeviceDriverKind)
- func (nn *NetworkNode) SetGrpcServerPort(p *int)
- func (nn *NetworkNode) SetTargetAddress(a *string)
- func (nn *NetworkNode) SetTargetCredentialsName(c *string)
- func (nn *NetworkNode) SetTargetEncoding(s *string)
- func (nn *NetworkNode) SetTargetInsecure(s *bool)
- func (nn *NetworkNode) SetTargetProxy(p *string)
- func (nn *NetworkNode) SetTargetSkipVerify(s *bool)
- func (nn *NetworkNode) SetTargetTLSCredentialsName(c *string)
- type NetworkNodeList
- type NetworkNodeSpec
- type NetworkNodeStatus
- type Nn
- type TargetDetails
Constants ¶
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.
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.
const ( Group = "dvr.ndd.henderiw.be" Version = "v1" )
Package type metadata.
const ( ConfigmapJsonConfig = "config.json" LabelApplication = "app" LabelNetworkDeviceDriver = "ndd" PrefixNetworkNode = "ndd" PrefixConfigmap = "ndd-cm" PrefixDeployment = "ndd-dep" PrefixService = "ndd-svc" )
Variables ¶
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 )
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 Discovered ¶
Discovered indicates that the device driver is discovered.
func Inactive ¶
Inactive indicates that the device driver is waiting to be transitioned to an active state.
func NotDiscovered ¶
NotDiscovered indicates that the device driver is not discovered.
func UnknownDiscovery ¶
UnknownDiscovery indicates that the device driver discovery is unknown.
func UnknownHealth ¶
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.