installer: fully automate initial bootstrap and env creation
diff --git a/core/installer/manifest.yaml b/core/installer/manifest.yaml
new file mode 100644
index 0000000..61f8d80
--- /dev/null
+++ b/core/installer/manifest.yaml
@@ -0,0 +1,75 @@
+# TODO(giolekva): finish
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: pcloud
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: pcloud-bootstrap
+ namespace: pcloud
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: pcloud-bootstrap
+ namespace: pcloud
+rules:
+- apiGroups:
+ - *
+ resources:
+ - *
+ verbs:
+ - *
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: pcloud:pcloud-bootstrap
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: pcloud:pcloud-bootstrap
+subjects:
+- kind: ServiceAccount
+ name: pcloud-bootstrap
+ namespace: pcloud
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: admin-pub-key
+ namespace: pcloud
+data: # TODO(giolekva): can it work without ssh-ed25519 prefix
+ key.pub: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOa7FUrmXzdY3no8qNGUk7OPaRcIUi8G7MVbLlff9eB/
+---
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: pcloud-bootstrap
+ namespace: pcloud
+spec:
+ template:
+ spec:
+ serviceAccountName: pcloud-bootstrap
+ volumes:
+ - name: admin-pub-key
+ configMap:
+ name: admin-pub-key
+ containers:
+ - name: pcloud-bootstrap
+ image: giolekva/pcloud-installer:latest
+ imagePullPolicy: Always
+ volumeMounts:
+ - name: admin-pub-key
+ mountPath: /admin-pub-key
+ command:
+ - pcloud-installer
+ - bootstrap
+ - --pcloud-env-name=pcloud
+ - --admin-pub-key=/admin-pub-key/key.pub
+ - --soft-serve-ip=192.168.0.211
+ - --charts-dir=/charts
+ - --storage-dir=/pcloud-storage/longhorn
+ restartPolicy: Never