7b250d293b59788683c8cfbe5133f2bf9aaa56c5
[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         return []*appsv1.Deployment{deployment1}\r
155 }\r