<p>I'm trying to deploy free5GC (<a href="https://www.free5gc.org/cluster" rel="nofollow noreferrer">cluster version</a>) over K8s.
The problem with this software is that there are some services that have to know other service IPs before starting. I solve this issue in docker-compose executing a script inside each docker container with other service IPs as parameters.
This is my docker-compose.yaml:</p>

<pre><code>version: '3'

networks:
    testing_net:
        ipam:
            driver: default
            config:
                - subnet: 172.28.0.0/16

services:
  mongo:
    container_name: mongo
    image: mongo
    networks: 
      testing_net:
        ipv4_address: ${mongo_ip}

  webui:
    container_name: webui
    image: j0lama/free5gc-webui
    depends_on:
      - mongo
    ports:
      - '80:3000'
    extra_hosts:
      - "mongo:${mongo_ip}"
    networks: 
      testing_net:
        ipv4_address: ${webui_ip}

  hss:
    container_name: hss
    command: bash -c "./hss_setup.sh ${mongo_ip} ${hss_ip} ${amf_ip}"
    image: j0lama/free5gc-hss
    depends_on:
      - mongo
    networks: 
      testing_net:
        ipv4_address: ${hss_ip}

  amf:
    container_name: amf
    command: bash -c "./amf_setup.sh ${mongo_ip} ${hss_ip} ${amf_ip} ${smf_ip}"
    image: j0lama/free5gc-amf
    depends_on:
      - mongo
      - hss
    ports:
      - '36412:36412'
    networks: 
      testing_net:
        ipv4_address: ${amf_ip}

  smf:
    container_name: smf
    command: bash -c "./smf_setup.sh ${smf_ip} ${upf_ip} ${pcrf_ip}"
    image: j0lama/free5gc-smf
    depends_on:
      - mongo
      - hss
      - amf
    networks: 
      testing_net:
        ipv4_address: ${smf_ip}

  pcrf:
    container_name: pcrf
    command: bash -c "./pcrf_setup.sh ${mongo_ip} ${smf_ip} ${pcrf_ip}"
    image: j0lama/free5gc-pcrf
    depends_on:
      - mongo
      - hss
      - amf
      - smf
    networks: 
      testing_net:
        ipv4_address: ${pcrf_ip}

  upf:
    container_name: upf
    command: bash -c "./upf_setup.sh ${upf_ip}"
    image: j0lama/free5gc-upf
    depends_on:
      - mongo
      - hss
      - amf
      - smf
      - pcrf
    networks: 
      testing_net:
        ipv4_address: ${upf_ip}
</code></pre>

<p>With this I am able to setup all the components of my cluster correctly.
I already try kompose utility but does not work.</p>

<p>Any suggestion or alternative for kubernetes?</p>

<p>Thanks for your help.</p>

j0lama
<p>You can expose each deployment with a kubernetes service. When you do that, each exposed service cluster IP will be available to the containers as environment variables.</p>

<p>For example: deploy hss, and expose hss ports using a service named <code>hss</code>. Then, any container that needs to connect to <code>hss</code> can use the environment variable <code>HSS_SERVICE_HOST</code> to get the IP address for that service. There are more environment variable that will give you service port numbers, or service addresses in other formats.</p>
