PingOne

Uploading files to data plane nodes

About this task

After you upload the ping-auth plugin’s schema to Konnect, upload the following files for the plugin to each Kong Konnect data plane node:

  • access.lua

  • handler.lua

  • Network_handle.lua

  • response.lua

  • schema.lua

If a data plane node doesn’t have these files, the ping-auth plugin cannot run on that node.

Follow the Kong Gateway plugin deployment instructions to set up the plugin on each node. Instructions can vary depending on your platform. If you’re running Kong Gateway on Docker, the following instructions are provided as an example.

Install the ping-auth plugin inside the Kong Konnect Docker container for each node. Copy or mount the plugin’s source code into the container.

Steps

  1. In your control plane, go to Data Plane Nodes, then click New Data Plane Node.

  2. Select a Platform, for example Linux (Docker), and Generate a certificate.

    Screen capture of the 'Self-managed Hybrid Data Plane Node' screen.
  3. Copy the generated docker run command and add the following snippet to it.

    Substitute your own source and target paths.

    • The <source_path> is the location where you extracted the ping-auth plugin files. This is the parent folder that contains the ping-auth folder.

    • The <target_path> is where you keep custom Kong plugins. This is the path to the ping-auth plugin.

    -v "/<source_path>/ping-auth:/<target_path>/ping-auth" \
    -e "KONG_PLUGINS=bundled,ping-auth" \
    -e "KONG_LUA_PACKAGE_PATH=/<target_path>/?.lua;;" \
  4. To start a data plane node with the ping-auth plugin loaded, run the command.

    Example:

    For example, the command will look something like this, including the three snippet lines from the previous step. In this example, plugins/kong represents the <source_path> and usr/local/share/lua/5.1/kong/plugins represents the <target_path>.

    docker run -d \
    -v "/plugins/kong/ping-auth:/usr/local/share/lua/5.1/kong/plugins/ping-auth" \
    -e "KONG_PLUGINS=bundled,ping-auth" \
    -e "KONG_LUA_PACKAGE_PATH=/usr/local/share/lua/5.1/kong/plugins/?.lua;;" \
    -e "KONG_ROLE=data_plane" \
    -e "KONG_DATABASE=off" \
    -e "KONG_VITALS=off" \
    -e "KONG_NGINX_WORKER_PROCESSES=1" \
    -e "KONG_CLUSTER_MTLS=pki" \
    -e "KONG_CLUSTER_CONTROL_PLANE=<example>.cp0.konghq.com:443" \
    -e "KONG_CLUSTER_SERVER_NAME=<example>.cp0.konghq.com" \
    -e "KONG_CLUSTER_TELEMETRY_ENDPOINT=<example>.tp0.konghq.com:443" \
    -e "KONG_CLUSTER_TELEMETRY_SERVER_NAME=<example>.tp0.konghq.com" \
    -e "KONG_CLUSTER_CERT=<cert>" \
    -e "KONG_CLUSTER_CERT_KEY=<key>" \
    -e "KONG_LUA_SSL_TRUSTED_CERTIFICATE=system" \
    -e "KONG_KONNECT_MODE=on" \
    -p 8000:8000 \
    -p 8443:8443 \
    kong/kong-gateway:<version>
  5. To confirm the Docker deployment, run the following command:

    "docker logs [container id]"
    Screen capture of the 'Create a Data Plane Node' screen confirming deployment of the configured Data Plane Node.