i have a docker-compose.yaml
version: '3.4'
services:
mongodb:
image: mongo:latest
assets:
image: gnaudio/jabra-xpress-assets:v4.0.7020
frontend:
image: gnaudio/jabra-xpress-frontend:v4.0.7314
environment:
- "ENDPOINT=http://¤HOST-NAME¤:85"
ports:
- "80:80"
backend:
image: gnaudio/jabra-xpress-api:v4.0.7313
environment:
- "ConnectionStrings:XpressDatabaseSqlServer=¤CONNSTRING¤"
- "ConnectionStrings:MongoDb=mongodb://mongodb/raw"
- "DefaultAnalyticsEndpoint=http://¤HOST-NAME¤:88/api/v1/Analytics"
- "JDODownload=http://assets/"
- "NetworkEndpoint=http://¤HOST-NAME¤:85/api/Xpress/Network/"
- "SDK:fwURL_base=http://¤HOST-NAME¤:82"
- "SDK:fsURL_base=http://¤HOST-NAME¤:82"
ports:
- "85:80"
depends_on:
- mongodb
- assets
- sdkbackend
sdkbackend:
image: gnaudio/jabra-xpress-sdkbackend:latest
environment:
- "Storage:SDKCopyUrl=http://¤HOST-NAME¤:82"
ports:
- "82:80"
analytics:
image: gnaudio/jabra-xpress-analytics:v4.0.7312
environment:
- "ConnectionStrings:MongodbServer=mongodb://mongodb/raw"
ports:
- "88:80"
depends_on:
- mongodb
analytics-cron:
image: gnaudio/jabra-xpress-analytics-cron:v4.0.7313
environment:
- "MONGODBCONNECTIONSTRING=mongodb://mongodb/raw"
depends_on:
- mongodb
I know I can translate this with kompose up to kubernetes. But what is with the Parts "DefaultAnalyticsEndpoint=http://¤HOST-NAME¤:88/api/v1/Analytics"?
According to the producer of Jabra, you should do that:
Replace ¤CONNSTRING¤ with the SQL connection string Replace ¤HOST-NAME¤ with the server host-name.
What hostname I have to do put in there? I mean I have 6 different Services and Pods. How can they communicate with each other?
As with Docker(-Compose), Kubernetes includes a DNS service that permits you to reference e.g. Services (Capitalized means the Kubernetes type).
IIRC, Kompose generates Services and Deployments for Docker-Compose services. You will generally refer to Kubernetes services through the Service type and you should have Services for e.g. frontend, backend etc.
So, in answer to your question, depending on which Service you wish to reference, you will replace ${HOST_NAME} with one of the Service names. It would appear that DefaultAnalyticsEndpoint references the Docker-Compose service analytics. This should be mapped to a Kubernetes Service called analytics too. IIUC, in both case (Docker-Compose and Kubernetes), The HOST-NAME in DefaultAnalyticsEndpoint would be analytics.
If you reference a Service from within the same Namespace, you need only use the Service name e.g. backend. If you refer to a Service from another Namespace, you will need to include the Namespace specifier, e.g. backend.${NAMESPACE}.cluster.local
See: