blob: dd14caf8d5d83b27fa97598c7e99dee8d611c34b [file] [log] [blame]
Giorgi Lekveishvili4ec4c022024-08-17 15:09:24 +04001apiVersion: rbac.authorization.k8s.io/v1
2kind: ClusterRole
3metadata:
4 name: {{ .Values.clusterRoleName }}
5rules: # TODO(gio): restrict to ns create and dnszone get
6- apiGroups:
7 - "*"
8 resources:
9 - "*"
10 verbs:
11 - "*"
12# - apiGroups:
13# - ""
14# resources:
15# - namespaces
16# verbs:
17# - create
18---
19apiVersion: rbac.authorization.k8s.io/v1
20kind: ClusterRoleBinding
21metadata:
22 name: {{ .Values.clusterRoleName }}
23roleRef:
24 apiGroup: rbac.authorization.k8s.io
25 kind: ClusterRole
26 name: {{ .Values.clusterRoleName }}
27subjects:
28- kind: ServiceAccount
29 name: default
30 namespace: {{ .Release.Namespace }}
31---
32apiVersion: v1
33kind: Secret
34metadata:
35 name: ssh-key
36type: Opaque
37data:
38 private: {{ .Values.sshPrivateKey }}
39---
40apiVersion: v1
41kind: Service
42metadata:
43 name: env-manager
44 namespace: {{ .Release.Namespace }}
45 annotations:
46 metallb.universe.tf/address-pool: local
47spec:
48 type: LoadBalancer
49 selector:
50 app: env-manager
51 ports:
52 - name: http
53 port: 80
54 targetPort: http
55 protocol: TCP
56---
57apiVersion: apps/v1
58kind: Deployment
59metadata:
60 name: env-manager
61 namespace: {{ .Release.Namespace }}
62spec:
63 selector:
64 matchLabels:
65 app: env-manager
66 replicas: 1
67 template:
68 metadata:
69 labels:
70 app: env-manager
71 spec:
72 volumes:
73 - name: ssh-key
74 secret:
75 secretName: ssh-key
76 containers:
77 - name: env-manager
78 image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
79 imagePullPolicy: {{ .Values.image.pullPolicy }}
80 ports:
81 - name: http
82 containerPort: 8080
83 protocol: TCP
84 command:
85 - pcloud-installer
86 - envmanager
87 - --repo-addr={{ .Values.repoIP }}:{{ .Values.repoPort }}
88 - --repo-name={{ .Values.repoName }}
89 - --ssh-key=/pcloud/ssh-key/private
90 - --port=8080
91 volumeMounts:
92 - name: ssh-key
93 readOnly: true
94 mountPath: /pcloud/ssh-key