Merge "Adding configmaps for Alarm Manager."
[ric-plt/ric-dep.git] / depRicKubernetesOperator / internal / controller / getDeployment.go
1 package controller\r
2 \r
3 import (\r
4         appsv1 "k8s.io/api/apps/v1"\r
5         corev1 "k8s.io/api/core/v1"\r
6         metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"\r
7         "k8s.io/apimachinery/pkg/util/intstr"\r
8 )\r
9 \r
10 func int32Ptr(val int) *int32 {\r
11         var a int32\r
12         a = int32(val)\r
13         return &a\r
14 }\r
15 \r
16 func GetDeployment() []*appsv1.Deployment {\r
17 \r
18         deployment1 := &appsv1.Deployment{\r
19                 ObjectMeta: metav1.ObjectMeta{\r
20                         Labels: map[string]string{\r
21                                 "heritage": "Helm",\r
22                                 "release":  "release-name",\r
23                                 "app":      "ricplt-a1mediator",\r
24                                 "chart":    "a1mediator-3.0.0",\r
25                         },\r
26                         Name:      "deployment-ricplt-a1mediator",\r
27                         Namespace: "ricplt",\r
28                 },\r
29                 Spec: appsv1.DeploymentSpec{\r
30                         Paused:   false,\r
31                         Replicas: int32Ptr(1),\r
32                         Selector: &metav1.LabelSelector{\r
33                                 MatchLabels: map[string]string{\r
34                                         "app":     "ricplt-a1mediator",\r
35                                         "release": "release-name",\r
36                                 },\r
37                         },\r
38                         Template: corev1.PodTemplateSpec{\r
39                                 ObjectMeta: metav1.ObjectMeta{\r
40                                         Labels: map[string]string{\r
41                                                 "release": "release-name",\r
42                                                 "app":     "ricplt-a1mediator",\r
43                                         },\r
44                                 },\r
45                                 Spec: corev1.PodSpec{\r
46                                         HostPID:  false,\r
47                                         Hostname: "a1mediator",\r
48                                         ImagePullSecrets: []corev1.LocalObjectReference{\r
49 \r
50                                                 corev1.LocalObjectReference{\r
51                                                         Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc",\r
52                                                 },\r
53                                         },\r
54                                         Volumes: []corev1.Volume{\r
55 \r
56                                                 corev1.Volume{\r
57                                                         Name: "a1conf",\r
58                                                         VolumeSource: corev1.VolumeSource{\r
59                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
60                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
61                                                                                 Name: "configmap-ricplt-a1mediator-a1conf",\r
62                                                                         },\r
63                                                                 },\r
64                                                         },\r
65                                                 },\r
66                                         },\r
67                                         Containers: []corev1.Container{\r
68 \r
69                                                 corev1.Container{\r
70                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
71                                                         LivenessProbe: &corev1.Probe{\r
72                                                                 ProbeHandler: corev1.ProbeHandler{\r
73                                                                         HTTPGet: &corev1.HTTPGetAction{\r
74                                                                                 Path: "/a1-p/healthcheck",\r
75                                                                                 Port: intstr.IntOrString{\r
76                                                                                         StrVal: "http",\r
77                                                                                         Type:   intstr.Type(1),\r
78                                                                                 },\r
79                                                                         },\r
80                                                                 },\r
81                                                         },\r
82                                                         Name: "container-ricplt-a1mediator",\r
83                                                         Ports: []corev1.ContainerPort{\r
84 \r
85                                                                 corev1.ContainerPort{\r
86                                                                         ContainerPort: 10000,\r
87                                                                         Name:          "http",\r
88                                                                         Protocol:      corev1.Protocol("TCP"),\r
89                                                                 },\r
90                                                                 corev1.ContainerPort{\r
91                                                                         ContainerPort: 4561,\r
92                                                                         Name:          "rmrroute",\r
93                                                                         Protocol:      corev1.Protocol("TCP"),\r
94                                                                 },\r
95                                                                 corev1.ContainerPort{\r
96                                                                         ContainerPort: 4562,\r
97                                                                         Name:          "rmrdata",\r
98                                                                         Protocol:      corev1.Protocol("TCP"),\r
99                                                                 },\r
100                                                         },\r
101                                                         Stdin:     false,\r
102                                                         StdinOnce: false,\r
103                                                         TTY:       false,\r
104                                                         EnvFrom: []corev1.EnvFromSource{\r
105 \r
106                                                                 corev1.EnvFromSource{\r
107                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
108                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
109                                                                                         Name: "configmap-ricplt-a1mediator-env",\r
110                                                                                 },\r
111                                                                         },\r
112                                                                 },\r
113                                                                 corev1.EnvFromSource{\r
114                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
115                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
116                                                                                         Name: "configmap-ricplt-dbaas-appconfig",\r
117                                                                                 },\r
118                                                                         },\r
119                                                                 },\r
120                                                         },\r
121                                                         Image: "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-a1:2.5.0",\r
122                                                         ReadinessProbe: &corev1.Probe{\r
123                                                                 ProbeHandler: corev1.ProbeHandler{\r
124                                                                         HTTPGet: &corev1.HTTPGetAction{\r
125                                                                                 Path: "/a1-p/healthcheck",\r
126                                                                                 Port: intstr.IntOrString{\r
127                                                                                         StrVal: "http",\r
128                                                                                         Type:   intstr.Type(1),\r
129                                                                                 },\r
130                                                                         },\r
131                                                                 },\r
132                                                         },\r
133                                                         VolumeMounts: []corev1.VolumeMount{\r
134 \r
135                                                                 corev1.VolumeMount{\r
136                                                                         MountPath: "/opt/route",\r
137                                                                         Name:      "a1conf",\r
138                                                                         ReadOnly:  false,\r
139                                                                 },\r
140                                                         },\r
141                                                 },\r
142                                         },\r
143                                         HostIPC:     false,\r
144                                         HostNetwork: false,\r
145                                 },\r
146                         },\r
147                 },\r
148                 TypeMeta: metav1.TypeMeta{\r
149                         APIVersion: "apps/v1",\r
150                         Kind:       "Deployment",\r
151                 },\r
152         }\r
153 \r
154         deployment2 := &appsv1.Deployment{\r
155                 Spec: appsv1.DeploymentSpec{\r
156                         Paused:   false,\r
157                         Replicas: int32Ptr(1),\r
158                         Selector: &metav1.LabelSelector{\r
159                                 MatchLabels: map[string]string{\r
160                                         "release": "release-name",\r
161                                         "app":     "ricplt-alarmmanager",\r
162                                 },\r
163                         },\r
164                         Template: corev1.PodTemplateSpec{\r
165                                 ObjectMeta: metav1.ObjectMeta{\r
166                                         Labels: map[string]string{\r
167                                                 "app":     "ricplt-alarmmanager",\r
168                                                 "release": "release-name",\r
169                                         },\r
170                                 },\r
171                                 Spec: corev1.PodSpec{\r
172                                         HostIPC:     false,\r
173                                         HostNetwork: false,\r
174                                         HostPID:     false,\r
175                                         Hostname:    "alarmmanager",\r
176                                         ImagePullSecrets: []corev1.LocalObjectReference{\r
177 \r
178                                                 corev1.LocalObjectReference{\r
179                                                         Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc",\r
180                                                 },\r
181                                         },\r
182                                         ServiceAccountName: "svcacct-ricplt-alarmmanager",\r
183                                         Volumes: []corev1.Volume{\r
184 \r
185                                                 corev1.Volume{\r
186                                                         Name: "config-volume",\r
187                                                         VolumeSource: corev1.VolumeSource{\r
188                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
189                                                                         Items: []corev1.KeyToPath{\r
190 \r
191                                                                                 corev1.KeyToPath{\r
192                                                                                         Mode: int32Ptr(420),\r
193                                                                                         Path: "config-file.json",\r
194                                                                                         Key:  "alarmmanagercfg",\r
195                                                                                 },\r
196                                                                         },\r
197                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
198                                                                                 Name: "configmap-ricplt-alarmmanager-alarmmanagercfg",\r
199                                                                         },\r
200                                                                 },\r
201                                                         },\r
202                                                 },\r
203                                                 corev1.Volume{\r
204                                                         Name: "am-persistent-storage",\r
205                                                         VolumeSource: corev1.VolumeSource{\r
206                                                                 PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{\r
207                                                                         ClaimName: "pvc-ricplt-alarmmanager",\r
208                                                                         ReadOnly:  false,\r
209                                                                 },\r
210                                                         },\r
211                                                 },\r
212                                         },\r
213                                         Containers: []corev1.Container{\r
214 \r
215                                                 corev1.Container{\r
216                                                         Ports: []corev1.ContainerPort{\r
217 \r
218                                                                 corev1.ContainerPort{\r
219                                                                         ContainerPort: 4561,\r
220                                                                         Name:          "rmrroute",\r
221                                                                         Protocol:      corev1.Protocol("TCP"),\r
222                                                                 },\r
223                                                                 corev1.ContainerPort{\r
224                                                                         ContainerPort: 4560,\r
225                                                                         Name:          "rmrdata",\r
226                                                                         Protocol:      corev1.Protocol("TCP"),\r
227                                                                 },\r
228                                                                 corev1.ContainerPort{\r
229                                                                         ContainerPort: 8080,\r
230                                                                         Name:          "http",\r
231                                                                         Protocol:      corev1.Protocol("TCP"),\r
232                                                                 },\r
233                                                         },\r
234                                                         StdinOnce: false,\r
235                                                         TTY:       false,\r
236                                                         VolumeMounts: []corev1.VolumeMount{\r
237 \r
238                                                                 corev1.VolumeMount{\r
239                                                                         MountPath: "/cfg",\r
240                                                                         Name:      "config-volume",\r
241                                                                         ReadOnly:  false,\r
242                                                                 },\r
243                                                                 corev1.VolumeMount{\r
244                                                                         Name:      "am-persistent-storage",\r
245                                                                         ReadOnly:  false,\r
246                                                                         MountPath: "/mnt/pv-ricplt-alarmmanager",\r
247                                                                 },\r
248                                                         },\r
249                                                         Image:           "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-alarmmanager:0.5.9",\r
250                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
251                                                         Name:            "container-ricplt-alarmmanager",\r
252                                                         Env: []corev1.EnvVar{\r
253 \r
254                                                                 corev1.EnvVar{\r
255                                                                         Name:  "PLT_NAMESPACE",\r
256                                                                         Value: "ricplt",\r
257                                                                 },\r
258                                                         },\r
259                                                         EnvFrom: []corev1.EnvFromSource{\r
260 \r
261                                                                 corev1.EnvFromSource{\r
262                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
263                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
264                                                                                         Name: "configmap-ricplt-dbaas-appconfig",\r
265                                                                                 },\r
266                                                                         },\r
267                                                                 },\r
268                                                                 corev1.EnvFromSource{\r
269                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
270                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
271                                                                                         Name: "configmap-ricplt-alarmmanager-env",\r
272                                                                                 },\r
273                                                                         },\r
274                                                                 },\r
275                                                         },\r
276                                                         Stdin: false,\r
277                                                 },\r
278                                         },\r
279                                 },\r
280                         },\r
281                 },\r
282                 TypeMeta: metav1.TypeMeta{\r
283                         APIVersion: "apps/v1",\r
284                         Kind:       "Deployment",\r
285                 },\r
286                 ObjectMeta: metav1.ObjectMeta{\r
287                         Namespace: "ricplt",\r
288                         Labels: map[string]string{\r
289                                 "chart":    "alarmmanager-5.0.0",\r
290                                 "heritage": "Helm",\r
291                                 "release":  "release-name",\r
292                                 "app":      "ricplt-alarmmanager",\r
293                         },\r
294                         Name: "deployment-ricplt-alarmmanager",\r
295                 },\r
296         }\r
297 \r
298         return []*appsv1.Deployment{deployment1, deployment2}\r
299 }\r