UNPKG

iotsuite-cli

Version:

Command Line Interface for deploying pre-configured IoT solutions through Azure

662 lines (641 loc) 16.1 kB
# Ingress - Start apiVersion: extensions/v1beta1 kind: Ingress metadata: name: remotemonitoring namespace: default annotations: kubernetes.io/ingress.class: "nginx" ingress.kubernetes.io/rewrite-target: / ingress.kubernetes.io/ssl-redirect: "true" spec: tls: - hosts: - "{DNS}" secretName: tls-certificate rules: - host: "{DNS}" http: paths: - path: / backend: serviceName: remote-monitoring-webui-svc servicePort: 9000 - path: /auth backend: serviceName: auth-svc servicePort: 9001 - path: /iothubmanager backend: serviceName: iothub-manager-svc servicePort: 9002 - path: /devicesimulation backend: serviceName: device-simulation-svc servicePort: 9003 - path: /telemetry backend: serviceName: telemetry-svc servicePort: 9004 - path: /config backend: serviceName: config-svc servicePort: 9005 # Ingress - End --- # Nginx-Ingress LoadBalancer - Start apiVersion: v1 kind: Service metadata: name: nginx-ingress spec: type: LoadBalancer loadBalancerIP: {loadBalancerIP} ports: - port: 80 name: http - port: 443 name: https selector: k8s-app: nginx-ingress-lb # Nginx-Ingress LoadBalancer - End --- # Default-Http-Backend - Start kind: Service apiVersion: v1 metadata: name: default-http-backend spec: ports: - port: 80 targetPort: 8080 selector: app: default-http-backend --- apiVersion: v1 kind: ReplicationController metadata: name: default-http-backend spec: replicas: 1 selector: app: default-http-backend template: metadata: labels: app: default-http-backend spec: terminationGracePeriodSeconds: 60 containers: - name: default-http-backend # Any image is permissable as long as: # 1. It serves a 404 page at / # 2. It serves 200 on a /healthz endpoint image: gcr.io/google_containers/defaultbackend:1.0 livenessProbe: httpGet: path: /healthz port: 8080 scheme: HTTP initialDelaySeconds: 30 timeoutSeconds: 5 ports: - containerPort: 8080 resources: limits: cpu: 10m memory: 20Mi requests: cpu: 10m memory: 20Mi --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-ingress-controller spec: replicas: 2 revisionHistoryLimit: 3 template: metadata: labels: k8s-app: nginx-ingress-lb spec: terminationGracePeriodSeconds: 60 containers: - name: nginx-ingress-controller image: gcr.io/google_containers/nginx-ingress-controller:0.8.3 imagePullPolicy: Always readinessProbe: httpGet: path: /healthz port: 18080 scheme: HTTP livenessProbe: httpGet: path: /healthz port: 18080 scheme: HTTP initialDelaySeconds: 10 timeoutSeconds: 5 args: - /nginx-ingress-controller - --default-backend-service=$(POD_NAMESPACE)/default-http-backend - --default-ssl-certificate=$(POD_NAMESPACE)/tls-certificate # Use downward API env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace ports: - containerPort: 80 - containerPort: 443 volumeMounts: - name: nginx-template-volume mountPath: /etc/nginx/template readOnly: true volumes: - name: nginx-template-volume configMap: name: deployment-configmap items: - key: nginx.tmpl path: nginx.tmpl # Default-Http-Backend - Start --- # Device Simulation - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: device-simulation spec: replicas: 1 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: device-simulation spec: containers: - name: device-simulation-pod image: azureiotpcs/device-simulation-dotnet:latest ports: - containerPort: 9003 env: - name: PCS_IOTHUB_CONNSTRING valueFrom: configMapKeyRef: name: deployment-configmap key: iothub.connstring - name: PCS_STORAGEADAPTER_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: storageadapter.webservice.url --- apiVersion: v1 kind: Service metadata: name: device-simulation-svc labels: app: device-simulation spec: type: NodePort ports: - port: 9003 selector: app: device-simulation # Device Simulation - End --- # IotHub Manager - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: iothub-manager spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: iothub-manager spec: containers: - name: iothub-manager-pod image: azureiotpcs/iothub-manager-{runtime}:latest ports: - containerPort: 9002 env: - name: PCS_IOTHUBMANAGER_WEBSERVICE_PORT value: "9002" - name: PCS_IOTHUB_CONNSTRING valueFrom: configMapKeyRef: name: deployment-configmap key: iothub.connstring - name: PCS_CONFIG_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: config.webservice.url --- apiVersion: v1 kind: Service metadata: name: iothub-manager-svc labels: app: iothub-manager spec: type: NodePort ports: - port: 9002 selector: app: iothub-manager # IotHub Manager - End --- # Telemetry - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: telemetry spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: telemetry spec: containers: - name: telemetry-pod image: azureiotpcs/telemetry-{runtime}:latest ports: - containerPort: 9004 env: - name: PCS_TELEMETRY_DOCUMENTDB_CONNSTRING valueFrom: configMapKeyRef: name: deployment-configmap key: docdb.connstring - name: PCS_STORAGEADAPTER_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: storageadapter.webservice.url --- apiVersion: v1 kind: Service metadata: name: telemetry-svc labels: app: telemetry spec: type: NodePort ports: - port: 9004 selector: app: telemetry # Telemetry - End --- # Storage Adapter - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: storage-adapter spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: storage-adapter spec: containers: - name: storage-adapter-pod image: azureiotpcs/pcs-storage-adapter-{runtime}:latest ports: - containerPort: 9022 env: - name: PCS_STORAGEADAPTER_WEBSERVICE_PORT value: "9022" - name: PCS_STORAGEADAPTER_DOCUMENTDB_CONNSTRING valueFrom: configMapKeyRef: name: deployment-configmap key: docdb.connstring --- apiVersion: v1 kind: Service metadata: name: storage-adapter-svc labels: app: storage-adapter spec: type: NodePort ports: - port: 9022 selector: app: storage-adapter # Storage Adapter - End --- # Telemetry Agent - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: telemetry-agent spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: telemetry-agent spec: containers: - name: telemetry-agent-pod image: azureiotpcs/telemetry-agent-{runtime}:latest ports: - containerPort: 9023 env: - name: PCS_TELEMETRYAGENT_DOCUMENTDB_CONNSTRING valueFrom: configMapKeyRef: name: deployment-configmap key: docdb.connstring - name: PCS_TELEMETRY_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: telemetry.webservice.url - name: PCS_CONFIG_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: config.webservice.url - name: PCS_IOTHUBMANAGER_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: iothubmanager.webservice.url - name: PCS_IOTHUBREACT_AZUREBLOB_ACCOUNT valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.azureblob.account - name: PCS_IOTHUBREACT_AZUREBLOB_KEY valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.azureblob.key - name: PCS_IOTHUBREACT_AZUREBLOB_ENDPOINT_SUFFIX valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.azureblob.endpointsuffix - name: PCS_IOTHUBREACT_HUB_NAME valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.hub.name - name: PCS_IOTHUBREACT_HUB_ENDPOINT valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.hub.endpoint - name: PCS_IOTHUBREACT_HUB_PARTITIONS valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.hub.partitions - name: PCS_IOTHUBREACT_ACCESS_CONNSTRING valueFrom: configMapKeyRef: name: deployment-configmap key: iothubreact.access.connstring --- apiVersion: v1 kind: Service metadata: name: telemetry-agent-svc labels: app: telemetry-agent spec: type: NodePort ports: - port: 9023 selector: app: telemetry-agent # Telemetry Agent - End --- # PCS Config - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: config spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: config spec: containers: - name: config-pod image: azureiotpcs/pcs-config-{runtime}:latest ports: - containerPort: 9005 env: - name: PCS_CONFIG_WEBSERVICE_PORT value: "9005" - name: PCS_STORAGEADAPTER_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: storageadapter.webservice.url - name: PCS_DEVICESIMULATION_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: devicesimulation.webservice.url - name: PCS_TELEMETRY_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: telemetry.webservice.url - name: PCS_IOTHUBMANAGER_WEBSERVICE_URL valueFrom: configMapKeyRef: name: deployment-configmap key: iothubmanager.webservice.url - name: PCS_BINGMAP_KEY valueFrom: configMapKeyRef: name: deployment-configmap key: bing.map.key --- apiVersion: v1 kind: Service metadata: name: config-svc labels: app: config spec: type: NodePort ports: - port: 9005 selector: app: config # PCS Config - End --- # Auth - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: auth spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: auth spec: containers: - name: auth-pod image: azureiotpcs/pcs-auth-dotnet:latest ports: - containerPort: 9001 env: - name: PCS_AUTH_WEBSERVICE_PORT value: "9001" - name: PCS_AUTH_AAD_GLOBAL_LOGINURI valueFrom: configMapKeyRef: name: deployment-configmap key: auth.aad.global.loginuri - name: PCS_AUTH_AAD_GLOBAL_TENANTID valueFrom: configMapKeyRef: name: deployment-configmap key: auth.aad.global.tenantid - name: PCS_AUTH_AAD_GLOBAL_CLIENTID valueFrom: configMapKeyRef: name: deployment-configmap key: auth.aad.global.clientid - name: PCS_AUTH_ISSUER valueFrom: configMapKeyRef: name: deployment-configmap key: auth.aad.global.issuer - name: PCS_AUTH_AUDIENCE valueFrom: configMapKeyRef: name: deployment-configmap key: auth.aad.global.clientid --- apiVersion: v1 kind: Service metadata: name: auth-svc labels: app: auth spec: type: NodePort ports: - port: 9001 selector: app: auth # Auth - End --- # Remote Monitoring WebUI - Start apiVersion: extensions/v1beta1 kind: Deployment metadata: name: remote-monitoring-webui spec: replicas: 3 minReadySeconds: 10 strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 maxSurge: 1 template: metadata: labels: app: remote-monitoring-webui spec: containers: - name: remote-monitoring-webui-pod image: azureiotpcs/pcs-remote-monitoring-webui:latest ports: - containerPort: 80 volumeMounts: - name: webui-config-volume mountPath: /app/build/webui-config.js subPath: webui-config.js readOnly: true volumes: - name: webui-config-volume configMap: name: deployment-configmap items: - key: webui-config.js path: webui-config.js --- apiVersion: v1 kind: Service metadata: name: remote-monitoring-webui-svc labels: app: remote-monitoring-webui spec: type: NodePort ports: - port: 9000 targetPort: 80 selector: app: remote-monitoring-webui # Remote Monitoring WebUI - End