chore: update docker entry point, support dns cluster in k8s
This commit is contained in:
parent
a4f093675d
commit
7b270db8d9
|
@ -157,6 +157,10 @@ jobs:
|
||||||
if: matrix.discovery == 'k8s'
|
if: matrix.discovery == 'k8s'
|
||||||
run: |
|
run: |
|
||||||
helm install emqx \
|
helm install emqx \
|
||||||
|
--set emqxConfig.EMQX_CLUSTER__DISCOVERY_STRATEGY="k8s" \
|
||||||
|
--set emqxConfig.EMQX_CLUSTER__K8S__APISERVER="https://kubernetes.default.svc:443" \
|
||||||
|
--set emqxConfig.EMQX_CLUSTER__K8S__SERVICE_NAME="emqx-headless" \
|
||||||
|
--set emqxConfig.EMQX_CLUSTER__K8S__NAMESPACE="default" \
|
||||||
--set image.repository=$TARGET \
|
--set image.repository=$TARGET \
|
||||||
--set image.pullPolicy=Never \
|
--set image.pullPolicy=Never \
|
||||||
--set emqxAclConfig="" \
|
--set emqxAclConfig="" \
|
||||||
|
@ -173,8 +177,8 @@ jobs:
|
||||||
run: |
|
run: |
|
||||||
helm install emqx \
|
helm install emqx \
|
||||||
--set emqxConfig.EMQX_CLUSTER__DISCOVERY_STRATEGY="dns" \
|
--set emqxConfig.EMQX_CLUSTER__DISCOVERY_STRATEGY="dns" \
|
||||||
--set emqxConfig.EMQX_CLUSTER__DNS__NAME="emqx-headless.default.svc.cluster.local" \
|
|
||||||
--set emqxConfig.EMQX_CLUSTER__DNS__RECORD_TYPE="srv" \
|
--set emqxConfig.EMQX_CLUSTER__DNS__RECORD_TYPE="srv" \
|
||||||
|
--set emqxConfig.EMQX_CLUSTER__DNS__NAME="emqx-headless.default.svc.cluster.local" \
|
||||||
--set image.repository=$TARGET \
|
--set image.repository=$TARGET \
|
||||||
--set image.pullPolicy=Never \
|
--set image.pullPolicy=Never \
|
||||||
--set emqxAclConfig="" \
|
--set emqxAclConfig="" \
|
||||||
|
|
|
@ -14,7 +14,7 @@ type: application
|
||||||
|
|
||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
version: 4.4.1
|
version: 5
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application.
|
# incremented each time you make changes to the application.
|
||||||
|
|
|
@ -91,13 +91,13 @@ initContainers: {}
|
||||||
|
|
||||||
## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
|
## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
|
||||||
emqxConfig:
|
emqxConfig:
|
||||||
EMQX_CLUSTER__DISCOVERY_STRATEGY: "k8s"
|
EMQX_CLUSTER__DISCOVERY_STRATEGY: "dns"
|
||||||
# EMQX_CLUSTER__DISCOVERY_STRATEGY: "dns"
|
EMQX_CLUSTER__DNS__NAME: "{{ .Release.Name }}-headless.{{ .Release.Namespace }}.svc.cluster.local"
|
||||||
# EMQX_CLUSTER__DNS__NAME: "{{ .Release.Name }}-headless.{{ .Release.Namespace }}.svc.cluster.local"
|
EMQX_CLUSTER__DNS__RECORD_TYPE: "srv"
|
||||||
# EMQX_CLUSTER__DNS__RECORD_TYPE: "srv"
|
# EMQX_CLUSTER__DISCOVERY_STRATEGY: "k8s"
|
||||||
EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
|
# EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
|
||||||
EMQX_CLUSTER__K8S__SERVICE_NAME: "{{ .Release.Name }}-headless"
|
# EMQX_CLUSTER__K8S__SERVICE_NAME: "{{ .Release.Name }}-headless"
|
||||||
EMQX_CLUSTER__K8S__NAMESPACE: "{{ .Release.Namespace }}"
|
# EMQX_CLUSTER__K8S__NAMESPACE: "{{ .Release.Namespace }}"
|
||||||
## The address type is used to extract host from k8s service.
|
## The address type is used to extract host from k8s service.
|
||||||
## Value: ip | dns | hostname
|
## Value: ip | dns | hostname
|
||||||
## Note:Hostname is only supported after v4.0-rc.2
|
## Note:Hostname is only supported after v4.0-rc.2
|
||||||
|
|
|
@ -16,22 +16,31 @@ shopt -s nullglob
|
||||||
|
|
||||||
LOCAL_IP=$(hostname -i | grep -oE '((25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])\.){3}(25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])' | head -n 1)
|
LOCAL_IP=$(hostname -i | grep -oE '((25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])\.){3}(25[0-5]|(2[0-4]|1[0-9]|[1-9]|)[0-9])' | head -n 1)
|
||||||
|
|
||||||
if [[ -z "$EMQX_NODE_NAME" ]]; then
|
export EMQX_NAME="${EMQX_NAME:-emqx}"
|
||||||
EMQX_NAME="${EMQX_NAME:-emqx}"
|
|
||||||
if [[ -z "$EMQX_HOST" ]]; then
|
if [[ -z "$EMQX_HOST" ]]; then
|
||||||
if [[ "$EMQX_CLUSTER__K8S__ADDRESS_TYPE" == "dns" ]] && [[ -n "$EMQX_CLUSTER__K8S__NAMESPACE" ]]; then
|
if [[ "$EMQX_CLUSTER__DISCOVERY_STRATEGY" == "dns" ]] && \
|
||||||
|
[[ "$EMQX_CLUSTER__DNS__RECORD_TYPE" == "srv" ]] && \
|
||||||
|
grep -q "$(hostname).$EMQX_CLUSTER__DNS__NAME" /etc/hosts; then
|
||||||
|
EMQX_HOST="$(hostname).$EMQX_CLUSTER__DNS__NAME"
|
||||||
|
elif [[ "$EMQX_CLUSTER__DISCOVERY_STRATEGY" == "k8s" ]] && \
|
||||||
|
[[ "$EMQX_CLUSTER__K8S__ADDRESS_TYPE" == "dns" ]] && \
|
||||||
|
[[ -n "$EMQX_CLUSTER__K8S__NAMESPACE" ]]; then
|
||||||
EMQX_CLUSTER__K8S__SUFFIX=${EMQX_CLUSTER__K8S__SUFFIX:-"pod.cluster.local"}
|
EMQX_CLUSTER__K8S__SUFFIX=${EMQX_CLUSTER__K8S__SUFFIX:-"pod.cluster.local"}
|
||||||
EMQX_HOST="${LOCAL_IP//./-}.$EMQX_CLUSTER__K8S__NAMESPACE.$EMQX_CLUSTER__K8S__SUFFIX"
|
EMQX_HOST="${LOCAL_IP//./-}.$EMQX_CLUSTER__K8S__NAMESPACE.$EMQX_CLUSTER__K8S__SUFFIX"
|
||||||
elif [[ "$EMQX_CLUSTER__K8S__ADDRESS_TYPE" == 'hostname' ]] && [[ -n "$EMQX_CLUSTER__K8S__NAMESPACE" ]]; then
|
elif [[ "$EMQX_CLUSTER__DISCOVERY_STRATEGY" == "k8s" ]] && \
|
||||||
|
[[ "$EMQX_CLUSTER__K8S__ADDRESS_TYPE" == 'hostname' ]] && \
|
||||||
|
[[ -n "$EMQX_CLUSTER__K8S__NAMESPACE" ]]; then
|
||||||
EMQX_CLUSTER__K8S__SUFFIX=${EMQX_CLUSTER__K8S__SUFFIX:-'svc.cluster.local'}
|
EMQX_CLUSTER__K8S__SUFFIX=${EMQX_CLUSTER__K8S__SUFFIX:-'svc.cluster.local'}
|
||||||
EMQX_HOST=$(grep -h "^$LOCAL_IP" /etc/hosts | grep -o "$(hostname).*.$EMQX_CLUSTER__K8S__NAMESPACE.$EMQX_CLUSTER__K8S__SUFFIX")
|
EMQX_HOST=$(grep -h "^$LOCAL_IP" /etc/hosts | grep -o "$(hostname).*.$EMQX_CLUSTER__K8S__NAMESPACE.$EMQX_CLUSTER__K8S__SUFFIX")
|
||||||
else
|
else
|
||||||
EMQX_HOST="$LOCAL_IP"
|
EMQX_HOST="$LOCAL_IP"
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
export EMQX_HOST
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$EMQX_NODE_NAME" ]]; then
|
||||||
export EMQX_NODE_NAME="$EMQX_NAME@$EMQX_HOST"
|
export EMQX_NODE_NAME="$EMQX_NAME@$EMQX_HOST"
|
||||||
unset EMQX_NAME
|
|
||||||
unset EMQX_HOST
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# The default rpc port discovery 'stateless' is mostly for clusters
|
# The default rpc port discovery 'stateless' is mostly for clusters
|
||||||
|
|
Loading…
Reference in New Issue