Skip to content

Can't use Kubernetes with deployment name 'pact-broker', conflicts with PACT_BROKER_PORT #7

@maelvls

Description

@maelvls
Details I have already (please mark the applicable with an `x`):
  • Confirmed this is the right place to raise the issue - only issues related to the Dockerization of the Pact Broker should be raised here. Issues related to the Pact Broker application itself should be raised in the Pact Broker project.
  • Upgraded to the latest Pact Broker Docker image OR
  • Checked the CHANGELOG to see if the issue I am about to raise has been fixed
  • Read the Troubleshooting page

Software versions

  • pact-broker gem version: 2.34.0
  • pact-broker docker version: 2.34.0-1
  • OS: macOS 10.14.5 (18F132)
  • using Docker for Mac 2.1.0.0 (Docker Engine 19.03.1 + docker-desktop Kubernetes v1.14.3)

Description of the issue

When creating a Deployment, kubernetes injects environment variables such as PACT_BROKER_PORT (this issue only appears when the deployment name is pact-broker)

% kubectl exec -n pact pact-6755d8cb98-jbdlm
[...]
PACT_BROKER_PORT=tcp://10.103.77.49:80
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
PACT_BROKER_SERVICE_HOST=10.103.77.49
PACT_BROKER_PORT_80_TCP_PROTO=tcp
PACT_BROKER_PORT_80_TCP_PORT=80
PACT_BROKER_PORT_80_TCP_ADDR=10.103.77.49
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
PACT_BROKER_SERVICE_PORT=80
PACT_BROKER_PORT_80_TCP=tcp://10.103.77.49:80
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
PACT_BROKER_SERVICE_PORT_80=80

Some of these conflict with what pact-broker expects: Kubernetes sets PACT_BROKER_PORT to tcp://10.103.77.49:80 but pact-broker expects 80 which gives the error:

Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: production
URI::InvalidURIError: bad URI(is not URI?): "tcp://0.0.0.0:tcp://10.103.77.49:9292"

What is your thought on that?

Workaround

Change the deployment name from pact-broker to pact-broker2 for example.

Steps to reproduce

git clone https://github.com/maelvls/pact-broker-kubernetes --branch=pact-broker-docker-issue-7
cd pact-broker-kubernetes/kubernetes
ls *.yaml | xargs -L1 kubectl apply -f

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions