Reports on Resource Status#

Ingress Resources#

An Ingress resource can have a status that includes an address (IP address or DNS name) through which the nodes of this Ingress resource become publicly accessible. The address can be seen in the output of the command kubectl get ingress in the ADDRESS column, as shown below:

$ kubectl get ingresses

    NAME           HOSTS              ADDRESS           PORTS     AGE
    myapp-ingress  myapp.example.com   12.13.23.123      80, 443   2m

ANIC must be configured to report the status of Ingress:

  1. Use the command-line flag -report-ingress-status.

  2. Define the source for the external address. This can be:

    • A user-defined address specified in the ConfigMap key external-status-address.

    • A LoadBalancer type service configured with or without an external IP address and specified using the command-line flag -external-service.

See the documentation on ConfigMap keys and command-line arguments.

Note

When ANIC shuts down, it does not clear the status of Ingress resources.

VirtualServer and VirtualServerRoute Resources#

A VirtualServer or VirtualServerRoute resource contains a status field with information about the resource's state and the IP address through which the nodes of this resource become publicly accessible. You can see the status in the output of the commands kubectl get virtualservers or kubectl get virtualserverroutes, as shown below:

$ kubectl get virtualservers

    NAME   STATE   HOST                   IP            PORTS      AGE
    myapp  Valid   myapp.example.com      12.13.23.123  [80,443]   34s

To view the external hostname associated with the VirtualServer resource, use the -o wide option:

$ kubectl get virtualservers -o wide

    NAME   STATE   HOST               IP    EXTERNALHOSTNAME                                                         PORTS      AGE
    mysite Valid   mysite.example.com       ae430f41a1a0042908655abcdefghijkl-12345678.eu-west-2.elb.amazonaws.com   [80,443]   106s

Note

If multiple addresses are present, only the first one is displayed.

To view additional addresses or more information about the resource's status, use the following command:

$ kubectl describe virtualserver <NAME>

    . . .
    Status:
      External Endpoints:
        IP:        12.13.23.123
        Ports:     [80,443]
      Message:  Configuration for myapp/myapp was added or updated
      Reason:   AddedOrUpdated
      State:    Valid

Status Specification#

The following fields are displayed in both the VirtualServer and VirtualServerRoute status:

Field

Description

Type

State

The current state of the resource. Possible values: Valid (valid), Warning (warning), and Invalid (invalid). For more details, see the message field.

string

Reason

The reason for the last update.

string

Message

Additional information about the status.

string

ExternalEndpoints

A list of external endpoints for which the resource hosts are publicly accessible.

[]externalEndpoint

The following field is displayed only in the VirtualServerRoute status:

Field

Description

Type

ReferencedBy

The VirtualServer that references this VirtualServerRoute. Format: namespace/name.

string

ExternalEndpoint#

Field

Description

Type

IP

The external IP address.

string

Hostname

The hostname of the external LoadBalancer.

string

Ports

A list of external ports.

string

ANIC must be configured to report the status of VirtualServer or VirtualServerRoute.

If you want ANIC to report on external endpoints, define the source for the external address. This can be:

  • A user-defined address specified in the ConfigMap key external-status-address.

  • A LoadBalancer type service configured with or without an external IP address and specified using the command-line flag -external-service.

See the documentation on ConfigMap keys and command-line arguments.

The remaining fields will be included in the report even without a configured external address.

Note

When ANIC shuts down, it does not clear the status of VirtualServer and VirtualServerRoute resources.

Policy Resources#

A Policy resource includes a status field with information about the resource's state. You can see the status in the output of the command kubectl get policy, as shown below:

$ kubectl get policy

    NAME              STATE   AGE
    webapp-policy     Valid   30s

To view additional addresses or more information about the resource's status, use the following command:

$ kubectl describe policy <NAME>

    . . .
    Status:
      Message:  Configuration for default/webapp-policy was added or updated
      Reason:   AddedOrUpdated
      State:    Valid

Status Specification#

The following fields are displayed in the Policy status:

Field

Description

Type

State

The current state of the resource. Possible values: Valid (valid) or Invalid (invalid). For more details, see the message field.

string

Reason

The reason for the last update.

string

Message

Additional information about the status.

string

TransportServer Resources#

A TransportServer resource includes a status field with information about the resource's state. You can see it in the output of the command kubectl get transportserver, as shown below:

$ kubectl get transportserver

    NAME      STATE   REASON           AGE
    dns-tcp   Valid   AddedOrUpdated   47m

To view additional addresses or more information about the resource's status, use the following command:

$ kubectl describe transportserver <NAME>

    . . .
    Status:
      Message:  Configuration for default/dns-tcp was added or updated
      Reason:   AddedOrUpdated
      State:    Valid

Status Specification#

The following fields are displayed in the TransportServer status:

Field

Description

Type

State

The current state of the resource. Possible values: Valid (valid), Warning (warning), and Invalid (invalid). For more details, see the message field.

string

Reason

The reason for the last update.

string

Message

Additional information about the status.

string