Creation of all the resources of the xapp.
[ric-plt/ricdms.git] / xappKubernetesOperator / 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                 TypeMeta: metav1.TypeMeta{\r
20                         APIVersion: "apps/v1",\r
21                         Kind:       "Deployment",\r
22                 },\r
23                 ObjectMeta: metav1.ObjectMeta{\r
24                         Labels: map[string]string{\r
25                                 "app":      "ricplt-hw-go",\r
26                                 "chart":    "hw-go-1.0.0",\r
27                                 "heritage": "Helm",\r
28                                 "release":  "release-name",\r
29                         },\r
30                         Name: "ricplt-hw-go",\r
31                 },\r
32                 Spec: appsv1.DeploymentSpec{\r
33                         Selector: &metav1.LabelSelector{\r
34                                 MatchLabels: map[string]string{\r
35                                         "app":     "ricplt-hw-go",\r
36                                         "release": "release-name",\r
37                                 },\r
38                         },\r
39                         Template: corev1.PodTemplateSpec{\r
40                                 ObjectMeta: metav1.ObjectMeta{\r
41                                         Labels: map[string]string{\r
42                                                 "app":             "ricplt-hw-go",\r
43                                                 "kubernetes_name": "ricplt_hw-go",\r
44                                                 "release":         "release-name",\r
45                                         },\r
46                                 },\r
47                                 Spec: corev1.PodSpec{\r
48                                         Containers: []corev1.Container{\r
49 \r
50                                                 corev1.Container{\r
51                                                         Ports: []corev1.ContainerPort{\r
52 \r
53                                                                 corev1.ContainerPort{\r
54                                                                         ContainerPort: 8080,\r
55                                                                         Name:          "http",\r
56                                                                         Protocol:      corev1.Protocol("TCP"),\r
57                                                                 },\r
58                                                                 corev1.ContainerPort{\r
59                                                                         Name:          "rmrroute",\r
60                                                                         Protocol:      corev1.Protocol("TCP"),\r
61                                                                         ContainerPort: 4561,\r
62                                                                 },\r
63                                                                 corev1.ContainerPort{\r
64                                                                         ContainerPort: 4560,\r
65                                                                         Name:          "rmrdata",\r
66                                                                         Protocol:      corev1.Protocol("TCP"),\r
67                                                                 },\r
68                                                         },\r
69                                                         Stdin: false,\r
70                                                         TTY:   false,\r
71                                                         ReadinessProbe: &corev1.Probe{\r
72                                                                 PeriodSeconds: 15,\r
73                                                                 ProbeHandler: corev1.ProbeHandler{\r
74                                                                         HTTPGet: &corev1.HTTPGetAction{\r
75                                                                                 Path: "ric/v1/health/ready",\r
76                                                                                 Port: intstr.IntOrString{\r
77                                                                                         IntVal: 8080,\r
78                                                                                 },\r
79                                                                         },\r
80                                                                 },\r
81                                                                 InitialDelaySeconds: 5,\r
82                                                         },\r
83                                                         StdinOnce: false,\r
84                                                         VolumeMounts: []corev1.VolumeMount{\r
85 \r
86                                                                 corev1.VolumeMount{\r
87                                                                         MountPath: "/opt/ric/config",\r
88                                                                         Name:      "config-volume",\r
89                                                                         ReadOnly:  false,\r
90                                                                 },\r
91                                                         },\r
92                                                         EnvFrom: []corev1.EnvFromSource{\r
93 \r
94                                                                 corev1.EnvFromSource{\r
95                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
96                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
97                                                                                         Name: "configmap-ricplt-hw-go-appenv",\r
98                                                                                 },\r
99                                                                         },\r
100                                                                 },\r
101                                                                 corev1.EnvFromSource{\r
102                                                                         ConfigMapRef: &corev1.ConfigMapEnvSource{\r
103                                                                                 LocalObjectReference: corev1.LocalObjectReference{\r
104                                                                                         Name: "dbaas-appconfig",\r
105                                                                                 },\r
106                                                                         },\r
107                                                                 },\r
108                                                         },\r
109                                                         Image:           "nexus3.o-ran-sc.org:10004/o-ran-sc/ric-app-hw-go:1.1.1",\r
110                                                         ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
111                                                         LivenessProbe: &corev1.Probe{\r
112                                                                 InitialDelaySeconds: 5,\r
113                                                                 PeriodSeconds:       15,\r
114                                                                 ProbeHandler: corev1.ProbeHandler{\r
115                                                                         HTTPGet: &corev1.HTTPGetAction{\r
116                                                                                 Path: "ric/v1/health/alive",\r
117                                                                                 Port: intstr.IntOrString{\r
118                                                                                         IntVal: 8080,\r
119                                                                                 },\r
120                                                                         },\r
121                                                                 },\r
122                                                         },\r
123                                                         Name: "hw-go",\r
124                                                 },\r
125                                         },\r
126                                         HostIPC:     false,\r
127                                         HostNetwork: false,\r
128                                         HostPID:     false,\r
129                                         Hostname:    "hw-go",\r
130                                         ImagePullSecrets: []corev1.LocalObjectReference{\r
131 \r
132                                                 corev1.LocalObjectReference{\r
133                                                         Name: "nexus3-o-ran-sc-org-10004",\r
134                                                 },\r
135                                         },\r
136                                         Volumes: []corev1.Volume{\r
137 \r
138                                                 corev1.Volume{\r
139                                                         Name: "config-volume",\r
140                                                         VolumeSource: corev1.VolumeSource{\r
141                                                                 ConfigMap: &corev1.ConfigMapVolumeSource{\r
142                                                                         LocalObjectReference: corev1.LocalObjectReference{\r
143                                                                                 Name: "configmap-ricplt-hw-go-appconfig",\r
144                                                                         },\r
145                                                                 },\r
146                                                         },\r
147                                                 },\r
148                                         },\r
149                                 },\r
150                         },\r
151                         Paused:   false,\r
152                         Replicas: int32Ptr(1),\r
153                 },\r
154         }\r
155 \r
156         return []*appsv1.Deployment{deployment1}\r
157 }\r