diff --git a/Dockerfile b/Dockerfile index 04f204c1..64043491 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,16 +8,10 @@ COPY go.sum go.sum COPY hack hack -ENV GOPRIVATE='github.com/onmetal/*' - # cache deps before building and copying source so that we don't need to re-download as much # and so that source changes don't invalidate our downloaded layer -RUN --mount=type=ssh --mount=type=secret,id=github_pat \ - --mount=type=cache,target=/root/.cache/go-build \ +RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/go/pkg \ - GITHUB_PAT_PATH=/run/secrets/github_pat ./hack/setup-git-redirect.sh \ - && mkdir -p -m 0600 ~/.ssh \ - && ssh-keyscan github.com >> ~/.ssh/known_hosts \ && go mod download # Copy the go source diff --git a/Makefile b/Makefile index fc80a91c..31f30920 100644 --- a/Makefile +++ b/Makefile @@ -120,6 +120,10 @@ extract-openapi: envtest openapi-extractor --apiservices="./config/apiserver/apiservice/bases" \ --output="./gen" +.PHONY: docs +docs: gen-crd-api-reference-docs ## Run go generate to generate API reference documentation. + $(GEN_CRD_API_REFERENCE_DOCS) -api-dir ./api/core/v1alpha1 -config ./hack/api-reference/config.json -template-dir ./hack/api-reference/template -out-file ./docs/api-reference/core.md + ##@ Build .PHONY: build-ironcore-net @@ -445,7 +449,7 @@ $(ENVTEST): $(LOCALBIN) .PHONY: openapi-extractor openapi-extractor: $(OPENAPI_EXTRACTOR) ## Download openapi-extractor locally if necessary. $(OPENAPI_EXTRACTOR): $(LOCALBIN) - test -s $(LOCALBIN)/openapi-extractor || GOBIN=$(LOCALBIN) go install github.com/onmetal/openapi-extractor/cmd/openapi-extractor@latest + test -s $(LOCALBIN)/openapi-extractor || GOBIN=$(LOCALBIN) go install github.com/ironcore-dev/openapi-extractor/cmd/openapi-extractor@latest .PHONY: gen-crd-api-reference-docs gen-crd-api-reference-docs: $(GEN_CRD_API_REFERENCE_DOCS) ## Download gen-crd-api-reference-docs locally if necessary. diff --git a/cmd/metalnetlet/main.go b/cmd/metalnetlet/main.go index 10e02ff7..c3c78aec 100644 --- a/cmd/metalnetlet/main.go +++ b/cmd/metalnetlet/main.go @@ -13,7 +13,7 @@ import ( metalnetletconfig "github.com/ironcore-dev/ironcore-net/metalnetlet/client/config" "github.com/ironcore-dev/ironcore-net/metalnetlet/controllers" "github.com/ironcore-dev/ironcore/utils/client/config" - metalnetv1alpha1 "github.com/onmetal/metalnet/api/v1alpha1" + metalnetv1alpha1 "github.com/ironcore-dev/metalnet/api/v1alpha1" flag "github.com/spf13/pflag" corev1 "k8s.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/cluster" diff --git a/config/metalnetlet/rbac/role.yaml b/config/metalnetlet/rbac/role.yaml index 56c3f211..fb5ea1b9 100644 --- a/config/metalnetlet/rbac/role.yaml +++ b/config/metalnetlet/rbac/role.yaml @@ -40,7 +40,7 @@ rules: - update - watch - apiGroups: - - networking.metalnet.onmetal.de + - networking.metalnet.ironcore.dev resources: - loadbalancers verbs: @@ -53,7 +53,7 @@ rules: - update - watch - apiGroups: - - networking.metalnet.onmetal.de + - networking.metalnet.ironcore.dev resources: - networkinterfaces verbs: @@ -66,7 +66,7 @@ rules: - update - watch - apiGroups: - - networking.metalnet.onmetal.de + - networking.metalnet.ironcore.dev resources: - networks verbs: diff --git a/docs/api-reference/core.md b/docs/api-reference/core.md new file mode 100644 index 00000000..42525204 --- /dev/null +++ b/docs/api-reference/core.md @@ -0,0 +1,3770 @@ +
Packages:
+ +Package v1alpha1 is the v1alpha1 version of the API.
+DaemonSet is the schema for the daemonsets API.
+Field | +Description | +||||
---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||
+kind +string + |
+DaemonSet |
+||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||
+spec + + +DaemonSetSpec + + + |
+
+ + +
|
+||||
+status + + +DaemonSetStatus + + + |
++ | +
IP is the schema for the ips API.
+Field | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||||||
+kind +string + |
+IP |
+||||||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||
+spec + + +IPSpec + + + |
+
+ + +
|
+||||||||
+status + + +IPStatus + + + |
++ | +
IPAddress is the schema for the ipaddresses API.
+Field | +Description | +||||
---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||
+kind +string + |
+IPAddress |
+||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||
+spec + + +IPAddressSpec + + + |
+
+ + +
|
+
Instance is the schema for the instances API.
+Field | +Description | +||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||||||||||||||
+kind +string + |
+Instance |
+||||||||||||||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||||||
+spec + + +InstanceSpec + + + |
+
+ + +
|
+||||||||||||||||
+status + + +InstanceStatus + + + |
++ | +
LoadBalancer is the schema for the loadbalancers API.
+Field | +Description | +||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||||||||||
+kind +string + |
+LoadBalancer |
+||||||||||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||
+spec + + +LoadBalancerSpec + + + |
+
+ + +
|
+||||||||||||
+status + + +LoadBalancerStatus + + + |
++ | +
LoadBalancerRouting is the schema for the loadbalancerroutings API.
+Field | +Description | +
---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+
+kind +string + |
+LoadBalancerRouting |
+
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+
+destinations + + +[]LoadBalancerDestination + + + |
++ | +
NATGateway is the schema for the natgateways API.
+Field | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||||||
+kind +string + |
+NATGateway |
+||||||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||
+spec + + +NATGatewaySpec + + + |
+
+ + +
|
+||||||||
+status + + +NATGatewayStatus + + + |
++ | +
NATGatewayAutoscaler is the schema for the natgatewayautoscalers API.
+Field | +Description | +||||||
---|---|---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||||
+kind +string + |
+NATGatewayAutoscaler |
+||||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||
+spec + + +NATGatewayAutoscalerSpec + + + |
+
+ + +
|
+||||||
+status + + +NATGatewayAutoscalerStatus + + + |
++ | +
NATTable is the schema for the nattables API.
+Field | +Description | +
---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+
+kind +string + |
+NATTable |
+
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+
+ips + + +[]NATIP + + + |
+
+ IPs specifies how to NAT the IPs for the NAT gateway. + |
+
Network is the schema for the networks API.
+Field | +Description | +||
---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||
+kind +string + |
+Network |
+||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||
+spec + + +NetworkSpec + + + |
+
+ + +
|
+||
+status + + +NetworkStatus + + + |
++ | +
NetworkID is the schema for the networkids API.
+Field | +Description | +||
---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||
+kind +string + |
+NetworkID |
+||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||
+spec + + +NetworkIDSpec + + + |
+
+ + +
|
+
NetworkInterface is the schema for the networkinterfaces API.
+Field | +Description | +||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+||||||||||||
+kind +string + |
+NetworkInterface |
+||||||||||||
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||
+spec + + +NetworkInterfaceSpec + + + |
+
+ + +
|
+||||||||||||
+status + + +NetworkInterfaceStatus + + + |
++ | +
Node is the schema for the nodes API.
+Field | +Description | +
---|---|
+apiVersion +string |
+
+
+core.apinet.ironcore.dev/v1alpha1
+
+ |
+
+kind +string + |
+Node |
+
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+
+spec + + +NodeSpec + + + |
+
+ + + |
+
+status + + +NodeStatus + + + |
++ | +
+(Appears on:InstanceSpec) +
+Field | +Description | +
---|---|
+nodeAffinity + + +NodeAffinity + + + |
++ | +
+instanceAntiAffinity + + +InstanceAntiAffinity + + + |
++ | +
+(Appears on:DaemonSet) +
+Field | +Description | +
---|---|
+nodeSelector + + +Kubernetes meta/v1.LabelSelector + + + |
+
+ Selector selects all Instance that are managed by this daemon set. + |
+
+template + + +InstanceTemplate + + + |
+
+ Template is the instance template. + |
+
+(Appears on:DaemonSet) +
+Field | +Description | +
---|---|
+collisionCount + +int32 + + |
++ | +
+(Appears on:IPAddressSpec) +
+Field | +Description | +
---|---|
+group + +string + + |
++ | +
+resource + +string + + |
++ | +
+namespace + +string + + |
++ | +
+name + +string + + |
++ | +
+uid + + +k8s.io/apimachinery/pkg/types.UID + + + |
++ | +
+(Appears on:IPAddress) +
+Field | +Description | +
---|---|
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
++ | +
+claimRef + + +IPAddressClaimRef + + + |
++ | +
+(Appears on:IPSpec) +
+Field | +Description | +
---|---|
+group + +string + + |
++ | +
+resource + +string + + |
++ | +
+name + +string + + |
++ | +
+uid + + +k8s.io/apimachinery/pkg/types.UID + + + |
++ | +
+(Appears on:IP) +
+Field | +Description | +
---|---|
+type + + +IPType + + + |
++ | +
+ipFamily + + +Kubernetes core/v1.IPFamily + + + |
++ | +
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
++ | +
+claimRef + + +IPClaimRef + + + |
++ | +
+(Appears on:IP) +
+string
alias)+(Appears on:IPSpec) +
+Value | +Description | +
---|---|
"Public" |
++ |
+(Appears on:InstanceAntiAffinity) +
+InstanceAffinityTerm defines a set of instances (namely those matching the labelSelector that this instance should be
+co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose
+value of the label with key
Field | +Description | +
---|---|
+labelSelector + + +Kubernetes meta/v1.LabelSelector + + + |
+
+ LabelSelector over a set of resources, in this case instances. + |
+
+topologyKey + +string + + |
+
+ TopologyKey indicates that this instance should be co-located (affinity) or not co-located (anti-affinity) +with the instances matching the labelSelector, where co-located is defined as running on a +node whose value of the label with key topologyKey matches that of any node on which any of the +selected instances is running. +Empty topologyKey is not allowed. + |
+
+(Appears on:Affinity) +
+Field | +Description | +
---|---|
+requiredDuringSchedulingIgnoredDuringExecution + + +[]InstanceAffinityTerm + + + |
+
+ RequiredDuringSchedulingIgnoredDuringExecution specifies anti-affinity requirements at +scheduling time, that, if not met, will cause the instance not be scheduled onto the node. +When there are multiple elements, the lists of nodes corresponding to each +instanceAffinityTerm are intersected, i.e. all terms must be satisfied. + |
+
+(Appears on:Instance, InstanceTemplate) +
+Field | +Description | +
---|---|
+type + + +InstanceType + + + |
+
+ Type specifies the InstanceType to deploy. + |
+
+loadBalancerType + + +LoadBalancerType + + + |
+
+ LoadBalancerType is the load balancer type this instance is for. + |
+
+networkRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NetworkRef references the network the instance is on. + |
+
+ips + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IPs are the IPs of the instance. + |
+
+loadBalancerPorts + + +[]LoadBalancerPort + + + |
+
+ LoadBalancerPorts are the load balancer ports of this instance. + |
+
+affinity + + +Affinity + + + |
+
+ Affinity are affinity constraints. + |
+
+topologySpreadConstraints + + +[]TopologySpreadConstraint + + + |
+
+ TopologySpreadConstraints describes how a group of instances ought to spread across topology +domains. Scheduler will schedule instances in a way which abides by the constraints. +All topologySpreadConstraints are ANDed. + |
+
+nodeRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NodeRef references the node hosting the load balancer instance. +Will be set by the scheduler if empty. + |
+
+(Appears on:Instance) +
+Field | +Description | +
---|---|
+ips + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
++ | +
+collisionCount + +int32 + + |
++ | +
+(Appears on:DaemonSetSpec, LoadBalancerSpec) +
+Field | +Description | +||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||||||
+spec + + +InstanceSpec + + + |
+
+ + +
|
+
string
alias)+(Appears on:InstanceSpec) +
+Value | +Description | +
---|---|
"LoadBalancer" |
++ |
+(Appears on:LoadBalancerRouting) +
+LoadBalancerDestination is the destination of the load balancer.
+Field | +Description | +
---|---|
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IP is the target IP. + |
+
+targetRef + + +LoadBalancerTargetRef + + + |
+
+ TargetRef is the target providing the destination. + |
+
+(Appears on:LoadBalancerSpec) +
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the name of the load balancer IP. + |
+
+ipFamily + + +Kubernetes core/v1.IPFamily + + + |
+
+ IPFamily is the IP family of the IP. Has to match IP if specified. If unspecified and IP is specified, +will be defaulted by using the IP family of IP. +If only IPFamily is specified, a random IP of that family will be allocated if possible. + |
+
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IP specifies a specific IP to allocate. If empty, a random IP will be allocated if possible. + |
+
+(Appears on:InstanceSpec, LoadBalancerSpec) +
+Field | +Description | +
---|---|
+protocol + + +Kubernetes core/v1.Protocol + + + |
+
+ Protocol is the protocol the load balancer should allow. +If not specified, defaults to TCP. + |
+
+port + +int32 + + |
+
+ Port is the port to allow. + |
+
+endPort + +int32 + + |
+
+ EndPort marks the end of the port range to allow. +If unspecified, only a single port, Port, will be allowed. + |
+
+(Appears on:LoadBalancer) +
+Field | +Description | +
---|---|
+type + + +LoadBalancerType + + + |
+
+ Type specifies the type of load balancer. + |
+
+networkRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NetworkRef references the network the load balancer is part of. + |
+
+ips + + +[]LoadBalancerIP + + + |
+
+(Optional)
+ IPs specifies the IPs of the load balancer. + |
+
+ports + + +[]LoadBalancerPort + + + |
+
+ Ports are the ports the load balancer should allow. +If empty, the load balancer allows all ports. + |
+
+selector + + +Kubernetes meta/v1.LabelSelector + + + |
+
+ Selector selects all Instance that are managed by this daemon set. + |
+
+template + + +InstanceTemplate + + + |
+
+ Template is the instance template. + |
+
+(Appears on:LoadBalancer) +
+Field | +Description | +
---|---|
+collisionCount + +int32 + + |
+
+ CollisionCount is used to construct names for IP addresses for the load balancer. + |
+
+(Appears on:LoadBalancerDestination) +
+LoadBalancerTargetRef is a load balancer target.
+Field | +Description | +
---|---|
+uid + + +k8s.io/apimachinery/pkg/types.UID + + + |
+
+ UID is the UID of the target. + |
+
+name + +string + + |
+
+ Name is the name of the target. + |
+
+nodeRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NodeRef references the node the destination network interface is on. + |
+
string
alias)+(Appears on:InstanceSpec, LoadBalancerSpec) +
+Value | +Description | +
---|---|
"Internal" |
++ |
"Public" |
++ |
+(Appears on:NATGatewayAutoscaler) +
+Field | +Description | +
---|---|
+natGatewayRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NATGatewayRef points to the target NATGateway to scale. + |
+
+minPublicIPs + +int32 + + |
+
+ MinPublicIPs is the minimum number of public IPs to allocate for a NAT Gateway. + |
+
+maxPublicIPs + +int32 + + |
+
+ MaxPublicIPs is the maximum number of public IPs to allocate for a NAT Gateway. + |
+
+(Appears on:NATGatewayAutoscaler) +
++(Appears on:NATGatewaySpec) +
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the semantic name of the NAT gateway IP. + |
+
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IP specifies a specific IP to allocate. If empty, a random IP will be allocated if possible. + |
+
+(Appears on:NATGateway) +
+Field | +Description | +
---|---|
+ipFamily + + +Kubernetes core/v1.IPFamily + + + |
+
+ IPFamily is the IP family of the NAT gateway. + |
+
+networkRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NetworkRef references the network the NAT gateway is part of. + |
+
+ips + + +[]NATGatewayIP + + + |
+
+(Optional)
+ IPs specifies the IPs of the NAT gateway. + |
+
+portsPerNetworkInterface + +int32 + + |
+
+ PortsPerNetworkInterface specifies how many ports to allocate per network interface. + |
+
+(Appears on:NATGateway) +
+Field | +Description | +
---|---|
+usedNATIPs + +int64 + + |
+
+ UsedNATIPs is the number of NAT IPs in-use. + |
+
+requestedNATIPs + +int64 + + |
+
+ RequestedNATIPs is the number of requested NAT IPs. + |
+
+(Appears on:NATTable) +
+Field | +Description | +
---|---|
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IP is the IP to NAT. + |
+
+sections + + +[]NATIPSection + + + |
+
+ Sections are the sections of the NATIP. + |
+
+(Appears on:NATIP) +
+Field | +Description | +
---|---|
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IP is the source IP. + |
+
+port + +int32 + + |
+
+ Port is the start port of the section. + |
+
+endPort + +int32 + + |
+
+ EndPort is the end port of the section + |
+
+targetRef + + +NATTableIPTargetRef + + + |
+
+ TargetRef references the entity having the IP. + |
+
+(Appears on:NATIPSection) +
+Field | +Description | +
---|---|
+uid + + +k8s.io/apimachinery/pkg/types.UID + + + |
+
+ UID is the UID of the target. + |
+
+name + +string + + |
+
+ Name is the name of the target. + |
+
+nodeRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NodeRef references the node the destination network interface is on. + |
+
+(Appears on:NetworkIDSpec) +
+Field | +Description | +
---|---|
+group + +string + + |
++ | +
+resource + +string + + |
++ | +
+namespace + +string + + |
++ | +
+name + +string + + |
++ | +
+uid + + +k8s.io/apimachinery/pkg/types.UID + + + |
++ | +
+(Appears on:NetworkID) +
+Field | +Description | +
---|---|
+claimRef + + +NetworkIDClaimRef + + + |
++ | +
+(Appears on:NetworkInterfaceSpec) +
+Field | +Description | +
---|---|
+ipFamily + + +Kubernetes core/v1.IPFamily + + + |
+
+ IPFamily is the IP family of the handling NAT gateway. + |
+
+claimRef + + +NetworkInterfaceNATClaimRef + + + |
+
+ ClaimRef references the NAT claim handling the network interface’s NAT. + |
+
+(Appears on:NetworkInterfaceNAT) +
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the name of the claiming NAT gateway. + |
+
+uid + + +k8s.io/apimachinery/pkg/types.UID + + + |
+
+ UID is the uid of the claiming NAT gateway. + |
+
+(Appears on:NetworkInterfaceSpec) +
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the semantic name of the network interface public IP. + |
+
+ipFamily + + +Kubernetes core/v1.IPFamily + + + |
+
+ IPFamily is the IP family of the IP. Has to match IP if specified. If unspecified and IP is specified, +will be defaulted by using the IP family of IP. +If only IPFamily is specified, a random IP of that family will be allocated if possible. + |
+
+ip + + +github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IP specifies a specific IP to allocate. If empty, a random ephemeral IP will be allocated. + |
+
+(Appears on:NetworkInterface) +
+Field | +Description | +
---|---|
+nodeRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NodeRef is the node the network interface is hosted on. + |
+
+networkRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ NetworkRef references the network that the network interface is in. + |
+
+ips + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
+
+ IPs are the internal IPs of the network interface. + |
+
+prefixes + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IPPrefix + + + |
+
+ Prefixes are additional prefixes to route to the network interface. + |
+
+natGateways + + +[]NetworkInterfaceNAT + + + |
+
+ NATs specify the NAT of the network interface IP family. +Can only be set if there is no matching IP family in PublicIPs. + |
+
+publicIPs + + +[]NetworkInterfacePublicIP + + + |
+
+(Optional)
+ PublicIPs are the public IPs the network interface should have. + |
+
string
alias)+(Appears on:NetworkInterfaceStatus) +
+Value | +Description | +
---|---|
"Error" |
+NetworkInterfaceStateError is used for any NetworkInterface that is some error occurred. + |
+
"Pending" |
+NetworkInterfaceStatePending is used for any NetworkInterface that is in an intermediate state. + |
+
"Ready" |
+NetworkInterfaceStateReady is used for any NetworkInterface that is ready. + |
+
+(Appears on:NetworkInterface) +
+Field | +Description | +
---|---|
+state + + +NetworkInterfaceState + + + |
++ | +
+pciAddress + + +PCIAddress + + + |
++ | +
+prefixes + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IPPrefix + + + |
++ | +
+publicIPs + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
++ | +
+natIPs + + +[]github.com/ironcore-dev/ironcore-net/apimachinery/api/net.IP + + + |
++ | +
+(Appears on:Network) +
+Field | +Description | +
---|---|
+id + +string + + |
+
+ ID is the ID of the network. + |
+
+(Appears on:Network) +
++(Appears on:Affinity) +
+Field | +Description | +
---|---|
+requiredDuringSchedulingIgnoredDuringExecution + + +NodeSelector + + + |
++ | +
+(Appears on:NodeAffinity) +
+NodeSelector represents the union of the results of one or more queries +over a set of nodes; that is, it represents the OR of the selectors represented +by the node selector terms.
+Field | +Description | +
---|---|
+nodeSelectorTerms + + +[]NodeSelectorTerm + + + |
+
+ Required. A list of node selector terms. The terms are ORed. + |
+
string
alias)+(Appears on:NodeSelectorRequirement) +
+NodeSelectorOperator is the set of operators that can be used in +a node selector requirement.
+Value | +Description | +
---|---|
"DoesNotExist" |
++ |
"Exists" |
++ |
"Gt" |
++ |
"In" |
++ |
"Lt" |
++ |
"NotIn" |
++ |
+(Appears on:NodeSelectorTerm) +
+NodeSelectorRequirement is a requirement for a selector. It’s a combination of the key to match, the operator +to match with, and zero to n values, depending on the operator.
+Field | +Description | +
---|---|
+key + +string + + |
+
+ Key is the key the selector applies to. + |
+
+operator + + +NodeSelectorOperator + + + |
+
+ Operator represents the key’s relationship to the values. +Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + |
+
+values + +[]string + + |
+
+ Values are the values to relate the key to via the operator. + |
+
+(Appears on:NodeSelector) +
+NodeSelectorTerm matches no objects if it’s empty. The requirements of the selector are ANDed.
+Field | +Description | +
---|---|
+matchExpressions + + +[]NodeSelectorRequirement + + + |
+
+ MatchExpressions matches nodes by the label selector requirements. + |
+
+matchFields + + +[]NodeSelectorRequirement + + + |
+
+ MatchFields matches the nodes by their fields. + |
+
+(Appears on:Node) +
++(Appears on:Node) +
++(Appears on:NetworkInterfaceStatus) +
+PCIAddress is a PCI address.
+Field | +Description | +
---|---|
+domain + +string + + |
++ | +
+bus + +string + + |
++ | +
+slot + +string + + |
++ | +
+function + +string + + |
++ | +
+(Appears on:InstanceSpec) +
+TopologySpreadConstraint specifies how to spread matching instances among the given topology.
+Field | +Description | +
---|---|
+maxSkew + +int32 + + |
+
+ MaxSkew describes the degree to which instances may be unevenly distributed.
+When |
+
+topologyKey + +string + + |
+
+ TopologyKey is the key of node labels. Nodes that have a label with this key
+and identical values are considered to be in the same topology.
+We consider each |
+
+whenUnsatisfiable + + +UnsatisfiableConstraintAction + + + |
+
+ WhenUnsatisfiable indicates how to deal with a instance if it doesn’t satisfy +the spread constraint. +- DoNotSchedule (default) tells the scheduler not to schedule it. +- ScheduleAnyway tells the scheduler to schedule the instance in any location, +but giving higher precedence to topologies that would help reduce the +skew. + |
+
+labelSelector + + +Kubernetes meta/v1.LabelSelector + + + |
+
+ LabelSelector is used to find matching instances. +Instances that match this label selector are counted to determine the number of instances +in their corresponding topology domain. + |
+
string
alias)+(Appears on:TopologySpreadConstraint) +
+Value | +Description | +
---|---|
"DoNotSchedule" |
+DoNotSchedule instructs the scheduler not to schedule the instance +when constraints are not satisfied. + |
+
+Generated with gen-crd-api-reference-docs
+
{{ fieldName . }}
+ (Members of {{ fieldName . }}
are embedded into this type.)
+
metadata
field.
+ {{ end }}
+
+ {{ if or (eq (fieldName .) "spec") }}
+ Packages:
+
+ Generated with gen-crd-api-reference-docs
+
{{.Underlying}}
alias){{ end -}}
++ (Appears on: + {{- $prev := "" -}} + {{- range . -}} + {{- if $prev -}}, {{ end -}} + {{- $prev = . -}} + {{ typeDisplayName . }} + {{- end -}} + ) +
+{{ end }} + +Value | +Description | +
---|---|
{{ typeDisplayName . }} |
+ {{ safe (renderComments .CommentLines) }} | +
Field | +Description | +
---|---|
+ apiVersion + string |
+
+
+ {{apiGroup .}}
+
+ |
+
+ kind + string + |
+ {{.Name.Name}} |
+