DodoApp: Status page

Implements basic status page, listing all apps and their commit
statuses. Separates web and api endpoints. Unifies API addresses a bit.

Change-Id: I98f9f949a49b60e80e188f7b51ec0e967666e65b
diff --git a/charts/app-runner/templates/install.yaml b/charts/app-runner/templates/install.yaml
index 1c33df9..d05287d 100644
--- a/charts/app-runner/templates/install.yaml
+++ b/charts/app-runner/templates/install.yaml
@@ -97,7 +97,7 @@
         - --repo-addr={{ .Values.repoAddr }}
         - --ssh-key=/pcloud/ssh-key/private
         - --run-cfg=/pcloud/config/run
-        - --manager={{ .Values.manager }}
+        - --manager-addr={{ .Values.managerAddr }}
         volumeMounts:
         - name: ssh-key
           readOnly: true
diff --git a/charts/app-runner/values.yaml b/charts/app-runner/values.yaml
index f0625e4..1d21e06 100644
--- a/charts/app-runner/values.yaml
+++ b/charts/app-runner/values.yaml
@@ -8,5 +8,5 @@
 runCfg: ""
 appDir: /dodo-app
 appPort: 8080
-manager: ""
+managerAddr: ""
 volumes: []
diff --git a/charts/dodo-app/templates/install.yaml b/charts/dodo-app/templates/install.yaml
index b8c1359..50ff7ab 100644
--- a/charts/dodo-app/templates/install.yaml
+++ b/charts/dodo-app/templates/install.yaml
@@ -46,7 +46,21 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: dodo-app
+  name: api
+spec:
+  type: ClusterIP
+  selector:
+    app: dodo-app
+  ports:
+  - name: http
+    port: 80
+    targetPort: api
+    protocol: TCP
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: web
 spec:
   type: ClusterIP
   selector:
@@ -78,25 +92,40 @@
       - name: env-config
         secret:
           secretName: env-config
+      - name: db
+        persistentVolumeClaim:
+          claimName: {{ .Values.persistentVolumeClaimName }}
+      initContainers:
+      - name: volume-permissions
+        image: busybox:latest
+        command: ["sh", "-c", "chmod -Rv 777 /dodo-app/db"]
+        volumeMounts:
+        - name: db
+          mountPath: /dodo-app/db
       containers:
       - name: dodo-app
         image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         ports:
         - name: http
-          containerPort: 8080
+          containerPort: {{ .Values.port }}
+          protocol: TCP
+        - name: api
+          containerPort: {{ .Values.apiPort }}
           protocol: TCP
         command:
         - pcloud-installer
         - dodo-app
         - --repo-addr={{ .Values.repoAddr }}
         - --ssh-key=/pcloud/ssh-key/private
-        - --port=8080
+        - --port={{ .Values.port }}
+        - --api-port={{ .Values.apiPort }}
         - --self={{ .Values.self }}
         - --namespace={{ .Values.namespace }} # TODO(gio): maybe use .Release.Namespace ?
         - --env-config=/pcloud/env-config/config.json
         - --app-admin-key={{ .Values.appAdminKey }}
         - --git-repo-public-key={{ .Values.gitRepoPublicKey }}
+        - --db=/dodo-app/db/apps.db
         volumeMounts:
         - name: ssh-key
           readOnly: true
@@ -104,6 +133,8 @@
         - name: env-config
           readOnly: true
           mountPath: /pcloud/env-config
+        - name: db
+          mountPath: /dodo-app/db
 ---
 apiVersion: v1
 kind: Secret
diff --git a/charts/dodo-app/values.yaml b/charts/dodo-app/values.yaml
index 66588cf..50aae4d 100644
--- a/charts/dodo-app/values.yaml
+++ b/charts/dodo-app/values.yaml
@@ -2,6 +2,8 @@
   repository: giolekva/pcloud-installer
   tag: latest
   pullPolicy: Always
+port: 8080
+apiPort: 8081
 clusterRoleName: dodo-app-creator
 repoAddr: 192.168.0.11
 sshPrivateKey: key
@@ -10,3 +12,4 @@
 envConfig: ""
 appAdminKey: ""
 gitRepoPublicKey: ""
+persistentVolumeClaimName: ""