summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/helm-charts/clearwater/Chart.yaml11
-rw-r--r--src/helm-charts/clearwater/README.md0
-rw-r--r--src/helm-charts/clearwater/templates/NOTES.txt19
-rw-r--r--src/helm-charts/clearwater/templates/astaire-depl.yaml53
-rw-r--r--src/helm-charts/clearwater/templates/astaire-svc.yaml11
-rw-r--r--src/helm-charts/clearwater/templates/bono-depl.yaml65
-rw-r--r--src/helm-charts/clearwater/templates/bono-svc.yaml16
-rw-r--r--src/helm-charts/clearwater/templates/cassandra-depl.yaml37
-rw-r--r--src/helm-charts/clearwater/templates/cassandra-svc.yaml17
-rw-r--r--src/helm-charts/clearwater/templates/chronos-depl.yaml54
-rw-r--r--src/helm-charts/clearwater/templates/chronos-svc.yaml11
-rw-r--r--src/helm-charts/clearwater/templates/ellis-depl.yaml34
-rw-r--r--src/helm-charts/clearwater/templates/ellis-svc.yaml12
-rw-r--r--src/helm-charts/clearwater/templates/env-vars-cm.yaml6
-rw-r--r--src/helm-charts/clearwater/templates/etcd-depl.yaml58
-rw-r--r--src/helm-charts/clearwater/templates/etcd-svc.yaml17
-rw-r--r--src/helm-charts/clearwater/templates/homer-depl.yaml34
-rw-r--r--src/helm-charts/clearwater/templates/homestead-prov-depl.yaml38
-rw-r--r--src/helm-charts/clearwater/templates/homestead-prov-svc.yaml11
-rw-r--r--src/helm-charts/clearwater/templates/homestead-svc.yaml11
-rw-r--r--src/helm-charts/clearwater/templates/ralf-depl.yaml50
-rw-r--r--src/helm-charts/clearwater/templates/ralf-svc.yaml11
-rw-r--r--src/helm-charts/clearwater/templates/sprout-depl.yaml50
-rw-r--r--src/helm-charts/clearwater/templates/sprout-svc.yaml13
-rw-r--r--src/helm-charts/clearwater/values.yaml7
-rw-r--r--src/vagrant/kubeadm_clearwater/Vagrantfile2
-rwxr-xr-xsrc/vagrant/kubeadm_clearwater/clearwater_setup.sh (renamed from src/vagrant/kubeadm_clearwater/examples/create_and_apply.sh)38
-rw-r--r--src/vagrant/kubeadm_clearwater/custom-bono-svc/bono-svc.yaml25
-rwxr-xr-xsrc/vagrant/kubeadm_clearwater/deploy.sh5
-rw-r--r--src/vagrant/kubeadm_clearwater/host_setup.sh6
-rw-r--r--src/vagrant/kubeadm_clearwater/master_setup.sh9
-rwxr-xr-xsrc/vagrant/kubeadm_clearwater/tests/clearwater-live-test.sh46
-rw-r--r--src/vagrant/kubeadm_clearwater/worker_setup.sh2
33 files changed, 759 insertions, 20 deletions
diff --git a/src/helm-charts/clearwater/Chart.yaml b/src/helm-charts/clearwater/Chart.yaml
index e69de29..1482dd5 100644
--- a/src/helm-charts/clearwater/Chart.yaml
+++ b/src/helm-charts/clearwater/Chart.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+description: Helm chart for Clearwater
+name: clearwater-project
+version: 0.1.0
+source:
+ - https://github.com/Metaswitch/clearwater-docker/
+maintainers:
+ - name: Laura Sofia Enriquez
+ email: lsofia.enriquez@gmail.com
+ - name: Yujun Zhang
+ email: zhang.yujunz@zte.com.cn
diff --git a/src/helm-charts/clearwater/README.md b/src/helm-charts/clearwater/README.md
deleted file mode 100644
index e69de29..0000000
--- a/src/helm-charts/clearwater/README.md
+++ /dev/null
diff --git a/src/helm-charts/clearwater/templates/NOTES.txt b/src/helm-charts/clearwater/templates/NOTES.txt
index e69de29..058b997 100644
--- a/src/helm-charts/clearwater/templates/NOTES.txt
+++ b/src/helm-charts/clearwater/templates/NOTES.txt
@@ -0,0 +1,19 @@
+Thank you for installing {{ .Chart.Name }}.
+
+Your release is named {{ .Release.Name }}.
+
+To learn more about the release, try:
+
+ $ helm status {{ .Release.Name }}
+ $ helm get {{ .Release.Name }}
+
+The deployment exposes:
+
+ - the Ellis web UI on {{ .Value.config.ip }}30080 for self-provisioning.
+ - STUN/TURN on port 3478 for media relay.
+ - SIP on port 5060 for service.
+ - SIP/WebSocket on port 5062 for service.
+
+SIP devices can register with bono.:5060 and the Ellis provisioning interface can be accessed at port 30080.
+
+Make a call: http://clearwater.readthedocs.io/en/stable/Making_your_first_call.html
diff --git a/src/helm-charts/clearwater/templates/astaire-depl.yaml b/src/helm-charts/clearwater/templates/astaire-depl.yaml
new file mode 100644
index 0000000..14296b4
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/astaire-depl.yaml
@@ -0,0 +1,53 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: astaire
+spec:
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ service: astaire
+ spec:
+ terminationGracePeriodSeconds: 120
+ containers:
+ - image: "{{ .Values.image.path }}/astaire:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: astaire
+ ports:
+ - containerPort: 22
+ - containerPort: 11211
+ - containerPort: 11311
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ tcpSocket:
+ port: 11311
+ periodSeconds: 10
+ failureThreshold: 9
+ readinessProbe:
+ tcpSocket:
+ port: 11311
+ volumeMounts:
+ - name: astairelogs
+ mountPath: /var/log/astaire
+ lifecycle:
+ preStop:
+ exec:
+ command: ["/bin/bash", "-c", "/usr/bin/pre-stop"]
+ - image: busybox
+ name: tailer
+ command: [ "tail", "-F", "/var/log/astaire/astaire_current.txt" ]
+ volumeMounts:
+ - name: astairelogs
+ mountPath: /var/log/astaire
+ volumes:
+ - name: astairelogs
+ emptyDir: {}
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/astaire-svc.yaml b/src/helm-charts/clearwater/templates/astaire-svc.yaml
new file mode 100644
index 0000000..3c453b5
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/astaire-svc.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: astaire
+spec:
+ ports:
+ - name: "snmp-astaire"
+ port: 11311
+ selector:
+ service: astaire
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/bono-depl.yaml b/src/helm-charts/clearwater/templates/bono-depl.yaml
new file mode 100644
index 0000000..02dbe76
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/bono-depl.yaml
@@ -0,0 +1,65 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: bono
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ service: bono
+ template:
+ metadata:
+ labels:
+ service: bono
+ snmp: enabled
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/bono:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: bono
+ ports:
+ - containerPort: 22
+ - containerPort: 3478
+ - containerPort: 5060
+ - containerPort: 5062
+ - containerPort: 5060
+ protocol: "UDP"
+ - containerPort: 5062
+ protocol: "UDP"
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: PUBLIC_IP
+ value: {{ .Values.config.ip }}
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ exec:
+ command: ["nc", "-z", "-w", "5", "127.0.0.1", "5060"]
+ initialDelaySeconds: 30
+ readinessProbe:
+ tcpSocket:
+ port: 5060
+ livenessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/kubernetes/liveness.sh", "3478 5060 5062"]
+ initialDelaySeconds: 30
+ readinessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/kubernetes/liveness.sh", "3478 5060 5062"]
+ volumeMounts:
+ - name: bonologs
+ mountPath: /var/log/bono
+ - image: busybox
+ name: tailer
+ command: [ "tail", "-F", "/var/log/bono/bono_current.txt" ]
+ volumeMounts:
+ - name: bonologs
+ mountPath: /var/log/bono
+ volumes:
+ - name: bonologs
+ emptyDir: {}
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/bono-svc.yaml b/src/helm-charts/clearwater/templates/bono-svc.yaml
new file mode 100644
index 0000000..a63479d
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/bono-svc.yaml
@@ -0,0 +1,16 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: bono
+spec:
+ loadBalancerIP: {{ .Values.config.ip }}
+ type: LoadBalancer
+ ports:
+ - name: "3478"
+ port: 3478
+ - name: "5060"
+ port: 5060
+ - name: "5062"
+ port: 5062
+ selector:
+ service: bono
diff --git a/src/helm-charts/clearwater/templates/cassandra-depl.yaml b/src/helm-charts/clearwater/templates/cassandra-depl.yaml
new file mode 100644
index 0000000..03f2a2f
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/cassandra-depl.yaml
@@ -0,0 +1,37 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: cassandra
+spec:
+ replicas: 3
+ template:
+ metadata:
+ labels:
+ service: cassandra
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/cassandra:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: cassandra
+ ports:
+ - containerPort: 22
+ - containerPort: 7001
+ - containerPort: 9042
+ - containerPort: 9160
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/kubernetes/liveness.sh", "7000 9042 9160"]
+ # Cassandra can take a very, very long time to start up
+ initialDelaySeconds: 600
+ readinessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/kubernetes/liveness.sh", "7000 9042 9160"]
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/cassandra-svc.yaml b/src/helm-charts/clearwater/templates/cassandra-svc.yaml
new file mode 100644
index 0000000..dbaa3c0
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/cassandra-svc.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: cassandra
+spec:
+ ports:
+ - name: "7001"
+ port: 7001
+ - name: "7000"
+ port: 7000
+ - name: "9042"
+ port: 9042
+ - name: "9160"
+ port: 9160
+ selector:
+ service: cassandra
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/chronos-depl.yaml b/src/helm-charts/clearwater/templates/chronos-depl.yaml
new file mode 100644
index 0000000..8ed8735
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/chronos-depl.yaml
@@ -0,0 +1,54 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ labels:
+ service: chronos
+ name: chronos
+spec:
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ service: chronos
+ spec:
+ terminationGracePeriodSeconds: 120
+ containers:
+ - image: "{{ .Values.image.path }}/chronos:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: chronos
+ ports:
+ - containerPort: 22
+ - containerPort: 7253
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ tcpSocket:
+ port: 7253
+ periodSeconds: 10
+ failureThreshold: 9
+ readinessProbe:
+ tcpSocket:
+ port: 7253
+ volumeMounts:
+ - name: chronoslogs
+ mountPath: /var/log/chronos
+ lifecycle:
+ preStop:
+ exec:
+ command: ["/bin/bash", "-c", "/usr/bin/pre-stop"]
+ - image: busybox
+ name: tailer
+ command: [ "tail", "-F", "/var/log/chronos/chronos_current.txt" ]
+ volumeMounts:
+ - name: chronoslogs
+ mountPath: /var/log/chronos
+ volumes:
+ - name: chronoslogs
+ emptyDir: {}
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/chronos-svc.yaml b/src/helm-charts/clearwater/templates/chronos-svc.yaml
new file mode 100644
index 0000000..0c42126
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/chronos-svc.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: chronos
+spec:
+ ports:
+ - name: "7253"
+ port: 7253
+ selector:
+ service: chronos
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/ellis-depl.yaml b/src/helm-charts/clearwater/templates/ellis-depl.yaml
new file mode 100644
index 0000000..8186829
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/ellis-depl.yaml
@@ -0,0 +1,34 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: ellis
+spec:
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ service: ellis
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/ellis:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: ellis
+ ports:
+ - containerPort: 22
+ - containerPort: 80
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ tcpSocket:
+ port: 80
+ initialDelaySeconds: 30
+ readinessProbe:
+ tcpSocket:
+ port: 80
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/ellis-svc.yaml b/src/helm-charts/clearwater/templates/ellis-svc.yaml
new file mode 100644
index 0000000..68d2da0
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/ellis-svc.yaml
@@ -0,0 +1,12 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: ellis
+spec:
+ type: NodePort
+ ports:
+ - name: "http"
+ port: 80
+ nodePort: 30080
+ selector:
+ service: ellis
diff --git a/src/helm-charts/clearwater/templates/env-vars-cm.yaml b/src/helm-charts/clearwater/templates/env-vars-cm.yaml
new file mode 100644
index 0000000..3f25432
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/env-vars-cm.yaml
@@ -0,0 +1,6 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: {{ .Values.config.configmaps }}
+data:
+ ZONE: {{ .Values.config.zone }}
diff --git a/src/helm-charts/clearwater/templates/etcd-depl.yaml b/src/helm-charts/clearwater/templates/etcd-depl.yaml
new file mode 100644
index 0000000..3f1be7a
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/etcd-depl.yaml
@@ -0,0 +1,58 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: etcd
+spec:
+ replicas: 1
+ template:
+ metadata:
+ creationTimestamp: null
+ labels:
+ instance-type: etcd-pod
+ spec:
+ containers:
+ - args:
+ - --name
+ - $(MY_POD_NAME)
+ - --advertise-client-urls
+ - http://$(MY_POD_IP):2379,http://$(MY_POD_IP):4001
+ - --listen-client-urls
+ - http://0.0.0.0:2379,http://0.0.0.0:4001
+ - --initial-advertise-peer-urls
+ - http://$(MY_POD_IP):2380
+ - --listen-peer-urls
+ - http://0.0.0.0:2380
+ # By default use a single pod cluster
+ - --initial-cluster
+ - $(MY_POD_NAME)=http://$(MY_POD_IP):2380
+ # Alternatively multi-pod clusters can be supported Using central discvovery. Run e.g.
+ # curl https://discovery.etcd.io/new?size=3 | sed s/https/http/
+ # to get a discovery URL for a 3 pod cluster, substitute the returned value below, and
+ # set replicas: 3 above.
+ #- --discovery
+ #- <URL returned by command above>
+ - --initial-cluster-state
+ - new
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ - name: MY_POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ image: quay.io/coreos/etcd:v2.2.5
+ name: etcd
+ ports:
+ - containerPort: 2379
+ - containerPort: 2380
+ - containerPort: 4001
+ livenessProbe:
+ tcpSocket:
+ port: 4001
+ initialDelaySeconds: 300
+ readinessProbe:
+ tcpSocket:
+ port: 4001
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/etcd-svc.yaml b/src/helm-charts/clearwater/templates/etcd-svc.yaml
new file mode 100644
index 0000000..2df5b16
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/etcd-svc.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: etcd
+ labels:
+ instance-type: etcd-pod
+spec:
+ ports:
+ - name: "etcd-client"
+ port: 2379
+ - name: "etcd-server"
+ port: 2380
+ - name: "4001"
+ port: 4001
+ selector:
+ instance-type: etcd-pod
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/homer-depl.yaml b/src/helm-charts/clearwater/templates/homer-depl.yaml
new file mode 100644
index 0000000..c5f5310
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/homer-depl.yaml
@@ -0,0 +1,34 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: homer
+spec:
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ service: homer
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/homer:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: homer
+ ports:
+ - containerPort: 22
+ - containerPort: 7888
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ tcpSocket:
+ port: 7888
+ initialDelaySeconds: 30
+ readinessProbe:
+ tcpSocket:
+ port: 7888
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/homestead-prov-depl.yaml b/src/helm-charts/clearwater/templates/homestead-prov-depl.yaml
new file mode 100644
index 0000000..5532b12
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/homestead-prov-depl.yaml
@@ -0,0 +1,38 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: homestead-prov
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ service: homestead-prov
+ template:
+ metadata:
+ labels:
+ service: homestead-prov
+ snmp: enabled
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/homestead-prov:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: homestead-prov
+ ports:
+ - containerPort: 22
+ - containerPort: 8889
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/clearwater/bin/poll_homestead-prov.sh"]
+ initialDelaySeconds: 60
+ readinessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/clearwater/bin/poll_homestead-prov.sh"]
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/homestead-prov-svc.yaml b/src/helm-charts/clearwater/templates/homestead-prov-svc.yaml
new file mode 100644
index 0000000..8310302
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/homestead-prov-svc.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: homestead-prov
+spec:
+ ports:
+ - name: "8889"
+ port: 8889
+ selector:
+ service: homestead-prov
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/homestead-svc.yaml b/src/helm-charts/clearwater/templates/homestead-svc.yaml
new file mode 100644
index 0000000..4015e81
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/homestead-svc.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: homestead
+spec:
+ ports:
+ - name: "8888"
+ port: 8888
+ selector:
+ service: homestead
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/ralf-depl.yaml b/src/helm-charts/clearwater/templates/ralf-depl.yaml
new file mode 100644
index 0000000..9227771
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/ralf-depl.yaml
@@ -0,0 +1,50 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: ralf
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ service: ralf
+ template:
+ metadata:
+ labels:
+ service: ralf
+ snmp: enabled
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/ralf:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: ralf
+ ports:
+ - containerPort: 22
+ - containerPort: 10888
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ tcpSocket:
+ port: 10888
+ initialDelaySeconds: 30
+ readinessProbe:
+ tcpSocket:
+ port: 10888
+ volumeMounts:
+ - name: ralflogs
+ mountPath: /var/log/ralf
+ - image: busybox
+ name: tailer
+ command: [ "tail", "-F", "/var/log/ralf/ralf_current.txt" ]
+ volumeMounts:
+ - name: ralflogs
+ mountPath: /var/log/ralf
+ volumes:
+ - name: ralflogs
+ emptyDir: {}
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/ralf-svc.yaml b/src/helm-charts/clearwater/templates/ralf-svc.yaml
new file mode 100644
index 0000000..07ad51e
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/ralf-svc.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: ralf
+spec:
+ ports:
+ - name: "10888"
+ port: 10888
+ selector:
+ service: ralf
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/templates/sprout-depl.yaml b/src/helm-charts/clearwater/templates/sprout-depl.yaml
new file mode 100644
index 0000000..80f788e
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/sprout-depl.yaml
@@ -0,0 +1,50 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+ name: sprout
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ service: sprout
+ template:
+ metadata:
+ labels:
+ service: sprout
+ snmp: enabled
+ spec:
+ containers:
+ - image: "{{ .Values.image.path }}/sprout:{{ .Values.image.tag }}"
+ imagePullPolicy: Always
+ name: sprout
+ ports:
+ - containerPort: 22
+ envFrom:
+ - configMapRef:
+ name: {{ .Values.config.configmaps }}
+ env:
+ - name: MY_POD_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.podIP
+ livenessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/kubernetes/liveness.sh", "5052 5054"]
+ initialDelaySeconds: 30
+ periodSeconds: 3
+ readinessProbe:
+ exec:
+ command: ["/bin/bash", "/usr/share/kubernetes/liveness.sh", "5052 5054"]
+ volumeMounts:
+ - name: sproutlogs
+ mountPath: /var/log/sprout
+ - image: busybox
+ name: tailer
+ command: [ "tail", "-F", "/var/log/sprout/sprout_current.txt" ]
+ volumeMounts:
+ - name: sproutlogs
+ mountPath: /var/log/sprout
+ volumes:
+ - name: sproutlogs
+ emptyDir: {}
+ restartPolicy: Always
diff --git a/src/helm-charts/clearwater/templates/sprout-svc.yaml b/src/helm-charts/clearwater/templates/sprout-svc.yaml
new file mode 100644
index 0000000..cf23a33
--- /dev/null
+++ b/src/helm-charts/clearwater/templates/sprout-svc.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: sprout
+spec:
+ ports:
+ - name: "5052"
+ port: 5052
+ - name: "5054"
+ port: 5054
+ selector:
+ service: sprout
+ clusterIP: None
diff --git a/src/helm-charts/clearwater/values.yaml b/src/helm-charts/clearwater/values.yaml
index e69de29..ce789ee 100644
--- a/src/helm-charts/clearwater/values.yaml
+++ b/src/helm-charts/clearwater/values.yaml
@@ -0,0 +1,7 @@
+image:
+ path: enriquetaso
+ tag: latest
+config:
+ configmaps: env-vars
+ zone: default.svc.cluster.local
+ ip: None
diff --git a/src/vagrant/kubeadm_clearwater/Vagrantfile b/src/vagrant/kubeadm_clearwater/Vagrantfile
index 9320074..3ed02d5 100644
--- a/src/vagrant/kubeadm_clearwater/Vagrantfile
+++ b/src/vagrant/kubeadm_clearwater/Vagrantfile
@@ -5,7 +5,7 @@ Vagrant.configure("2") do |config|
config.vm.box = "ceph/ubuntu-xenial"
config.vm.provider :libvirt do |libvirt|
- libvirt.memory = 4096
+ libvirt.memory = 8192
libvirt.cpus = 4
end
diff --git a/src/vagrant/kubeadm_clearwater/examples/create_and_apply.sh b/src/vagrant/kubeadm_clearwater/clearwater_setup.sh
index fdbb2b1..e579773 100755
--- a/src/vagrant/kubeadm_clearwater/examples/create_and_apply.sh
+++ b/src/vagrant/kubeadm_clearwater/clearwater_setup.sh
@@ -17,28 +17,50 @@
set -ex
+static_ip=$(ifconfig eth0 | grep "inet addr" | cut -d ':' -f 2 | cut -d ' ' -f 1)
+echo "STATIC_IP is $static_ip."
+
git clone --recursive https://github.com/Metaswitch/clearwater-docker.git
# Set the configmaps
-kubectl create configmap env-vars --from-literal=ZONE=default.svc.cluster.local --from-literal=ADDITIONAL_SHARED_CONFIG=hss_hostname=hss.example.com\\nhss_realm=example.com
+kubectl create configmap env-vars --from-literal=ZONE=default.svc.cluster.local
-# Genereta the yamls
+# Generate the yamls
cd clearwater-docker/kubernetes/
-#./k8s-gencfg --image_path=<path to your repo> --image_tag=<tag for the images you want to use>
./k8s-gencfg --image_path=enriquetaso --image_tag=latest
+# Expose Ellis
+# The Ellis provisioning interface can then be accessed on static_ip:30080
+cat ellis-svc.yaml | sed "s/clusterIP: None/type: NodePort/" > ellis-svc.yaml.new
+cat ellis-svc.yaml.new | sed "s/port: 80/port: 80\n nodePort: 30080/" > ellis-svc.yaml
+rm ellis-svc.yaml.new
+
+# Bono configuration
+# Have a static external IP address available that the load balancer can use
+cp /vagrant/custom-bono-svc/bono-svc.yaml .
+sed -ie "6s/$/\n - $static_ip/" bono-svc.yaml
+sed -ie "7s/$/\n loadBalancerIP: $static_ip/" bono-svc.yaml
-# Apply yamls
cd
kubectl apply -f clearwater-docker/kubernetes
kubectl get nodes
kubectl get services
kubectl get pods
kubectl get rc
+sleep 60
+
+r="1"
+while [ $r != "0" ]
+do
+ kubectl get pods
+ r=$( kubectl get pods | grep Pending | wc -l)
+ sleep 60
+done
-r="0"
-while [ $r != "13" ]
+q="1"
+while [ $q != "0" ]
do
- r=$(kubectl get pods | grep Running | wc -l)
- sleep 60
+ kubectl get pods
+ q=$( kubectl get pods | grep ContainerCreating | wc -l)
+ sleep 60
done
diff --git a/src/vagrant/kubeadm_clearwater/custom-bono-svc/bono-svc.yaml b/src/vagrant/kubeadm_clearwater/custom-bono-svc/bono-svc.yaml
new file mode 100644
index 0000000..9280b0f
--- /dev/null
+++ b/src/vagrant/kubeadm_clearwater/custom-bono-svc/bono-svc.yaml
@@ -0,0 +1,25 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: bono
+spec:
+ externalIPs:
+ ports:
+ - name: "3478"
+ port: 3478
+ protocol: TCP
+ targetPort: 3478
+ - name: "5060"
+ port: 5060
+ protocol: TCP
+ targetPort: 5060
+ - name: "5062"
+ port: 5062
+ protocol: TCP
+ targetPort: 5062
+ selector:
+ service: bono
+ sessionAffinity: None
+ type: ClusterIP
+status:
+ loadBalancer: {}
diff --git a/src/vagrant/kubeadm_clearwater/deploy.sh b/src/vagrant/kubeadm_clearwater/deploy.sh
index 844a750..54644a3 100755
--- a/src/vagrant/kubeadm_clearwater/deploy.sh
+++ b/src/vagrant/kubeadm_clearwater/deploy.sh
@@ -6,4 +6,7 @@ DIR="$(dirname `readlink -f $0`)"
cd $DIR
../cleanup.sh
vagrant up
-vagrant ssh master -c "/vagrant/examples/create_and_apply.sh"
+vagrant ssh master -c "/vagrant/clearwater_setup.sh"
+
+# Run tests
+vagrant ssh master -c "/vagrant/tests/clearwater-live-test.sh"
diff --git a/src/vagrant/kubeadm_clearwater/host_setup.sh b/src/vagrant/kubeadm_clearwater/host_setup.sh
index b86a618..c1a23eb 100644
--- a/src/vagrant/kubeadm_clearwater/host_setup.sh
+++ b/src/vagrant/kubeadm_clearwater/host_setup.sh
@@ -21,9 +21,9 @@ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
-sudo apt-get install -y --allow-downgrades docker-engine=1.12.6-0~ubuntu-xenial kubelet=1.7.0-00 kubeadm=1.7.0-00 kubectl=1.7.0-00 kubernetes-cni=0.5.1-00
+sudo apt-get install -y --allow-downgrades docker-engine=1.12.6-0~ubuntu-xenial kubelet=1.9.1-00 kubeadm=1.9.1-00 kubectl=1.9.1-00 kubernetes-cni=0.6.0-00
-sudo rm -rf /var/lib/kubelet
-sudo systemctl stop kubelet
+sudo swapoff -a
sudo systemctl daemon-reload
+sudo systemctl stop kubelet
sudo systemctl start kubelet
diff --git a/src/vagrant/kubeadm_clearwater/master_setup.sh b/src/vagrant/kubeadm_clearwater/master_setup.sh
index 7fa2ad8..b181582 100644
--- a/src/vagrant/kubeadm_clearwater/master_setup.sh
+++ b/src/vagrant/kubeadm_clearwater/master_setup.sh
@@ -3,11 +3,8 @@
set -ex
sudo kubeadm init --apiserver-advertise-address=192.168.1.10 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.32.0.0/12 --token 8c5adc.1cec8dbf339093f0
-sudo cp /etc/kubernetes/admin.conf $HOME/
-sudo chown $(id -u):$(id -g) $HOME/admin.conf
-export KUBECONFIG=$HOME/admin.conf
-echo "export KUBECONFIG=$HOME/admin.conf" >> $HOME/.bash_profile
+mkdir ~/.kube
+sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
+sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f http://git.io/weave-kube-1.6
-#kubectl apply -f http://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
-#kubectl apply -f http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
diff --git a/src/vagrant/kubeadm_clearwater/tests/clearwater-live-test.sh b/src/vagrant/kubeadm_clearwater/tests/clearwater-live-test.sh
new file mode 100755
index 0000000..6e5238e
--- /dev/null
+++ b/src/vagrant/kubeadm_clearwater/tests/clearwater-live-test.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set -ex
+
+# http://clearwater.readthedocs.io/en/latest/Running_the_live_tests.html
+sudo apt-get install build-essential bundler git --yes
+sudo apt install gnupg2 --yes
+gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
+curl -L https://get.rvm.io | bash -s stable
+
+source ~/.rvm/scripts/rvm
+rvm autolibs enable
+rvm install 1.9.3
+rvm use 1.9.3
+
+
+# Setup ruby and gems
+git clone https://github.com/Metaswitch/clearwater-live-test.git
+cd clearwater-live-test/
+cd quaff/ && git clone https://github.com/Metaswitch/quaff.git
+cd ..
+bundle install
+
+# Get Ellis ip
+ellisip=$(kubectl get services ellis -o json | grep clusterIP | cut -f4 -d'"')
+
+# Get Ellis ip
+bonoip=$(kubectl get services bono -o json | grep clusterIP | cut -f4 -d'"')
+
+# Run the tests
+rake test[default.svc.cluster.local] SIGNUP_CODE=secret PROXY=$bonoip ELLIS=$ellisip
diff --git a/src/vagrant/kubeadm_clearwater/worker_setup.sh b/src/vagrant/kubeadm_clearwater/worker_setup.sh
index b68d800..74e4178 100644
--- a/src/vagrant/kubeadm_clearwater/worker_setup.sh
+++ b/src/vagrant/kubeadm_clearwater/worker_setup.sh
@@ -1,4 +1,4 @@
#!/bin/bash
set -ex
-sudo kubeadm join --token 8c5adc.1cec8dbf339093f0 192.168.1.10:6443 || true
+sudo kubeadm join --discovery-token-unsafe-skip-ca-verification --token 8c5adc.1cec8dbf339093f0 192.168.1.10:6443 || true