To run sfptpd
in a Kubernetes cluster, deploy the sfptpd
privileged
container to all nodes receiving PTP signal and
disable the node's existing time services.
This directory provides a Kustomize formatted base (DaemonSet) and example overlays.
(The Onload Operator does not presently manage sfptpd
; please refer to
Release Notes for details on expressing interest in this feature.)
The example Kustomize overlay
overlays/example-bond0/kustomization.yaml
would deploy the following to a namespace called sfptpd
:
- A DaemonSet deploying the
sfptpd
container to worker nodes labellednode-role.kubernetes.io/ptp
. - A sfptpd.cfg config file specifying
the pod's PTP ethernet interface name as
bond0
. (A bond is not required.)
To use in your own cluster, make a copy and apply:
cp -r overlays/example-bond0 overlays/my-cluster
$EDITOR overlays/my-cluster/kustomization.yaml
$EDITOR overlays/my-cluster/sfptpd.cfg
kubectl label nodes <your-ptp-node> node-role.kubernetes.io/ptp=
kubectl apply -k overlays/my-cluster
Ensure you have also disabled the node's existing time services.
A node must have one time source only. sfptpd should replace services such
as ntpd
and chronyd
if they manage the local host's time.
If you are running OpenShift, follow the Redhat documentation on disabling chronyd.service.
Ensure the resulting MachineConfigPool exactly selects the nodes specified
above; if using the Quickstart's node label of node-role.kubernetes.io/ptp
,
use a NodeSelector matching this label.
Container images with compiled binaries are provided. To build the container afresh, refer to sfptpd on GitHub.
Example config (.cfg) files are available from sfptpd on GitHub.
Full documentation is available in the Enhanced PTP User Guide
(c) Copyright 2023 Advanced Micro Devices, Inc.