d24a719579f28e065bcfe1c93a159e5166d7fa4f
[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         deployment3 := &appsv1.Deployment{\r
299                 ObjectMeta: metav1.ObjectMeta{\r
300                         Namespace: "ricplt",\r
301                         Labels: map[string]string{\r
302                                 "app":      "ricplt-appmgr",\r
303                                 "chart":    "appmgr-3.0.0",\r
304                                 "heritage": "Helm",\r
305                                 "release":  "release-name",\r
306                         },\r
307                         Name: "deployment-ricplt-appmgr",\r
308                 },\r
309                 Spec: appsv1.DeploymentSpec{\r
310                         Template: corev1.PodTemplateSpec{\r
311                                 ObjectMeta: metav1.ObjectMeta{\r
312                                         Labels: map[string]string{\r
313                                                 "app":     "ricplt-appmgr",\r
314                                                 "release": "release-name",\r
315                                         },\r
316                                 },\r
317                                 Spec: corev1.PodSpec{\r
318                                         Containers: []corev1.Container{\r
319 \r
320                                                 corev1.Container{\r
321                                                         Stdin: false,\r
322                                                         VolumeMounts: []corev1.VolumeMount{\r
323 \r
324                                                                 corev1.VolumeMount{\r
325                                                                         MountPath: "/opt/ric/config/appmgr.yaml",\r
326                                                                         Name:      "config-volume",\r
327                                                                         ReadOnly:  false,\r
328                                                                         SubPath:   "appmgr.yaml",\r
329                                                                 },\r
330                                                                 corev1.VolumeMount{\r
331                                                                         MountPath: "/opt/ric/secret",\r
332                                                                         Name:      "helm-secret-volume",\r
333                                                                         ReadOnly:  false,\r
334                                                                 },\r
335                                                                 corev1.VolumeMount{\r
336                                                                         ReadOnly:  false,\r
337                                                                         SubPath:   "helm_repo_username",\r
338                                                                         MountPath: "/opt/ric/secret/helm_repo_username",\r
339                                                                         Name:      "secret-volume",\r
340                                                                 },\r
341                                                                 corev1.VolumeMount{\r
342                                                                         SubPath:   "helm_repo_password",\r
343                                                                         MountPath: "/opt/ric/secret/helm_repo_password",\r
344                                                                         Name:      "secret-volume",\r
345                                                                         ReadOnly:  false,\r
346                                                                 },\r
347                                                         },\r
348                                                         EnvFrom: []corev1.EnvFromSource{\r
349 \r
350                                                                 corev1.EnvFromSource{\r
351                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
352                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
353                                                                                         Name: "configmap-ricplt-appmgr-env",\r
354                                                                                 },\r
355                                                                         },\r
356                                                                 },\r
357                                                                 corev1.EnvFromSource{\r
358                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
359                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
360                                                                                         Name: "configmap-ricplt-dbaas-appconfig",\r
361                                                                                 },\r
362                                                                         },\r
363                                                                 },\r
364                                                         },\r
365                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
366                                                         Name:            "container-ricplt-appmgr",\r
367                                                         TTY:             false,\r
368                                                         Image:           "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-appmgr:0.2.0",\r
369                                                         Ports: []corev1.ContainerPort{\r
370 \r
371                                                                 corev1.ContainerPort{\r
372                                                                         ContainerPort: 8080,\r
373                                                                         Name:          "http",\r
374                                                                         Protocol:      corev1.Protocol("TCP"),\r
375                                                                 },\r
376                                                                 corev1.ContainerPort{\r
377                                                                         Protocol:      corev1.Protocol("TCP"),\r
378                                                                         ContainerPort: 4561,\r
379                                                                         Name:          "rmrroute",\r
380                                                                 },\r
381                                                                 corev1.ContainerPort{\r
382                                                                         ContainerPort: 4560,\r
383                                                                         Name:          "rmrdata",\r
384                                                                         Protocol:      corev1.Protocol("TCP"),\r
385                                                                 },\r
386                                                         },\r
387                                                         StdinOnce: false,\r
388                                                 },\r
389                                         },\r
390                                         HostIPC:            false,\r
391                                         HostPID:            false,\r
392                                         Hostname:           "appmgr",\r
393                                         RestartPolicy:      corev1.RestartPolicy("Always"),\r
394                                         ServiceAccountName: "svcacct-ricplt-appmgr",\r
395                                         Volumes: []corev1.Volume{\r
396 \r
397                                                 corev1.Volume{\r
398                                                         Name: "config-volume",\r
399                                                         VolumeSource: corev1.VolumeSource{\r
400                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
401                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
402                                                                                 Name: "configmap-ricplt-appmgr-appconfig",\r
403                                                                         },\r
404                                                                 },\r
405                                                         },\r
406                                                 },\r
407                                                 corev1.Volume{\r
408                                                         Name: "secret-volume",\r
409                                                         VolumeSource: corev1.VolumeSource{\r
410                                                                 Secret: &corev1.SecretVolumeSource{\r
411                                                                         SecretName: "secret-ricplt-appmgr",\r
412                                                                 },\r
413                                                         },\r
414                                                 },\r
415                                                 corev1.Volume{\r
416                                                         Name: "helm-secret-volume",\r
417                                                 },\r
418                                                 corev1.Volume{\r
419                                                         Name: "appmgr-bin-volume",\r
420                                                         VolumeSource: corev1.VolumeSource{\r
421                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
422                                                                         DefaultMode: int32Ptr(493),\r
423                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
424                                                                                 Name: "configmap-ricplt-appmgr-bin",\r
425                                                                         },\r
426                                                                 },\r
427                                                         },\r
428                                                 },\r
429                                         },\r
430                                         HostNetwork: false,\r
431                                         ImagePullSecrets: []corev1.LocalObjectReference{\r
432 \r
433                                                 corev1.LocalObjectReference{\r
434                                                         Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc",\r
435                                                 },\r
436                                         },\r
437                                         InitContainers: []corev1.Container{\r
438 \r
439                                                 corev1.Container{\r
440                                                         Env: []corev1.EnvVar{\r
441 \r
442                                                                 corev1.EnvVar{\r
443                                                                         Name:  "SVCACCT_NAME",\r
444                                                                         Value: "svcacct-ricplt-appmgr",\r
445                                                                 },\r
446                                                                 corev1.EnvVar{\r
447                                                                         Name:  "CLUSTER_NAME",\r
448                                                                         Value: "kubernetes",\r
449                                                                 },\r
450                                                                 corev1.EnvVar{\r
451                                                                         Name:  "KUBECONFIG",\r
452                                                                         Value: "/tmp/kubeconfig",\r
453                                                                 },\r
454                                                                 corev1.EnvVar{\r
455                                                                         Name:  "K8S_API_HOST",\r
456                                                                         Value: "https://kubernetes.default.svc.cluster.local/",\r
457                                                                 },\r
458                                                                 corev1.EnvVar{\r
459                                                                         Name:  "SECRET_NAMESPACE",\r
460                                                                         Value: "ricinfra",\r
461                                                                 },\r
462                                                                 corev1.EnvVar{\r
463                                                                         Name:  "SECRET_NAME",\r
464                                                                         Value: "ricxapp-helm-secret",\r
465                                                                 },\r
466                                                         },\r
467                                                         Image:     "nexus3.o-ran-sc.org:10002/o-ran-sc/it-dep-init:0.0.1",\r
468                                                         Name:      "container-ricplt-appmgr-copy-tiller-secret",\r
469                                                         Stdin:     false,\r
470                                                         StdinOnce: false,\r
471                                                         TTY:       false,\r
472                                                         VolumeMounts: []corev1.VolumeMount{\r
473 \r
474                                                                 corev1.VolumeMount{\r
475                                                                         Name:      "helm-secret-volume",\r
476                                                                         ReadOnly:  false,\r
477                                                                         MountPath: "/opt/ric/secret",\r
478                                                                 },\r
479                                                                 corev1.VolumeMount{\r
480                                                                         MountPath: "/svcacct-to-kubeconfig.sh",\r
481                                                                         Name:      "appmgr-bin-volume",\r
482                                                                         ReadOnly:  false,\r
483                                                                         SubPath:   "svcacct-to-kubeconfig.sh",\r
484                                                                 },\r
485                                                                 corev1.VolumeMount{\r
486                                                                         ReadOnly:  false,\r
487                                                                         SubPath:   "appmgr-tiller-secret-copier.sh",\r
488                                                                         MountPath: "/appmgr-tiller-secret-copier.sh",\r
489                                                                         Name:      "appmgr-bin-volume",\r
490                                                                 },\r
491                                                         },\r
492                                                         Command: []string{\r
493 \r
494                                                                 "/appmgr-tiller-secret-copier.sh",\r
495                                                         },\r
496                                                         EnvFrom: []corev1.EnvFromSource{\r
497 \r
498                                                                 corev1.EnvFromSource{\r
499                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
500                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
501                                                                                         Name: "configmap-ricplt-appmgr-env",\r
502                                                                                 },\r
503                                                                         },\r
504                                                                 },\r
505                                                         },\r
506                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
507                                                 },\r
508                                         },\r
509                                 },\r
510                         },\r
511                         Paused:   false,\r
512                         Replicas: int32Ptr(1),\r
513                         Selector: &metav1.LabelSelector{\r
514                                 MatchLabels: map[string]string{\r
515                                         "release": "release-name",\r
516                                         "app":     "ricplt-appmgr",\r
517                                 },\r
518                         },\r
519                 },\r
520                 TypeMeta: metav1.TypeMeta{\r
521                         APIVersion: "apps/v1",\r
522                         Kind:       "Deployment",\r
523                 },\r
524         }\r
525 \r
526         deployment4 := &appsv1.Deployment{\r
527                 Spec: appsv1.DeploymentSpec{\r
528                         Paused:   false,\r
529                         Replicas: int32Ptr(1),\r
530                         Selector: &metav1.LabelSelector{\r
531                                 MatchLabels: map[string]string{\r
532                                         "app":     "ricplt-e2mgr",\r
533                                         "release": "release-name",\r
534                                 },\r
535                         },\r
536                         Template: corev1.PodTemplateSpec{\r
537                                 ObjectMeta: metav1.ObjectMeta{\r
538                                         Labels: map[string]string{\r
539                                                 "app":     "ricplt-e2mgr",\r
540                                                 "release": "release-name",\r
541                                         },\r
542                                 },\r
543                                 Spec: corev1.PodSpec{\r
544                                         HostNetwork: false,\r
545                                         HostPID:     false,\r
546                                         Hostname:    "e2mgr",\r
547                                         ImagePullSecrets: []corev1.LocalObjectReference{\r
548 \r
549                                                 corev1.LocalObjectReference{\r
550                                                         Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc",\r
551                                                 },\r
552                                         },\r
553                                         Volumes: []corev1.Volume{\r
554 \r
555                                                 corev1.Volume{\r
556                                                         Name: "local-router-file",\r
557                                                         VolumeSource: corev1.VolumeSource{\r
558                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
559                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
560                                                                                 Name: "configmap-ricplt-e2mgr-router-configmap",\r
561                                                                         },\r
562                                                                 },\r
563                                                         },\r
564                                                 },\r
565                                                 corev1.Volume{\r
566                                                         VolumeSource: corev1.VolumeSource{\r
567                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
568                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
569                                                                                 Name: "configmap-ricplt-e2mgr-configuration-configmap",\r
570                                                                         },\r
571                                                                 },\r
572                                                         },\r
573                                                         Name: "local-configuration-file",\r
574                                                 },\r
575                                                 corev1.Volume{\r
576                                                         Name: "e2mgr-loglevel-volume",\r
577                                                         VolumeSource: corev1.VolumeSource{\r
578                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
579                                                                         Items: []corev1.KeyToPath{\r
580 \r
581                                                                                 corev1.KeyToPath{\r
582                                                                                         Key:  "logcfg",\r
583                                                                                         Mode: int32Ptr(420),\r
584                                                                                         Path: "log-level.yaml",\r
585                                                                                 },\r
586                                                                         },\r
587                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
588                                                                                 Name: "configmap-ricplt-e2mgr-loglevel-configmap",\r
589                                                                         },\r
590                                                                 },\r
591                                                         },\r
592                                                 },\r
593                                         },\r
594                                         Containers: []corev1.Container{\r
595 \r
596                                                 corev1.Container{\r
597                                                         Ports: []corev1.ContainerPort{\r
598 \r
599                                                                 corev1.ContainerPort{\r
600                                                                         ContainerPort: 3800,\r
601                                                                         Name:          "http",\r
602                                                                 },\r
603                                                                 corev1.ContainerPort{\r
604                                                                         ContainerPort: 4561,\r
605                                                                         Name:          "rmrroute",\r
606                                                                 },\r
607                                                                 corev1.ContainerPort{\r
608                                                                         ContainerPort: 3801,\r
609                                                                         Name:          "rmrdata",\r
610                                                                 },\r
611                                                         },\r
612                                                         SecurityContext: &corev1.SecurityContext{\r
613                                                                 Privileged: boolPtr(false),\r
614                                                         },\r
615                                                         StdinOnce: false,\r
616                                                         LivenessProbe: &corev1.Probe{\r
617                                                                 InitialDelaySeconds: 3,\r
618                                                                 PeriodSeconds:       10,\r
619                                                                 ProbeHandler: corev1.ProbeHandler{\r
620                                                                         HTTPGet: &corev1.HTTPGetAction{\r
621                                                                                 Path: "v1/health",\r
622                                                                                 Port: intstr.IntOrString{\r
623                                                                                         IntVal: 3800,\r
624                                                                                 },\r
625                                                                         },\r
626                                                                 },\r
627                                                         },\r
628                                                         Name:            "container-ricplt-e2mgr",\r
629                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
630                                                         ReadinessProbe: &corev1.Probe{\r
631                                                                 InitialDelaySeconds: 3,\r
632                                                                 PeriodSeconds:       10,\r
633                                                                 ProbeHandler: corev1.ProbeHandler{\r
634                                                                         HTTPGet: &corev1.HTTPGetAction{\r
635                                                                                 Path: "v1/health",\r
636                                                                                 Port: intstr.IntOrString{\r
637                                                                                         IntVal: 3800,\r
638                                                                                 },\r
639                                                                         },\r
640                                                                 },\r
641                                                         },\r
642                                                         Stdin: true,\r
643                                                         TTY:   true,\r
644                                                         VolumeMounts: []corev1.VolumeMount{\r
645 \r
646                                                                 corev1.VolumeMount{\r
647                                                                         MountPath: "/opt/E2Manager/router.txt",\r
648                                                                         Name:      "local-router-file",\r
649                                                                         ReadOnly:  false,\r
650                                                                         SubPath:   "router.txt",\r
651                                                                 },\r
652                                                                 corev1.VolumeMount{\r
653                                                                         MountPath: "/etc/config",\r
654                                                                         Name:      "e2mgr-loglevel-volume",\r
655                                                                         ReadOnly:  false,\r
656                                                                 },\r
657                                                                 corev1.VolumeMount{\r
658                                                                         MountPath: "/opt/E2Manager/resources/configuration.yaml",\r
659                                                                         Name:      "local-configuration-file",\r
660                                                                         ReadOnly:  false,\r
661                                                                         SubPath:   "configuration.yaml",\r
662                                                                 },\r
663                                                         },\r
664                                                         EnvFrom: []corev1.EnvFromSource{\r
665 \r
666                                                                 corev1.EnvFromSource{\r
667                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
668                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
669                                                                                         Name: "configmap-ricplt-e2mgr-env",\r
670                                                                                 },\r
671                                                                         },\r
672                                                                 },\r
673                                                                 corev1.EnvFromSource{\r
674                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
675                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
676                                                                                         Name: "configmap-ricplt-dbaas-appconfig",\r
677                                                                                 },\r
678                                                                         },\r
679                                                                 },\r
680                                                         },\r
681                                                         Image: "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-e2mgr:3.0.1",\r
682                                                 },\r
683                                         },\r
684                                         HostIPC: false,\r
685                                 },\r
686                         },\r
687                 },\r
688                 TypeMeta: metav1.TypeMeta{\r
689                         APIVersion: "apps/v1",\r
690                         Kind:       "Deployment",\r
691                 },\r
692                 ObjectMeta: metav1.ObjectMeta{\r
693                         Labels: map[string]string{\r
694                                 "app":      "ricplt-e2mgr",\r
695                                 "chart":    "e2mgr-3.0.0",\r
696                                 "heritage": "Helm",\r
697                                 "release":  "release-name",\r
698                         },\r
699                         Name:      "deployment-ricplt-e2mgr",\r
700                         Namespace: "ricplt",\r
701                 },\r
702         }\r
703 \r
704         deployment5 := &appsv1.Deployment{\r
705                 ObjectMeta: metav1.ObjectMeta{\r
706                         Labels: map[string]string{\r
707                                 "release":  "release-name",\r
708                                 "app":      "ricplt-e2term-alpha",\r
709                                 "chart":    "e2term-3.0.0",\r
710                                 "heritage": "Helm",\r
711                         },\r
712                         Name:      "deployment-ricplt-e2term-alpha",\r
713                         Namespace: "ricplt",\r
714                 },\r
715                 Spec: appsv1.DeploymentSpec{\r
716                         Paused:   false,\r
717                         Replicas: int32Ptr(1),\r
718                         Selector: &metav1.LabelSelector{\r
719                                 MatchLabels: map[string]string{\r
720                                         "release": "release-name",\r
721                                         "app":     "ricplt-e2term-alpha",\r
722                                 },\r
723                         },\r
724                         Template: corev1.PodTemplateSpec{\r
725                                 ObjectMeta: metav1.ObjectMeta{\r
726                                         Labels: map[string]string{\r
727                                                 "app":     "ricplt-e2term-alpha",\r
728                                                 "release": "release-name",\r
729                                         },\r
730                                 },\r
731                                 Spec: corev1.PodSpec{\r
732                                         Containers: []corev1.Container{\r
733 \r
734                                                 corev1.Container{\r
735                                                         ReadinessProbe: &corev1.Probe{\r
736                                                                 InitialDelaySeconds: 120,\r
737                                                                 PeriodSeconds:       60,\r
738                                                                 ProbeHandler: corev1.ProbeHandler{\r
739                                                                         Exec: &corev1.ExecAction{\r
740                                                                                 Command: []string{\r
741 \r
742                                                                                         "/bin/sh",\r
743                                                                                         "-c",\r
744                                                                                         "ip=`hostname -i`;export RMR_SRC_ID=$ip;/opt/e2/rmr_probe -h $ip:38000",\r
745                                                                                 },\r
746                                                                         },\r
747                                                                 },\r
748                                                         },\r
749                                                         SecurityContext: &corev1.SecurityContext{\r
750                                                                 Privileged: boolPtr(false),\r
751                                                         },\r
752                                                         Stdin: true,\r
753                                                         Env: []corev1.EnvVar{\r
754 \r
755                                                                 corev1.EnvVar{\r
756                                                                         Name:  "SYSTEM_NAME",\r
757                                                                         Value: "SEP",\r
758                                                                 },\r
759                                                                 corev1.EnvVar{\r
760                                                                         Name:  "CONFIG_MAP_NAME",\r
761                                                                         Value: "/etc/config/log-level",\r
762                                                                 },\r
763                                                                 corev1.EnvVar{\r
764                                                                         Name: "HOST_NAME",\r
765                                                                         ValueFrom: &corev1.EnvVarSource{\r
766                                                                                 FieldRef: &corev1.ObjectFieldSelector{\r
767                                                                                         FieldPath: "spec.nodeName",\r
768                                                                                 },\r
769                                                                         },\r
770                                                                 },\r
771                                                                 corev1.EnvVar{\r
772                                                                         Name:  "SERVICE_NAME",\r
773                                                                         Value: "RIC_E2_TERM",\r
774                                                                 },\r
775                                                                 corev1.EnvVar{\r
776                                                                         Name:  "CONTAINER_NAME",\r
777                                                                         Value: "container-ricplt-e2term",\r
778                                                                 },\r
779                                                                 corev1.EnvVar{\r
780                                                                         Name: "POD_NAME",\r
781                                                                         ValueFrom: &corev1.EnvVarSource{\r
782                                                                                 FieldRef: &corev1.ObjectFieldSelector{\r
783                                                                                         FieldPath: "metadata.name",\r
784                                                                                 },\r
785                                                                         },\r
786                                                                 },\r
787                                                         },\r
788                                                         EnvFrom: []corev1.EnvFromSource{\r
789 \r
790                                                                 corev1.EnvFromSource{\r
791                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
792                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
793                                                                                         Name: "configmap-ricplt-e2term-env-alpha",\r
794                                                                                 },\r
795                                                                         },\r
796                                                                 },\r
797                                                         },\r
798                                                         Image: "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-e2:3.0.1",\r
799                                                         LivenessProbe: &corev1.Probe{\r
800                                                                 ProbeHandler: corev1.ProbeHandler{\r
801                                                                         Exec: &corev1.ExecAction{\r
802                                                                                 Command: []string{\r
803 \r
804                                                                                         "/bin/sh",\r
805                                                                                         "-c",\r
806                                                                                         "ip=`hostname -i`;export RMR_SRC_ID=$ip;/opt/e2/rmr_probe -h $ip:38000",\r
807                                                                                 },\r
808                                                                         },\r
809                                                                 },\r
810                                                                 InitialDelaySeconds: 10,\r
811                                                                 PeriodSeconds:       10,\r
812                                                         },\r
813                                                         Name:            "container-ricplt-e2term",\r
814                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
815                                                         Ports: []corev1.ContainerPort{\r
816 \r
817                                                                 corev1.ContainerPort{\r
818                                                                         ContainerPort: 4561,\r
819                                                                         Name:          "rmrroute-alpha",\r
820                                                                 },\r
821                                                                 corev1.ContainerPort{\r
822                                                                         ContainerPort: 38000,\r
823                                                                         Name:          "rmrdata-alpha",\r
824                                                                 },\r
825                                                                 corev1.ContainerPort{\r
826                                                                         ContainerPort: 36422,\r
827                                                                         Name:          "sctp-alpha",\r
828                                                                         Protocol:      corev1.Protocol("SCTP"),\r
829                                                                 },\r
830                                                                 corev1.ContainerPort{\r
831                                                                         ContainerPort: 8088,\r
832                                                                         Name:          "prmts-alpha",\r
833                                                                 },\r
834                                                         },\r
835                                                         StdinOnce: false,\r
836                                                         TTY:       true,\r
837                                                         VolumeMounts: []corev1.VolumeMount{\r
838 \r
839                                                                 corev1.VolumeMount{\r
840                                                                         MountPath: "/opt/e2/router.txt",\r
841                                                                         Name:      "local-router-file",\r
842                                                                         ReadOnly:  false,\r
843                                                                         SubPath:   "router.txt",\r
844                                                                 },\r
845                                                                 corev1.VolumeMount{\r
846                                                                         MountPath: "/tmp/rmr_verbose",\r
847                                                                         Name:      "local-router-file",\r
848                                                                         ReadOnly:  false,\r
849                                                                         SubPath:   "rmr_verbose",\r
850                                                                 },\r
851                                                                 corev1.VolumeMount{\r
852                                                                         MountPath: "/etc/config",\r
853                                                                         Name:      "local-loglevel-file",\r
854                                                                         ReadOnly:  false,\r
855                                                                 },\r
856                                                                 corev1.VolumeMount{\r
857                                                                         ReadOnly:  false,\r
858                                                                         MountPath: "/data/outgoing/",\r
859                                                                         Name:      "vol-shared",\r
860                                                                 },\r
861                                                         },\r
862                                                 },\r
863                                         },\r
864                                         DNSPolicy:   corev1.DNSPolicy("ClusterFirstWithHostNet"),\r
865                                         HostIPC:     false,\r
866                                         HostNetwork: false,\r
867                                         HostPID:     false,\r
868                                         Hostname:    "e2term-alpha",\r
869                                         ImagePullSecrets: []corev1.LocalObjectReference{\r
870 \r
871                                                 corev1.LocalObjectReference{\r
872                                                         Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc",\r
873                                                 },\r
874                                         },\r
875                                         Volumes: []corev1.Volume{\r
876 \r
877                                                 corev1.Volume{\r
878                                                         Name: "local-router-file",\r
879                                                         VolumeSource: corev1.VolumeSource{\r
880                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
881                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
882                                                                                 Name: "configmap-ricplt-e2term-router-configmap",\r
883                                                                         },\r
884                                                                 },\r
885                                                         },\r
886                                                 },\r
887                                                 corev1.Volume{\r
888                                                         Name: "local-loglevel-file",\r
889                                                         VolumeSource: corev1.VolumeSource{\r
890                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
891                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
892                                                                                 Name: "configmap-ricplt-e2term-loglevel-configmap",\r
893                                                                         },\r
894                                                                 },\r
895                                                         },\r
896                                                 },\r
897                                                 corev1.Volume{\r
898                                                         VolumeSource: corev1.VolumeSource{\r
899                                                                 PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{\r
900                                                                         ClaimName: "pvc-ricplt-e2term-alpha",\r
901                                                                         ReadOnly:  false,\r
902                                                                 },\r
903                                                         },\r
904                                                         Name: "vol-shared",\r
905                                                 },\r
906                                         },\r
907                                 },\r
908                         },\r
909                 },\r
910                 TypeMeta: metav1.TypeMeta{\r
911                         APIVersion: "apps/v1",\r
912                         Kind:       "Deployment",\r
913                 },\r
914         }\r
915 \r
916 \r
917         return []*appsv1.Deployment{deployment1, deployment2,deployment3,deployment4,deployment5}\r
918 }\r