Skip to content

Confluence DC depends on RBAC to work #1

Open
@hoeghh

Description

@hoeghh

When using Confluence DC the entry point script depends on RBAC to be enabled. If its not possible to implement without, this is ok, but there is a way that doesnt depend on RBAC.

I've tested it with multitool.

kubectl create deployment multitool --image=praqma/network-multitool 
kubectl scale deployment multitool --replicas=3

echo "apiVersion: v1
kind: Service
metadata:
  labels:
    app: multitool
  name: multitool
  namespace: default
spec:
  clusterIP: "None"
  selector:
    app: multitool
  type: ClusterIP
status:
  loadBalancer: {}
" > multitool-service.yaml

kubectl apply -f multitool-service.yaml

kubectl exec -it multitool-7885b5f94f-6kjll bash

host multitool | grep has | cut -d " " -f 4 | tr "\n" "," | sed -e 's/,$//'

The above will give us

10.42.1.32,10.42.1.31,10.42.0.27

If we scale it down again to 1, and run the host command, it still works

10.42.0.27

In the file docker-entrypoint.sh at line 149 we use curl to get healthy endpoints from the api server, though this requires rabc permissions to do so.

CLUSTER_PEER_IPS=$(curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/${CONFLUENCE_NAMESPACE}/endpoints/${CONFLUENCE_SERVICE_NAME} | jq -r .subsets[].addresses[].ip | paste -sd "," -)

It could be replaced with something like

host $CONFLUENCE_SERVICE_NAME | grep has | cut -d " " -f 4 | tr "\n" "," | sed -e 's/,$//'

Much more elegant, and with not RBAC needed.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions