How to assign index routing allocation with APM

I am using APM version 8.2.0, how do i allocate the indexes/data-streams to be on a specific nodeset.

For example in my metricbeat.yml and filebeat.yml i might do the following:

setup.template.settings:
      index:
        routing.allocation.require.type: "monitoring"

However the above does not work with apm server.

apm.yaml

apiVersion: apm.k8s.elastic.co/v1
kind: ApmServer
metadata:
  name: apm-server-prod
  namespace: elastic-system
spec:
  version: 8.2.0
  count: 1
  elasticsearchRef:
    name: "elasticsearch-prod"
  kibanaRef:
    name: "kibana-prod"
  http:
    service:
      spec:
        type: NodePort
  config:
    setup.template.settings:
      index:
        routing.allocation.require.type: "monitoring" // Does not work
    apm-server:
      auth:
        anonymous:
          rate_limit:
            event_limit:  300
            ip_limit:  1000
          allow_service: ["admin-dashboard"]
      rum: 
        enabled: true
        allow_origins: ["*"]

kibana.yaml

apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: kibana-prod
  namespace: elastic-system
spec:
  version: 8.2.0
  count: 1
  elasticsearchRef:
    name: elasticsearch-prod
  http:
    service:
      spec:
        type: NodePort
  podTemplate:
    metadata:
      labels:
        scrape: kb
    spec:
      containers:
      - name: kibana
        resources:
          limits:
            memory: 2Gi
            cpu: 1
      nodeSelector:
        geeiq/node-type: ops
  config:
    monitoring.kibana.collection.enabled: false
    xpack.fleet.packages:
      - name: apm
        version: latest

I'm looking for a solution that i can programtically make, not a manual solution using the kibana dashboard/ui