+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