Skip to content
This repository was archived by the owner on Dec 13, 2023. It is now read-only.
This repository was archived by the owner on Dec 13, 2023. It is now read-only.

Connect existing Ingress service on Google Cloud #162

@Simran-B

Description

@Simran-B

Theo in Community Slack (about k8s cluster):

I am trying to connect an existing Ingress service on Google Cloud with my ArangoDB instance (using the operator). I do not choose LoadBalancer as an external service since this is going to create a new LoadBalancer (which I do not want), so I create a manual NodePort service which I assign to my Ingress controller yaml. However the Ingress cannot see the service.

...

Ok I found the issue here. The Google Cloud Ingress creates a Level 7 LoadBalancer for HTTP and HTTPS traffic. It demands a health check for all containers. The ArangoDB coordinator containers include a readiness probe, however the schema is set to HTTPS. However the default connection between an Ingress resource defaults to HTTP when communicating with a Service and the Ingress controller cannot access the readinessProbe. The solution is to default the Service with this annotation:

kind: Service
apiVersion: v1
metadata:
  name: arangodb-staging-service-nodeport
  annotations:
    cloud.google.com/app-protocols: '{"https-port":"HTTPS"}'
spec:
  selector:
    arango_deployment: arangodb-staging
    role: coordinator
  type: NodePort
  ports:
    - name: https-port
      port: 8529
      targetPort: 8529

This enables the Ingress to connect with the readiness probe.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions