Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the meta pkg v1 API group +kubebuilder:object:generate=true +groupName=meta.pkg.ndd.yndd.io
Index ¶
Constants ¶
const ( GnmiServerPort = 9999 MetricServerPortHttp = 9997 MetricServerPortHttps = 8443 PrefixGnmiService = "nddo-gnmi-svc" PrefixMetricService = "nddo-metrics-svc" Namespace = "ndd-system" NamespaceLocalK8sDNS = Namespace + "." + "svc.cluster.local:" LabelPkgMeta = "app" LabelHttpPkgMeta = "app-http" VendorTypeLabelKey = Group + "/" + "vendorType" )
const ( Group = "meta.pkg.ndd.yndd.io" Version = "v1" )
Package type metadata.
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 ( ProviderKind = reflect.TypeOf(Provider{}).Name() ProviderGroupKind = schema.GroupKind{Group: Group, Kind: ProviderKind}.String() ProviderKindAPIVersion = ProviderKind + "." + GroupVersion.String() ProviderGroupVersionKind = GroupVersion.WithKind(ProviderKind) )
Provider type metadata.
Functions ¶
This section is empty.
Types ¶
type ContainerSpec ¶ added in v0.2.0
type ContainerSpec struct {
// Provide the container info
Container *corev1.Container `json:"container,omitempty"`
// Extras is certificates, volumes, webhook, etc
Extras []*Extras `json:"extras,omitempty"`
}
func (*ContainerSpec) DeepCopy ¶ added in v0.2.0
func (in *ContainerSpec) DeepCopy() *ContainerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerSpec.
func (*ContainerSpec) DeepCopyInto ¶ added in v0.2.0
func (in *ContainerSpec) DeepCopyInto(out *ContainerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Dependency ¶
type Dependency struct {
// Package is the OCI image name without a tag or digest.
Package string `json:"package"`
// Type is the type of package. Can be either Configuration or Provider.
Type PackageType `json:"type"`
// Constraints is a valid semver range, which will be used to select a valid
// dependency version.
Constraints string `json:"constraints"`
}
Dependency is a dependency on another package. One of Provider or Configuration may be supplied.
func (*Dependency) AddNeighbors ¶
func (d *Dependency) AddNeighbors(...dag.Node) error
AddNeighbors is a no-op for dependencies. We should never be adding neighbors to a dependency.
func (*Dependency) DeepCopy ¶
func (in *Dependency) DeepCopy() *Dependency
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dependency.
func (*Dependency) DeepCopyInto ¶
func (in *Dependency) DeepCopyInto(out *Dependency)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Dependency) Identifier ¶
func (d *Dependency) Identifier() string
Identifier returns a dependency's source.
func (*Dependency) Neighbors ¶
func (d *Dependency) Neighbors() []dag.Node
Neighbors in is a no-op for dependencies because we are not yet aware of its dependencies.
type DeploymentType ¶ added in v0.2.0
type DeploymentType string
const ( DeploymentTypeStatefulset DeploymentType = "statefulset" DeploymentTypeDeployment DeploymentType = "deployment" )
type Extras ¶ added in v0.2.0
type Extras struct {
Name string `json:"name"`
Webhook bool `json:"webhook,omitempty"`
Certificate bool `json:"certificate,omitempty"`
Service bool `json:"service,omitempty"`
Volume bool `json:"volume,omitempty"`
Port uint32 `json:"port,omitempty"`
TargetPort uint32 `json:"targetPort,omitempty"`
Protocol string `json:"protocol,omitempty"`
}
func (*Extras) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extras.
func (*Extras) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetaSpec ¶
type MetaSpec struct {
// Semantic version constraints of Ndd that package is compatible with.
Ndd *NddConstraints `json:"ndd,omitempty"`
// Dependencies on other packages.
DependsOn []Dependency `json:"dependsOn,omitempty"`
}
MetaSpec are fields that every meta package type must implement.
func (*MetaSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetaSpec.
func (*MetaSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NddConstraints ¶
type NddConstraints struct {
// Semantic version constraints of ndd that package is compatible with.
Version string `json:"version"`
}
NddConstraints specifies a packages compatibility with ndd versions.
func (*NddConstraints) DeepCopy ¶
func (in *NddConstraints) DeepCopy() *NddConstraints
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NddConstraints.
func (*NddConstraints) DeepCopyInto ¶
func (in *NddConstraints) DeepCopyInto(out *NddConstraints)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PackageType ¶
type PackageType string
A PackageType is a type of package.
const ( ProviderPackageType PackageType = "Provider" IntentPackageType PackageType = "Intent" )
Types of packages.
type Pkg ¶
type Pkg interface {
GetNddConstraints() *NddConstraints
GetDependencies() []Dependency
}
Pkg is a description of a Ndd package. +k8s:deepcopy-gen=false
type PodSpec ¶ added in v0.2.0
type PodSpec struct {
// Name of the pod
Name string `json:"name,omitempty"`
// Type is the type of the deployment
// +kubebuilder:validation:Enum=`statefulset`;`deployment`
// +kubebuilder:default=deployment
Type DeploymentType `json:"type,omitempty"`
// Replicas defines the amount of replicas expected
// +kubebuilder:default=1
Replicas *int32 `json:"replicas,omitempty"`
// MaxReplicas defines the max expected replications of this pod
// +kubebuilder:default=8
MaxReplicas *int32 `json:"maxReplicas,omitempty"`
// MaxJobNumber indication on how many jobs a given pods should hold
MaxJobNumber *int32 `json:"maxJobNumber,omitempty"`
// PermissionRequests for RBAC rules required for this controller
// to function. The RBAC manager is responsible for assessing the requested
// permissions.
// +optional
PermissionRequests []rbacv1.PolicyRule `json:"permissionRequests,omitempty"`
// Containers identifies the containers in the pod
Containers []*ContainerSpec `json:"containers,omitempty"`
}
func (*PodSpec) DeepCopy ¶ added in v0.2.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.
func (*PodSpec) DeepCopyInto ¶ added in v0.2.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Provider ¶
type Provider struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ProviderSpec `json:"spec"`
}
A Provider is the description of a Ndd Provider package.
func (*Provider) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Provider.
func (*Provider) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Provider) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Provider) GetDependencies ¶
func (c *Provider) GetDependencies() []Dependency
GetDependencies gets the Provider package's dependencies.
func (*Provider) GetNddConstraints ¶
func (c *Provider) GetNddConstraints() *NddConstraints
GetNddConstraints gets the Provider package's ndd version constraints.
type ProviderList ¶ added in v0.2.0
type ProviderList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Provider `json:"items"`
}
A ProviderList is the description of a Ndd Provider package.
func (*ProviderList) DeepCopy ¶ added in v0.2.0
func (in *ProviderList) DeepCopy() *ProviderList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderList.
func (*ProviderList) DeepCopyInto ¶ added in v0.2.0
func (in *ProviderList) DeepCopyInto(out *ProviderList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ProviderList) DeepCopyObject ¶ added in v0.2.0
func (in *ProviderList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ProviderSpec ¶
type ProviderSpec struct {
// ServiceDiscovery is the type of service discovery
// +kubebuilder:validation:Enum=`consul`;`k8s`
// +kubebuilder:default=consul
ServiceDiscovery *ServiceDiscoveryType `json:"serviceDiscovery,omitempty"`
// ServiceDiscoverylNamespace is the name of the service discovery namespace
// +kubebuilder:default=consul
ServiceDiscoveryNamespace *string `json:"serviceDiscoveryNamespace,omitempty"`
// pods define the pod specification used by the controller for LCM/resource allocation
Pod *PodSpec `json:"pod,omitempty"`
MetaSpec `json:",inline"`
}
ProviderSpec specifies the configuration of a Provider.
func (*ProviderSpec) DeepCopy ¶
func (in *ProviderSpec) DeepCopy() *ProviderSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderSpec.
func (*ProviderSpec) DeepCopyInto ¶
func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceDiscoveryType ¶ added in v0.2.11
type ServiceDiscoveryType string
const ( ServiceDiscoveryTypeConsul ServiceDiscoveryType = "consul" ServiceDiscoveryTypeK8s ServiceDiscoveryType = "k8s" )