IngressRouteTCP for tomcat AJP port

I've been trying to expose a StatefulSet running Tomcat such that an Apache Httpd running outside k3s can forward to it using the AJP protocol. So far I've successfully created an AJP endpoint on port 8009 that shows up in the Traefik dashboard. I've created the StatefulSet and the following Service:

apiVersion: v1
kind: Service
  name: tomcat-server
  namespace: services
    app: tomcat
    app: tomcat
    - name: http
      port: 8080
      targetPort: 8080
    - name: ajp
      port: 8009
      targetPort: 8009

I've created an Ingress which allows me to connect to it on port 8080, but that was the easy one.

I've tried a few things for the IngressRouteTCP, the latest is this:

kind: IngressRouteTCP
  name: tomcat-ajp
  namespace: services
    - ajp
  - match: HostSNI('*')
    - name: tomcat-server
      port: 8009

The reason I picked is because it is listed with:
kubectl api-resources

But when I try to create that I get:
error: resource mapping not found for name: "tomcat-ajp" namespace: "services" from "ingressTCP.yaml": no matches for kind "IngressRouteTCP" in version ""
ensure CRDs are installed first

I had also tried as the apiVersion but that didn't work either.

I haven't found any clear instructions on how exactly to "ensure CRDs are installed first", I found the page at Routing Configuration for Traefik CRD - Traefik which has a link on the kind, but doesn't have clear instructions exactly what to do and even the source code listed there is a long text window that's not even easy to cut and paste somewhere - is there a URL for that somewhere?

It feels like I'm so close but I don't know what to do to get the rest of the way. Any help would be appreciated.