APM not being deployed as a NodePort

We have an ECK cluster running on version 2.14 and we are deploying the APM server. Despite setting http.service.spec.type: NodePort the APM server is spawned as a ClusterIP.

    count: 1
    version: 8.15.2
    fullnameOverride: ${local.apm_server_name}
    spec:
      elasticsearchRef:
        name: ${data.terraform_remote_state.eck_elasticsearch.outputs.elasticsearch_name}
      kibanaRef: 
        name: ${data.terraform_remote_state.eck_kibana.outputs.kibana_name}
      http:
        service:
          spec:
            type: NodePort

We use a similiar config for Kibana and Fleet and they are correctly deployed as a NodePort.

This is on a fresh Kubernetes cluster EKS 1.31

I resolved this issue

There is a difference in defining values in the eck-apm-server helm chart compared to all other eck-* charts.

In kibana/fleet/elasticsearch/elastic-agents there is a spec object and the apm-server is the only one that does not conform to this convention.