kubernetesgoogle-cloud-platformxmppchatejabberd

Not able to access the ejabberd server even in ejabberdctl if ejabberdnode name is changed in GCP deployment using environment variable


As a first step in using ejabberd cluster in GCP, I tried to change the node name using the environment variable "ERLANG_NODE_ARG=ejabberd@main" as mentioned in the readme file.

But I am not able to access the ejabberd server in the service. I tried to check the status using ejabberdctl, the start command returns node already running message while the status command return node down message. enter image description here

I want to create an ejabberd cluster. Below is my deployment file

apiVersion: apps/v1
kind: Deployment
metadata:
  name: main
spec:
  replicas: 1
  selector:
    matchLabels:
      app: main
  template:
    metadata:
      labels:
        app: main
    spec:
      containers:
        - name: main
          image: ejabberd/ecs
          env:
            - name: ERLANG_NODE_ARG
              value: ejabberd@main
          #   - name: ERLANG_COOKIE
          #     value: dummycookie123
            # - name: CTL_ON_CREATE
            #   value: "register admin localhost asd"
          ports:
            - containerPort: 5222
            - containerPort: 5269
            - containerPort: 5280
            - containerPort: 5443

I am trying to access the above deployment by defining the service. I am able to access the service if I remove the environment added to change the nodename, but it fails when I include the variable in the yaml file.

I checked the ejabberd.log file and error.log file inside the container using cloudshell, there is no entry in error.log and all comments in ejabberd.log matches the log of the ejabberd tested in local machine. I couldn't find why this file in GCP. Can you help me identifying the cause for this issue and also suggest the guideliness regarding the ejabberd deployment in GCP cluster.


Solution

  • The ejabberd node naming format seems to be the issue. I followed the suggestions provided in the GitHub query and used the name in the format name@(host_name/machine_name/contiainer_name) and it worked. I am able to access the ejabberd service with the provided node name.