NetCheckerTargetsConfig

This section describes the NetCheckerTargetsConfig custom resource (CR) used in the network connectivity monitoring API for target clusters. The NetCheckerTargetsConfig object is automatically created and managed by netchecker-controller on the target cluster in the netchecker namespace. The name of the object is hardcoded to mcc-netchecker-targets-config.

Warning

Do not manually create or delete the NetCheckerTargetsConfig object to prevent overwriting by netchecker-controller. You can only reconfigure the existing object if you enable manual configuration as described in Manual configuration of network infrastructure monitoring.

The NetCheckerTargetsConfig object includes information of per-node targets (other nodes) to be checked by a specific node and using the defined list of subnets. For more details, see Infrastructure connectivity monitoring.

For demonstration purposes, the NetCheckerTargetsConfig CR is split into the following sections:

NetCheckerTargetsConfig metadata

The NetCheckerTargetsConfig CR metadata contains the following fields:

  • apiVersion

    API version of the object that is cnnc.mirantis.com/v1alpha1.

  • kind

    Object type that is NetCheckerTargetsConfig.

  • metadata

    Object metadata that contains the following subfields:

    • name

      Object name.

    • namespace

      Project in which the NetCheckerTargetsConfig object is created.

Metadata example:

apiVersion: cnnc.mirantis.com/v1alpha1
kind: NetCheckerTargetsConfig
metadata:
  name: nctc-sample
  namespace: default

NetCheckerTargetsConfig spec

The spec object field contains configuration for a NetCheckerTargetsConfig object and has the following fields:

  • nodesConfig

    List of per-node configuration. Contains the following fields:

    • nodeName

      Node name.

    • nodeSelector

      Selector for cluster nodes. If a group of nodes has the same targets, these targets may be grouped by the node selector.

    • targets

      List of target nodes with subnets selected for connectivity monitoring. Contains the following fields:

      • nodeName

        Name of the target node.

      • nodeSelector

        Node selector to group target nodes.

      • subnetTags

        List of subnet tags to be used for connectivity monitoring. IP addresses from these subnets will be used as targets for ping checks.

NetCheckerTargetsConfig configuration example:

spec:
  nodesConfig:
  - nodeName: master-0
    targets:
    - nodeName: master-1
      subnetTags:
      - default/k8s-lcm-nics
      - default/k8s-pxe-nics
    - nodeName: master-2
      subnetTags:
      - default/k8s-lcm-nics
      - default/k8s-pxe-nics
  - nodeName: master-1
    targets:
    - nodeName: master-0
      subnetTags:
      - default/k8s-lcm-nics
      - default/k8s-pxe-nics
    - nodeName: master-2
      subnetTags:
      - default/k8s-lcm-nics
      - default/k8s-pxe-nics
  - nodeName: master-2
    targets:
    - nodeName: master-0
      subnetTags:
      - default/k8s-lcm-nics
      - default/k8s-pxe-nics
    - nodeName: master-1
      subnetTags:
      - default/k8s-lcm-nics
      - default/k8s-pxe-nics

NetCheckerTargetsConfig status

The status field of the NetCheckerTargetsConfig object contains the current state of the object:

  • nodes

    List of per-node statuses. Contains the following fields:

    • name

      Node name.

    • error

      Error message in case of issues with obtaining node information. Otherwise, this field is omitted.

    • targetsCount

      Amount of targets (nodes and subnets) for a particular node.

    • objectHelperInfo

      Information on how to obtain the Netchecker agent configuration for a particular node.

  • error

    Summary of per-node errors, if any.

NetCheckerTargetsConfig status example:

status:
  nodes:
  - name: master-0
    objectHelperInfo: kubectl -n netchecker get cm -o yaml net-checker-agent-config-master-0
    targetsCount: "4"
  - name: master-1
    objectHelperInfo: kubectl -n netchecker get cm -o yaml net-checker-agent-config-master-1
    targetsCount: "4"
  - name: master-2
    objectHelperInfo: kubectl -n netchecker get cm -o yaml net-checker-agent-config-master-2
    targetsCount: "4"