Configuring an egress router pod destination list from a config map

As a cluster administrator, you can define a ConfigMap object that specifies destination mappings for an egress router pod. The specific format of the configuration depends on the type of egress router pod. For details on the format, refer to the documentation for the specific egress router pod.

Configuring an egress router destination mappings with a config map

For a large or frequently-changing set of destination mappings, you can use a config map to externally maintain the list. An advantage of this approach is that permission to edit the config map can be delegated to users without cluster-admin privileges. Because the egress router pod requires a privileged container, it is not possible for users without cluster-admin privileges to edit the pod definition directly.

The egress router pod does not automatically update when the config map changes. You must restart the egress router pod to get updates.

Prerequisites

  • Install the OpenShift CLI (oc).

  • Log in as a user with cluster-admin privileges.

Procedure

  1. Create a file containing the mapping data for the egress router pod, as in the following example:

    1. # Egress routes for Project "Test", version 3
    2. 80 tcp 203.0.113.25
    3. 8080 tcp 203.0.113.26 80
    4. 8443 tcp 203.0.113.26 443
    5. # Fallback
    6. 203.0.113.27

    You can put blank lines and comments into this file.

  2. Create a ConfigMap object from the file:

    1. $ oc delete configmap egress-routes --ignore-not-found
    1. $ oc create configmap egress-routes \
    2. --from-file=destination=my-egress-destination.txt

    In the previous command, the egress-routes value is the name of the ConfigMap object to create and my-egress-destination.txt is the name of the file that the data is read from.

  3. Create an egress router pod definition and specify the configMapKeyRef stanza for the EGRESS_DESTINATION field in the environment stanza:

    1. ...
    2. env:
    3. - name: EGRESS_DESTINATION
    4. valueFrom:
    5. configMapKeyRef:
    6. name: egress-routes
    7. key: destination
    8. ...

Additional resources