blob: 36457aa9a54a616ba18ba2a50c5e5efbb4cb5c46 [file] [log] [blame]
giolekvab22550e2020-05-12 22:09:03 +04001---
2apiVersion: v1
3kind: Namespace
4metadata:
5 name: pcloud-app-manager
6---
7apiVersion: v1
8kind: ServiceAccount
9metadata:
10 name: app-manager
11 namespace: pcloud-app-manager
12---
13apiVersion: rbac.authorization.k8s.io/v1
14kind: ClusterRole
15metadata:
16 name: deploy-apps
17rules:
18 - apiGroups: [""]
19 resources: ["namespaces", "services", "pods", "secrets"]
20 verbs: ["*"]
21 - apiGroups: ["apps"]
22 resources: ["deployments", "statefulsets"]
23 verbs: ["*"]
24 - apiGroups: ["traefik.containo.us"]
25 resources: ["ingressroutes"]
26 verbs: ["*"]
27---
28apiVersion: rbac.authorization.k8s.io/v1
29kind: ClusterRoleBinding
30metadata:
31 name: deploy-apps-to-sa
32subjects:
33 - kind: ServiceAccount
34 name: app-manager
35 namespace: pcloud-app-manager
36roleRef:
37 kind: ClusterRole
38 name: deploy-apps
39 apiGroup: rbac.authorization.k8s.io
40---
41kind: Service
42apiVersion: v1
43metadata:
44 name: app-manager
45 namespace: pcloud-app-manager
46spec:
47 type: ClusterIP
48 selector:
49 app: app-manager
50 ports:
51 - nodePort:
52 port: 80
53 targetPort: 1234
54---
55apiVersion: traefik.containo.us/v1alpha1
56kind: IngressRoute
57metadata:
58 name: ingress
59 namespace: pcloud-app-manager
60spec:
61 entryPoints:
62 - web
63 routes:
64 - kind: Rule
65 match: PathPrefix(`/app-manager`)
66 services:
67 - kind: Service
68 name: app-manager
69 namespace: pcloud-app-manager
70 passHostHeader: true
71 port: 80
72---
73apiVersion: apps/v1
giolekva65c43262020-05-13 21:58:39 +040074kind: StatefulSet
giolekvab22550e2020-05-12 22:09:03 +040075metadata:
76 name: app-manager
77 namespace: pcloud-app-manager
78spec:
79 selector:
80 matchLabels:
81 app: app-manager
giolekva65c43262020-05-13 21:58:39 +040082 serviceName: app-manager
giolekvab22550e2020-05-12 22:09:03 +040083 replicas: 1
84 template:
85 metadata:
86 labels:
87 app: app-manager
88 spec:
89 serviceAccountName: app-manager
90 containers:
91 - name: app-manager
92 image: giolekva/pcloud-app-manager:latest
93 imagePullPolicy: Always
giolekva65c43262020-05-13 21:58:39 +040094 volumeMounts:
95 - name: state
96 mountPath: /pcloud/app-manager
giolekvab22550e2020-05-12 22:09:03 +040097 ports:
98 - containerPort: 1234
giolekva65c43262020-05-13 21:58:39 +040099 command: ["app-manager", "--logtostderr", "--port=1234", "--api_addr=http://api.pcloud.svc:1111/add_schema", "--helm_bin=/usr/bin/helm", "--manager_store_file=/pcloud/app-manager/manager-state"]
100 volumeClaimTemplates:
101 - metadata:
102 name: state
103 spec:
104 accessModes: [ "ReadWriteOnce" ]
105 storageClassName: "local-path"
106 resources:
107 requests:
108 storage: 10Mi