Skip to content

Commit 7b66504

Browse files
committed
Ambassador mappings for all services. Edit tests.
* Add ambassador mappings for all deployed services * Edit tests to use specified domain name * Add domain name related info to readme Signed-off-by: Mikael Saarinen <mikael.saarinen@oulu.fi>
1 parent 9030fef commit 7b66504

File tree

7 files changed

+67
-39
lines changed

7 files changed

+67
-39
lines changed

README.md

+11
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ $ terraform apply ./modules/tf_state_storage_azure
2525
```
2626
### No separate storage resource group (default)
2727

28+
2. Remember to edit `main.tf` email variable to a real one for TLS certificate
2829
2. Deploy main service stack
2930

3031
```bash
@@ -43,6 +44,16 @@ $ terraform apply ./modules/storage_rg
4344
$ terraform apply -var=use_separate_storage_rg=true ./
4445
```
4546

47+
## After deployment
48+
49+
After deployment you can use following url for accessing services and adapters {terraform-workspace}.westeurope.cloudapp.azure.com
50+
51+
Hono registry: `{terraform-workspace}.westeurope.cloudapp.azure.com/registry`
52+
53+
Grafana: `{terraform-workspace}.westeurope.cloudapp.azure.com/grafana`
54+
55+
Jaeger: `{terraform-workspace}.westeurope.cloudapp.azure.com/jaeger`
56+
4657
## License
4758
[MIT License](./LICENSE)
4859

ambassador_mappings.yaml

+27-5
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,25 @@ metadata:
44
name: hono-mqtt-adapter
55
spec:
66
port: 1883
7+
#host: ${domain}
78
service: hono-adapter-mqtt-vertx:1883
89
---
910
apiVersion: getambassador.io/v2
1011
kind: TCPMapping
12+
metadata:
13+
name: secure-hono-mqtt-adapter
14+
spec:
15+
port: 8883
16+
#host: ${domain}
17+
service: hono-adapter-mqtt-vertx:8883
18+
---
19+
apiVersion: getambassador.io/v2
20+
kind: TCPMapping
1121
metadata:
1222
name: hono-device-registry
1323
spec:
1424
port: 28080
25+
#host: ${domain}
1526
service: hono-service-device-registry-ext:28080
1627
---
1728
apiVersion: getambassador.io/v2
@@ -28,6 +39,7 @@ metadata:
2839
name: hono-kafka-external
2940
spec:
3041
port: 9092
42+
#host: ${domain}
3143
service: hono-kafka-0-external:9092
3244
---
3345
apiVersion: getambassador.io/v2
@@ -55,9 +67,9 @@ kind: Mapping
5567
metadata:
5668
name: jaeger-operator-jaeger-query
5769
spec:
58-
#port: 80
59-
prefix: /jaeger/
60-
rewrite: /jaeger/
70+
port: 80
71+
prefix: /jaeger
72+
rewrite: /jaeger
6173
#host_redirect: true
6274
host: ${domain}
6375
service: jaeger-operator-jaeger-query:16686
@@ -68,8 +80,8 @@ metadata:
6880
name: jaeger-operator-jaeger-query-tcp
6981
spec:
7082
port: 16686
71-
prefix: /jaeger/
72-
host: ${domain}
83+
#prefix: /jaeger/
84+
#host: ${domain}
7385
service: jaeger-operator-jaeger-query:16686
7486
---
7587
apiVersion: getambassador.io/v2
@@ -82,6 +94,16 @@ spec:
8294
service: acme-challenge-service
8395
---
8496
apiVersion: getambassador.io/v2
97+
kind: Mapping
98+
metadata:
99+
name: hono-device-registry-mapping
100+
spec:
101+
#port: 80
102+
prefix: /registry
103+
host: ${domain}
104+
service: hono-service-device-registry-ext:28080
105+
---
106+
apiVersion: getambassador.io/v2
85107
kind: TLSContext
86108
metadata:
87109
name: ambassador-tls-terminator

modules/container_deployment/ambassador_values.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ service:
1111
- name: mqtt-adapter
1212
port: 1883
1313
targetPort: 1883
14+
- name: mqtt-adaptersec
15+
port: 8883
16+
targetPort: 8883
1417
- name: device-registry
1518
port: 28080
1619
targetPort: 28080
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
jaeger:
22
create: true
33
spec:
4-
strategy: production
5-
query:
6-
serviceType: LoadBalancer
4+
strategy: allInOne
5+
allInOne:
6+
image: jaegertracing/all-in-one:1.13
77
options:
8-
log-level: debug
9-
query:
10-
base-path: /jaeger
8+
log-level: debug
9+
query:
10+
base-path: /jaeger
1111
ingress:
1212
enabled: false

tests/honoscript/receiver.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ info=./config.json
44

55
test -f $info || exit 1
66

7-
KAFKA_IP=$(jq -r .KAFKA_IP < $info)
8-
#KAFKA_IP=$"workspace-k8stest.westeurope.cloudapp.azure.com"
7+
DOMAIN_NAME=$(jq -r .DOMAIN_NAME <$info)
8+
KAFKA_PORT=$(jq -r .KAFKA_PORT < $info)
99
MY_TENANT=$(jq -r .MY_TENANT < $info)
1010
KAFKA_TRUSTSTORE_PATH=$(jq -r .KAFKA_TRUSTSTORE_PATH < $info)
1111

1212
java -jar hono-cli-1.9.0-exec.jar \
1313
--spring.profiles.active=receiver,local,kafka \
1414
--tenant.id=$MY_TENANT \
15-
--hono.kafka.commonClientConfig.bootstrap.servers=$KAFKA_IP:9092 \
15+
--hono.kafka.commonClientConfig.bootstrap.servers=${DOMAIN_NAME}:${KAFKA_PORT} \
1616
--hono.kafka.commonClientConfig.security.protocol=SASL_SSL \
1717
--hono.kafka.commonClientConfig.sasl.jaas.config="org.apache.kafka.common.security.scram.ScramLoginModule required username=\"hono\" password=\"hono-secret\";" \
1818
--hono.kafka.commonClientConfig.sasl.mechanism=SCRAM-SHA-512 \

tests/honoscript/send.sh

+4-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function mqtt_message() {
2323
local MESSAGE_TYPE="$1"
2424
local CONTENT="$2"
2525

26-
mosquitto_pub -h $MQTT_ADAPTER_IP \
26+
mosquitto_pub -h $DOMAIN_NAME -p $MQTT_PORT \
2727
-u $MY_DEVICE@$MY_TENANT -P $MY_PWD \
2828
-t $MESSAGE_TYPE -q 1 -m "${CONTENT}"
2929

@@ -38,8 +38,9 @@ test -f $info || (echo "missing config.json" && exit 1)
3838
MY_DEVICE=$(jq -r .MY_DEVICE < $info)
3939
MY_TENANT=$(jq -r .MY_TENANT < $info)
4040
MY_PWD=$(jq -r .MY_PWD <$info)
41-
#HTTP_ADAPTER_IP=$(jq -r .HTTP_ADAPTER_IP <$info)
42-
MQTT_ADAPTER_IP=$(jq -r .MQTT_ADAPTER_IP <$info)
41+
DOMAIN_NAME=$(jq -r .DOMAIN_NAME <$info)
42+
MQTT_PORT=$(jq -r .MQTT_PORT <$info)
43+
MQTT_SECURE_PORT=$(jq -r .MQTT_SECURE_PORT <$info)
4344

4445
if [[ "$#" = 2 ]]; then
4546
# Determine content type per message type given as argument

tests/honoscript/setup.sh

+13-22
Original file line numberDiff line numberDiff line change
@@ -27,34 +27,25 @@ which curl &> /dev/null || die "Can't curl"
2727
which pwgen &> /dev/null || die "Needs pwgen"
2828
which mosquitto_pub &> /dev/null || die "Needs mosquitto-clients"
2929

30-
REGISTRY_IP=$(timeout $TIME kubectl get service hono-service-device-registry-ext -o json | jq -r .status.loadBalancer.ingress[0].ip)
31-
#HTTP_ADAPTER_IP=$(timeout $TIME kubectl get service hono-adapter-http-vertx -o json | jq -r .status.loadBalancer.ingress[0].ip)
32-
MQTT_ADAPTER_IP=$(timeout $TIME kubectl get service hono-adapter-mqtt-vertx -o json | jq -r .status.loadBalancer.ingress[0].ip)
33-
KAFKA_IP=$(timeout $TIME kubectl get service hono-kafka-0-external -o json | jq -r .status.loadBalancer.ingress[0].ip)
30+
31+
DNS_LABEL=$(timeout $TIME kubectl get service ambassador -o json | jq -r .metadata.annotations.\"service.beta.kubernetes.io/azure-dns-label-name\")
32+
MQTT_PORT=1883
33+
MQTT_SECURE_PORT=8883
34+
KAFKA_PORT=9092
3435
KAFKA_TRUSTSTORE_PATH=./truststore.jks
3536
kubectl get secrets hono-kafka-jks --template="{{index .data \"kafka.truststore.jks\" | base64decode}}" -n default > $KAFKA_TRUSTSTORE_PATH
3637

37-
AMQP_NETWORK_IP=$(timeout $TIME kubectl get service hono-dispatch-router-ext -o json | jq -r .status.loadBalancer.ingress[0].ip)
38-
: ${REGISTRY_IP:?'Could not find registry ip'}
39-
#: ${HTTP_ADAPTER_IP:?'Could not find HTTP adapter ip'}
40-
: ${MQTT_ADAPTER_IP:?'Could not find MQTT adapter ip'}
41-
: ${AMQP_NETWORK_IP:?'Could not find AMQP network ip'}
42-
: ${KAFKA_IP:?'Could not find KAFKA network ip'}
43-
44-
#echo $REGISTRY_IP
45-
#echo $HTTP_ADAPTER_IP
46-
#echo $MQTT_ADAPTER_IP
47-
#echo $AMQP_NETWORK_IP
38+
DOMAIN_NAME=${DNS_LABEL}".westeurope.cloudapp.azure.com"
4839

49-
MY_TENANT=$(curl -m $TIME -X POST -H "content-type: application/json" http://$REGISTRY_IP:28080/v1/tenants --data-binary '{
40+
MY_TENANT=$(curl -m $TIME -X POST -H "content-type: application/json" https://${DOMAIN_NAME}/registry/v1/tenants --data-binary '{
5041
"ext": {
5142
"messaging-type": "kafka"
5243
}
5344
}' 2> /dev/null | jq -r .id )
5445
: ${MY_TENANT:?'Your tenant has moved out. Could not set MY_TENANT'}
5546
test ${#MY_TENANT} = 36 || die "MY_TENANT is the wrong size. Does not have 36 characters"
5647

57-
MY_DEVICE=$(curl -m $TIME -X POST http://$REGISTRY_IP:28080/v1/devices/$MY_TENANT 2> /dev/null | jq -r .id)
48+
MY_DEVICE=$(curl -m $TIME -X POST https://${DOMAIN_NAME}/registry/v1/devices/$MY_TENANT 2> /dev/null | jq -r .id)
5849
: ${MY_DEVICE:?'Your device has left the building. Could not set MY_DEVICE'}
5950
test ${#MY_DEVICE} = 36 || die "MY_DEVICE doesn't fit. Does not have 36 characters"
6051

@@ -80,16 +71,16 @@ BODY
8071
curl -m $TIME -f -X PUT \
8172
-H 'content-type: application/json' \
8273
--data-binary "$body" \
83-
http://$REGISTRY_IP:28080/v1/credentials/$MY_TENANT/$MY_DEVICE || die "could not set password so curling failed"
74+
https://${DOMAIN_NAME}/registry/v1/credentials/$MY_TENANT/$MY_DEVICE || die "could not set password so curling failed"
8475

8576

8677
#ADD "HTTP_ADAPTER_IP": "${HTTP_ADAPTER_IP}" when needed for HTTP messaging
8778
cat > config.json <<JSON
8879
{
89-
"REGISTRY_IP": "${REGISTRY_IP}",
90-
"MQTT_ADAPTER_IP": "${MQTT_ADAPTER_IP}",
91-
"AMQP_NETWORK_IP": "${AMQP_NETWORK_IP}",
92-
"KAFKA_IP": "${KAFKA_IP}",
80+
"DOMAIN_NAME": "${DOMAIN_NAME}",
81+
"MQTT_PORT": "${MQTT_PORT}",
82+
"MQTT_SECURE_PORT": "${MQTT_SECURE_PORT}",
83+
"KAFKA_PORT": "${KAFKA_PORT}",
9384
"MY_TENANT": "${MY_TENANT}",
9485
"MY_DEVICE": "${MY_DEVICE}",
9586
"MY_PWD": "${MY_PWD}",

0 commit comments

Comments
 (0)