Adding deployment changes for xapp. 23/12023/1
authornaman.gupta <naman.gupta@samsung.com>
Wed, 8 Nov 2023 12:52:46 +0000 (18:22 +0530)
committernaman.gupta <naman.gupta@samsung.com>
Wed, 8 Nov 2023 12:52:46 +0000 (18:22 +0530)
Adding deployment models and functions changes for xapp.

Change-Id: Ibe66f78bdcda212c0bc08079f0f252ebe550010f
Signed-off-by: naman.gupta <naman.gupta@samsung.com>
xappKubernetesOperator/internal/controller/getDeployment.go [new file with mode: 0644]

diff --git a/xappKubernetesOperator/internal/controller/getDeployment.go b/xappKubernetesOperator/internal/controller/getDeployment.go
new file mode 100644 (file)
index 0000000..7892d0d
--- /dev/null
@@ -0,0 +1,157 @@
+package controller\r
+\r
+import (\r
+       appsv1 "k8s.io/api/apps/v1"\r
+       corev1 "k8s.io/api/core/v1"\r
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"\r
+       "k8s.io/apimachinery/pkg/util/intstr"\r
+)\r
+\r
+func int32Ptr(val int) *int32 {\r
+       var a int32\r
+       a = int32(val)\r
+       return &a\r
+}\r
+\r
+func GetDeployment() []*appsv1.Deployment {\r
+\r
+       deployment1 := &appsv1.Deployment{\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "apps/v1",\r
+                       Kind:       "Deployment",\r
+               },\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Labels: map[string]string{\r
+                               "app":      "ricplt-hw-go",\r
+                               "chart":    "hw-go-1.0.0",\r
+                               "heritage": "Helm",\r
+                               "release":  "release-name",\r
+                       },\r
+                       Name: "ricplt-hw-go",\r
+               },\r
+               Spec: appsv1.DeploymentSpec{\r
+                       Selector: &metav1.LabelSelector{\r
+                               MatchLabels: map[string]string{\r
+                                       "app":     "ricplt-hw-go",\r
+                                       "release": "release-name",\r
+                               },\r
+                       },\r
+                       Template: corev1.PodTemplateSpec{\r
+                               ObjectMeta: metav1.ObjectMeta{\r
+                                       Labels: map[string]string{\r
+                                               "app":             "ricplt-hw-go",\r
+                                               "kubernetes_name": "ricplt_hw-go",\r
+                                               "release":         "release-name",\r
+                                       },\r
+                               },\r
+                               Spec: corev1.PodSpec{\r
+                                       Containers: []corev1.Container{\r
+\r
+                                               corev1.Container{\r
+                                                       Ports: []corev1.ContainerPort{\r
+\r
+                                                               corev1.ContainerPort{\r
+                                                                       ContainerPort: 8080,\r
+                                                                       Name:          "http",\r
+                                                                       Protocol:      corev1.Protocol("TCP"),\r
+                                                               },\r
+                                                               corev1.ContainerPort{\r
+                                                                       Name:          "rmrroute",\r
+                                                                       Protocol:      corev1.Protocol("TCP"),\r
+                                                                       ContainerPort: 4561,\r
+                                                               },\r
+                                                               corev1.ContainerPort{\r
+                                                                       ContainerPort: 4560,\r
+                                                                       Name:          "rmrdata",\r
+                                                                       Protocol:      corev1.Protocol("TCP"),\r
+                                                               },\r
+                                                       },\r
+                                                       Stdin: false,\r
+                                                       TTY:   false,\r
+                                                       ReadinessProbe: &corev1.Probe{\r
+                                                               PeriodSeconds: 15,\r
+                                                               ProbeHandler: corev1.ProbeHandler{\r
+                                                                       HTTPGet: &corev1.HTTPGetAction{\r
+                                                                               Path: "ric/v1/health/ready",\r
+                                                                               Port: intstr.IntOrString{\r
+                                                                                       IntVal: 8080,\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                               InitialDelaySeconds: 5,\r
+                                                       },\r
+                                                       StdinOnce: false,\r
+                                                       VolumeMounts: []corev1.VolumeMount{\r
+\r
+                                                               corev1.VolumeMount{\r
+                                                                       MountPath: "/opt/ric/config",\r
+                                                                       Name:      "config-volume",\r
+                                                                       ReadOnly:  false,\r
+                                                               },\r
+                                                       },\r
+                                                       EnvFrom: []corev1.EnvFromSource{\r
+\r
+                                                               corev1.EnvFromSource{\r
+                                                                       ConfigMapRef: &corev1.ConfigMapEnvSource{\r
+                                                                               LocalObjectReference: corev1.LocalObjectReference{\r
+                                                                                       Name: "configmap-ricplt-hw-go-appenv",\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                               corev1.EnvFromSource{\r
+                                                                       ConfigMapRef: &corev1.ConfigMapEnvSource{\r
+                                                                               LocalObjectReference: corev1.LocalObjectReference{\r
+                                                                                       Name: "dbaas-appconfig",\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                                       Image:           "nexus3.o-ran-sc.org:10004/o-ran-sc/ric-app-hw-go:1.1.1",\r
+                                                       ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
+                                                       LivenessProbe: &corev1.Probe{\r
+                                                               InitialDelaySeconds: 5,\r
+                                                               PeriodSeconds:       15,\r
+                                                               ProbeHandler: corev1.ProbeHandler{\r
+                                                                       HTTPGet: &corev1.HTTPGetAction{\r
+                                                                               Path: "ric/v1/health/alive",\r
+                                                                               Port: intstr.IntOrString{\r
+                                                                                       IntVal: 8080,\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                                       Name: "hw-go",\r
+                                               },\r
+                                       },\r
+                                       HostIPC:     false,\r
+                                       HostNetwork: false,\r
+                                       HostPID:     false,\r
+                                       Hostname:    "hw-go",\r
+                                       ImagePullSecrets: []corev1.LocalObjectReference{\r
+\r
+                                               corev1.LocalObjectReference{\r
+                                                       Name: "nexus3-o-ran-sc-org-10004",\r
+                                               },\r
+                                       },\r
+                                       Volumes: []corev1.Volume{\r
+\r
+                                               corev1.Volume{\r
+                                                       Name: "config-volume",\r
+                                                       VolumeSource: corev1.VolumeSource{\r
+                                                               ConfigMap: &corev1.ConfigMapVolumeSource{\r
+                                                                       LocalObjectReference: corev1.LocalObjectReference{\r
+                                                                               Name: "configmap-ricplt-hw-go-appconfig",\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                               },\r
+                                       },\r
+                               },\r
+                       },\r
+                       Paused:   false,\r
+                       Replicas: int32Ptr(1),\r
+               },\r
+       }\r
+\r
+       return []*appsv1.Deployment{deployment1}\r
+}\r