This document explains how to configure external targets for probing in Google Distributed Cloud (GDC) air-gapped. The system discovers and monitors these targets by reading a specific Kubernetes ConfigMap.
Before you begin
To apply a ConfigMap to the gpc-system namespace, you must have access to
the cluster and permissions to create or modify ConfigMaps in that namespace.
You also need the path to the kubeconfig file for the Management API server cluster.
External target probes can only be configured in root-admin or org-admin clusters.
Understanding ConfigMap details
The prober looks for a ConfigMap with the following characteristics:
- Name:
pnet-external-probe-targets-config - Namespace:
gpc-system - Data Key: The ConfigMap must contain a key named
targets.yamlwithin itsdatafield. The value associated with this key must be a YAML string defining the probe targets.
Understanding targets.yaml structure
The targets.yaml content must be a YAML list of objects. Each object represents a single external probe target and follows this structure:
- name: <unique-probe-name>
spec:
target: <hostname-or-ip>
probeType: <TCP or ICMP>
port: <port-number> # Required for TCP, ignored for ICMP
interval: <duration> # e.g., "10s", "1m"
timeout: <duration> # Optional, e.g., "5s". Defaults to 5s if not set.
Here's a breakdown of the fields:
name(string): A unique identifier for this specific probe target.spec: Defines the probing parameters:target(string): The hostname or IP address of the external target to probe.probeType(string): The type of probe to perform. Supported values are:TCP: Performs a TCP connection attempt to the specifiedtargetandport.ICMP: Sends an ICMP echo request (ping) to thetarget.
port(int32): The port number to use for TCP probes. This field is required whenprobeTypeisTCPand is ignored forICMPprobes.interval(string): The frequency at which the probe should run. This must be a valid Kubernetesmetav1.Durationstring (e.g.,"5s","1m30s").timeout(string, optional): The maximum time to wait for a single probe attempt to complete. This is also ametav1.Durationstring. If not specified, a default timeout of5sis used.
Create and apply the ConfigMap
To create or update the ConfigMap, follow these steps:
Create a YAML file named
external-probe-configmap.yaml. The following example defines three probe targets:apiVersion: v1 kind: ConfigMap metadata: name: pnet-external-probe-targets-config namespace: gpc-system data: targets.yaml: | - name: "example-tcp-server" spec: target: "192.0.2.1" probeType: "TCP" port: 80 interval: "10s" timeout: "3s" - name: "example-icmp-host" spec: target: "8.8.8.8" probeType: "ICMP" interval: "30s" - name: "another-tcp-service" spec: target: "my-service.example.com" probeType: "TCP" port: 443 interval: "1m" # Using default timeout of 5sApply the ConfigMap to your cluster:
kubectl apply -f external-probe-configmap.yaml -n gpc-system --kubeconfig=MANAGEMENT_API_SERVERReplace
MANAGEMENT_API_SERVERwith the path to the kubeconfig file for the Management API server.
The prober automatically detects changes to this ConfigMap and starts, stops, or updates probe processes based on the defined targets.