NIC

Manages Nic Resource on IONOS Cloud.

Overview

  • Resource Name: Nic

  • Resource Group: compute.ionoscloud.crossplane.io

  • Resource Version: v1alpha1

  • Resource Scope: Cluster

Usage

In order to manage resources on IONOS Cloud using Crossplane Provider, you need to have Crossplane Provider for IONOS Cloud installed into a Kubernetes Cluster, as a prerequisite. For a step-by-step guide, check the following link.

It is recommended to clone the repository for easier access to the example files.

Create

Use the following command to create a resource instance. Before applying the file, check the properties defined in the spec.forProvider fields:

kubectl apply -f examples/ionoscloud/compute/nic.yaml

Note: The command should be run from the root of the crossplane-provider-ionoscloud directory.

Update

Use the following command to update an instance. Before applying the file, update the properties defined in the spec.forProvider fields:

kubectl apply -f examples/ionoscloud/compute/nic.yaml

Note: The command should be run from the root of the crossplane-provider-ionoscloud directory.

Wait

Use the following commands to wait for resources to be ready and synced. Update the <instance-name> accordingly:

kubectl wait --for=condition=ready nics.compute.ionoscloud.crossplane.io/<instance-name>
kubectl wait --for=condition=synced nics.compute.ionoscloud.crossplane.io/<instance-name>

Get

Use the following command to get a list of the existing instances:

kubectl get -f nics.compute.ionoscloud.crossplane.io

Note: Use options --output wide, --output json to get more information about the resource instances.

Delete

Use the following command to destroy the resources created by applying the file:

kubectl delete -f examples/ionoscloud/compute/nic.yaml

Note: The command should be run from the root of the crossplane-provider-ionoscloud directory.

Properties

In order to configure the IONOS Cloud Resource, the user can set the spec.forProvider fields into the specification file for the resource instance. The required fields that need to be set can be found here. Following, there is a list of all the properties:

  • datacenterConfig (object)

    • description: DatacenterConfig contains information about the datacenter resource on which the nic will be created.

    • properties:

      • datacenterId (string)

        • description: DatacenterID is the ID of the Datacenter on which the resource will be created. It needs to be provided via directly or via reference.

        • format: uuid

      • datacenterIdRef (object)

        • description: DatacenterIDRef references to a Datacenter to retrieve its ID.

        • properties:

          • name (string)

            • description: Name of the referenced object.

          • policy (object)

            • description: Policies for referencing.

            • properties:

              • resolution (string)

                • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                • default: "Required"

                • possible values: "Required";"Optional"

              • resolve (string)

                • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                • possible values: "Always";"IfNotPresent"

        • required properties:

          • name

      • datacenterIdSelector (object)

        • description: DatacenterIDSelector selects reference to a Datacenter to retrieve its DatacenterID.

        • properties:

          • matchControllerRef (boolean)

            • description: MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.

          • matchLabels (object)

            • description: MatchLabels ensures an object with matching labels is selected.

          • policy (object)

            • description: Policies for selection.

            • properties:

              • resolution (string)

                • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                • default: "Required"

                • possible values: "Required";"Optional"

              • resolve (string)

                • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                • possible values: "Always";"IfNotPresent"

  • dhcp (boolean)

    • description: Indicates if the NIC will reserve an IP using DHCP.

  • firewallActive (boolean)

    • description: Activate or deactivate the firewall. By default, an active firewall without any defined rules will block all incoming network traffic except for the firewall rules that explicitly allows certain protocols, IP addresses and ports.

  • firewallType (string)

    • description: The type of firewall rules that will be allowed on the NIC. If not specified, the default INGRESS value is used.

    • possible values: "BIDIRECTIONAL";"EGRESS";"INGRESS"

  • ipsConfigs (object)

    • description: Collection of IP addresses, assigned to the NIC. Explicitly assigned public IPs need to come from reserved IP blocks. Passing value null or empty array will assign an IP address automatically. The IPs can be set directly or using reference to the existing IPBlocks and indexes. If no indexes are set, all IPs from the corresponding IPBlock will be assigned. All IPs set on the Nic will be displayed on the status's ips field.

    • properties:

      • ips (array)

        • description: Use IPs to set specific IPs to the resource. If both IPs and IPsBlockConfigs are set, only ips field will be considered.

      • ipsBlockConfigs (array)

        • description: Use IpsBlockConfigs to reference existing IPBlocks, and to mention the indexes for the IPs. Indexes start from 0, and multiple indexes can be set. If no index is set, all IPs from the corresponding IPBlock will be assigned to the resource.

        • properties:

          • indexes (array)

            • description: Indexes are referring to the IPs indexes retrieved from the IPBlock. Indexes are starting from 0. If no index is set, all IPs from the corresponding IPBlock will be assigned.

          • ipBlockId (string)

            • description: IPBlockID is the ID of the IPBlock on which the resource will be created. It needs to be provided via directly or via reference.

            • format: uuid

          • ipBlockIdRef (object)

            • description: IPBlockIDRef references to a IPBlock to retrieve its ID.

            • properties:

              • name (string)

                • description: Name of the referenced object.

              • policy (object)

                • description: Policies for referencing.

                • properties:

                  • resolution (string)

                    • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                    • default: "Required"

                    • possible values: "Required";"Optional"

                  • resolve (string)

                    • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                    • possible values: "Always";"IfNotPresent"

            • required properties:

              • name

          • ipBlockIdSelector (object)

            • description: IPBlockIDSelector selects reference to a IPBlock to retrieve its IPBlockID.

            • properties:

              • matchControllerRef (boolean)

                • description: MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.

              • matchLabels (object)

                • description: MatchLabels ensures an object with matching labels is selected.

              • policy (object)

                • description: Policies for selection.

                • properties:

                  • resolution (string)

                    • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                    • default: "Required"

                    • possible values: "Required";"Optional"

                  • resolve (string)

                    • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                    • possible values: "Always";"IfNotPresent"

  • lanConfig (object)

    • description: LanConfig contains information about the lan resource on which the nic will be on.

    • properties:

      • lanId (string)

        • description: LanID is the ID of the Lan on which the resource will be created. It needs to be provided via directly or via reference.

      • lanIdRef (object)

        • description: LanIDRef references to a Lan to retrieve its ID.

        • properties:

          • name (string)

            • description: Name of the referenced object.

          • policy (object)

            • description: Policies for referencing.

            • properties:

              • resolution (string)

                • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                • default: "Required"

                • possible values: "Required";"Optional"

              • resolve (string)

                • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                • possible values: "Always";"IfNotPresent"

        • required properties:

          • name

      • lanIdSelector (object)

        • description: LanIDSelector selects reference to a Lan to retrieve its LanID.

        • properties:

          • matchControllerRef (boolean)

            • description: MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.

          • matchLabels (object)

            • description: MatchLabels ensures an object with matching labels is selected.

          • policy (object)

            • description: Policies for selection.

            • properties:

              • resolution (string)

                • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                • default: "Required"

                • possible values: "Required";"Optional"

              • resolve (string)

                • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                • possible values: "Always";"IfNotPresent"

  • name (string)

    • description: The name of the resource.

  • serverConfig (object)

    • description: ServerConfig contains information about the server resource on which the nic will be created.

    • properties:

      • serverId (string)

        • description: ServerID is the ID of the Server on which the resource will be created. It needs to be provided via directly or via reference.

        • format: uuid

      • serverIdRef (object)

        • description: ServerIDRef references to a Server to retrieve its ID.

        • properties:

          • name (string)

            • description: Name of the referenced object.

          • policy (object)

            • description: Policies for referencing.

            • properties:

              • resolution (string)

                • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                • default: "Required"

                • possible values: "Required";"Optional"

              • resolve (string)

                • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                • possible values: "Always";"IfNotPresent"

        • required properties:

          • name

      • serverIdSelector (object)

        • description: ServerIDSelector selects reference to a Server to retrieve its ServerID.

        • properties:

          • matchControllerRef (boolean)

            • description: MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.

          • matchLabels (object)

            • description: MatchLabels ensures an object with matching labels is selected.

          • policy (object)

            • description: Policies for selection.

            • properties:

              • resolution (string)

                • description: Resolution specifies whether resolution of this reference is required. The default is 'Required', which means the reconcile will fail if the reference cannot be resolved. 'Optional' means this reference will be a no-op if it cannot be resolved.

                • default: "Required"

                • possible values: "Required";"Optional"

              • resolve (string)

                • description: Resolve specifies when this reference should be resolved. The default is 'IfNotPresent', which will attempt to resolve the reference only when the corresponding field is not present. Use 'Always' to resolve the reference on every reconcile.

                • possible values: "Always";"IfNotPresent"

  • vnet (string)

    • description: The vnet ID that belongs to this NIC. Requires system privileges

Required Properties

The user needs to set the following properties in order to configure the IONOS Cloud Resource:

  • datacenterConfig

  • dhcp

  • lanConfig

  • serverConfig

Resource Definition

The corresponding resource definition can be found here.

Resource Instance Example

An example of a resource instance can be found here.

Last updated