The BIG-IP Controller for Kubernetes and OpenShift watches the Kubernetes/OpenShift API for Services with associated F5 resources and creates/modifies BIG-IP Local Traffic Manager (LTM) objects accordingly.
F5 resources provide the settings you want the BIG-IP Controller to apply when creating objects on the BIG-IP system.

kind:ConfigMapapiVersion:v1metadata:# name of the resource to create on the BIG-IPname:http.vs# The namespace to create the object in.# The k8s-bigip-ctlr watches all namespaces by default (as of v1.1).# If the k8s-bigip-ctlr is watching a specific namespace(s),# this setting must match the namespace of the Service you want to proxy# -AND- the namespace(s) the k8s-bigip-ctlr watches.namespace:defaultlabels:# tells the k8s-bigip-ctlr to watch this ConfigMapf5type:virtual-serverdata:# NOTE: schema v0.1.4 is required as of k8s-bigip-ctlr v1.3.0schema:"f5schemadb://bigip-virtual-server_v0.1.4.json"data:|{"virtualServer":{"backend":{"servicePort":3000,"serviceName":"myService","healthMonitors":[{"interval":30,"protocol":"http","send":"GET /\r\n","timeout":120}]},"frontend":{"virtualAddress":{"port":80,"bindAddr":"173.16.2.2"},"partition":"kubernetes","balance":"least-connections-node","mode":"http"}}}----kind:ConfigMapapiVersion:v1metadata:name:https.vslabels:f5type:virtual-serverdata:schema:"f5schemadb://bigip-virtual-server_v0.1.4.json"data:|{"virtualServer":{"backend":{"servicePort":3000,"serviceName":"myService","healthMonitors":[{"interval":30,"protocol":"https","send":"GET /\r\n","timeout":120}]},"frontend":{"virtualAddress":{"port":443,"bindAddr":"173.16.2.2"},"partition":"kubernetes","balance":"least-connections-node","mode":"http","sslProfile":{"f5ProfileName":"Common/clientssl"}}}}

kind:ConfigMapapiVersion:v1metadata:# name of the resource to create on the BIG-IPname:http.vs# The namespace to create the object in.# The k8s-bigip-ctlr watches all namespaces by default (as of v1.1).# If the k8s-bigip-ctlr is watching a specific namespace(s),# this setting must match the namespace of the Service you want to proxy# -AND- the namespace(s) the k8s-bigip-ctlr watches.namespace:defaultlabels:# tells the k8s-bigip-ctlr to watch this ConfigMapf5type:virtual-serverdata:# NOTE: schema v0.1.4 is required as of k8s-bigip-ctlr v1.3.0schema:"f5schemadb://bigip-virtual-server_v0.1.4.json"data:|{"virtualServer":{"backend":{"servicePort":3000,"serviceName":"myService","healthMonitors":[{"interval":30,"protocol":"http","send":"GET /\r\n","timeout":120}]},"frontend":{"virtualAddress":{"port":80,"bindAddr":"173.16.2.2"},"partition":"kubernetes","balance":"least-connections-node","mode":"http"}}}

Update the Kubernetes/OpenShift API server. Be sure to provide the namespace the Service runs in (if not default).

If you need to take a Service down temporarily and want to keep the associated BIG-IP objects, leave the F5 Resource ConfigMap in place. The BIG-IP Controller will continue to manage the associated BIG-IP LTM objects when the Service comes back up.

If you deploy a new Service with the same name as one you took down, the BIG-IP Controller associates the existing BIG-IP LTM objects with the new Service.

The BIG-IP Controller for Kubernetes can create and manage BIG-IP Local Traffic Manager (LTM) pools that aren’t attached to a front-end BIG-IP virtual server (also referred to as “unattached pools”). The BIG-IP Controller for Kubernetes applies the following naming convention when creating pool members for unattached pools:

<namespace>_<configmap-name>.

For example, default_http.pool_only.

Important

Before creating unattached pools, make sure the BIG-IP system has another wat to route traffic to the Service(s), such as an iRule or a local traffic policy. After creating an unattached pool for a Service, use the BIG-IP config utility to add the pool members to the iRule or traffic policy. This ensures proper handling of client connections to your back-end applications.

kind:ConfigMapapiVersion:v1metadata:# name of the resource to create on the BIG-IPname:http.pool_onlylabels:f5type:virtual-serverdata:# NOTE: k8s-bigip-ctlr v1.0.0 requires schema v0.1.2schema:"f5schemadb://bigip-virtual-server_v0.1.3.json"data:|{"virtualServer":{"backend":{"servicePort":3000,"serviceName":"myService","healthMonitors":[{"interval":30,"protocol":"http","send":"GET","timeout":86400}]},"frontend":{"virtualAddress":{"port":80},"partition":"kubernetes","balance":"least-connections-node","mode":"http"}}}