Merge "Adding Persistent Volume for Alarm Manager."
authorThoralf Czichy <thoralf.czichy@nokia.com>
Thu, 7 Dec 2023 09:27:40 +0000 (09:27 +0000)
committerGerrit Code Review <gerrit@o-ran-sc.org>
Thu, 7 Dec 2023 09:27:40 +0000 (09:27 +0000)
depRicKubernetesOperator/internal/controller/getDeployment.go
depRicKubernetesOperator/internal/controller/getRole.go [new file with mode: 0644]
depRicKubernetesOperator/internal/controller/getRoleBinding.go [new file with mode: 0644]
depRicKubernetesOperator/internal/controller/getServiceAccount.go [new file with mode: 0644]

index 33abd3f..5796622 100644 (file)
@@ -295,5 +295,233 @@ func GetDeployment() []*appsv1.Deployment {
                },\r
        }\r
 \r
-       return []*appsv1.Deployment{deployment1, deployment2}\r
+       deployment3 := &appsv1.Deployment{\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Namespace: "ricplt",\r
+                       Labels: map[string]string{\r
+                               "app":      "ricplt-appmgr",\r
+                               "chart":    "appmgr-3.0.0",\r
+                               "heritage": "Helm",\r
+                               "release":  "release-name",\r
+                       },\r
+                       Name: "deployment-ricplt-appmgr",\r
+               },\r
+               Spec: appsv1.DeploymentSpec{\r
+                       Template: corev1.PodTemplateSpec{\r
+                               ObjectMeta: metav1.ObjectMeta{\r
+                                       Labels: map[string]string{\r
+                                               "app":     "ricplt-appmgr",\r
+                                               "release": "release-name",\r
+                                       },\r
+                               },\r
+                               Spec: corev1.PodSpec{\r
+                                       Containers: []corev1.Container{\r
+\r
+                                               corev1.Container{\r
+                                                       Stdin: false,\r
+                                                       VolumeMounts: []corev1.VolumeMount{\r
+\r
+                                                               corev1.VolumeMount{\r
+                                                                       MountPath: "/opt/ric/config/appmgr.yaml",\r
+                                                                       Name:      "config-volume",\r
+                                                                       ReadOnly:  false,\r
+                                                                       SubPath:   "appmgr.yaml",\r
+                                                               },\r
+                                                               corev1.VolumeMount{\r
+                                                                       MountPath: "/opt/ric/secret",\r
+                                                                       Name:      "helm-secret-volume",\r
+                                                                       ReadOnly:  false,\r
+                                                               },\r
+                                                               corev1.VolumeMount{\r
+                                                                       ReadOnly:  false,\r
+                                                                       SubPath:   "helm_repo_username",\r
+                                                                       MountPath: "/opt/ric/secret/helm_repo_username",\r
+                                                                       Name:      "secret-volume",\r
+                                                               },\r
+                                                               corev1.VolumeMount{\r
+                                                                       SubPath:   "helm_repo_password",\r
+                                                                       MountPath: "/opt/ric/secret/helm_repo_password",\r
+                                                                       Name:      "secret-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-appmgr-env",\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                               corev1.EnvFromSource{\r
+                                                                       ConfigMapRef: &corev1.ConfigMapEnvSource{\r
+                                                                               LocalObjectReference: corev1.LocalObjectReference{\r
+                                                                                       Name: "configmap-ricplt-dbaas-appconfig",\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                                       ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
+                                                       Name:            "container-ricplt-appmgr",\r
+                                                       TTY:             false,\r
+                                                       Image:           "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-appmgr:0.2.0",\r
+                                                       Ports: []corev1.ContainerPort{\r
+\r
+                                                               corev1.ContainerPort{\r
+                                                                       ContainerPort: 8080,\r
+                                                                       Name:          "http",\r
+                                                                       Protocol:      corev1.Protocol("TCP"),\r
+                                                               },\r
+                                                               corev1.ContainerPort{\r
+                                                                       Protocol:      corev1.Protocol("TCP"),\r
+                                                                       ContainerPort: 4561,\r
+                                                                       Name:          "rmrroute",\r
+                                                               },\r
+                                                               corev1.ContainerPort{\r
+                                                                       ContainerPort: 4560,\r
+                                                                       Name:          "rmrdata",\r
+                                                                       Protocol:      corev1.Protocol("TCP"),\r
+                                                               },\r
+                                                       },\r
+                                                       StdinOnce: false,\r
+                                               },\r
+                                       },\r
+                                       HostIPC:            false,\r
+                                       HostPID:            false,\r
+                                       Hostname:           "appmgr",\r
+                                       RestartPolicy:      corev1.RestartPolicy("Always"),\r
+                                       ServiceAccountName: "svcacct-ricplt-appmgr",\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-appmgr-appconfig",\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                               },\r
+                                               corev1.Volume{\r
+                                                       Name: "secret-volume",\r
+                                                       VolumeSource: corev1.VolumeSource{\r
+                                                               Secret: &corev1.SecretVolumeSource{\r
+                                                                       SecretName: "secret-ricplt-appmgr",\r
+                                                               },\r
+                                                       },\r
+                                               },\r
+                                               corev1.Volume{\r
+                                                       Name: "helm-secret-volume",\r
+                                               },\r
+                                               corev1.Volume{\r
+                                                       Name: "appmgr-bin-volume",\r
+                                                       VolumeSource: corev1.VolumeSource{\r
+                                                               ConfigMap: &corev1.ConfigMapVolumeSource{\r
+                                                                       DefaultMode: int32Ptr(493),\r
+                                                                       LocalObjectReference: corev1.LocalObjectReference{\r
+                                                                               Name: "configmap-ricplt-appmgr-bin",\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                               },\r
+                                       },\r
+                                       HostNetwork: false,\r
+                                       ImagePullSecrets: []corev1.LocalObjectReference{\r
+\r
+                                               corev1.LocalObjectReference{\r
+                                                       Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc",\r
+                                               },\r
+                                       },\r
+                                       InitContainers: []corev1.Container{\r
+\r
+                                               corev1.Container{\r
+                                                       Env: []corev1.EnvVar{\r
+\r
+                                                               corev1.EnvVar{\r
+                                                                       Name:  "SVCACCT_NAME",\r
+                                                                       Value: "svcacct-ricplt-appmgr",\r
+                                                               },\r
+                                                               corev1.EnvVar{\r
+                                                                       Name:  "CLUSTER_NAME",\r
+                                                                       Value: "kubernetes",\r
+                                                               },\r
+                                                               corev1.EnvVar{\r
+                                                                       Name:  "KUBECONFIG",\r
+                                                                       Value: "/tmp/kubeconfig",\r
+                                                               },\r
+                                                               corev1.EnvVar{\r
+                                                                       Name:  "K8S_API_HOST",\r
+                                                                       Value: "https://kubernetes.default.svc.cluster.local/",\r
+                                                               },\r
+                                                               corev1.EnvVar{\r
+                                                                       Name:  "SECRET_NAMESPACE",\r
+                                                                       Value: "ricinfra",\r
+                                                               },\r
+                                                               corev1.EnvVar{\r
+                                                                       Name:  "SECRET_NAME",\r
+                                                                       Value: "ricxapp-helm-secret",\r
+                                                               },\r
+                                                       },\r
+                                                       Image:     "nexus3.o-ran-sc.org:10002/o-ran-sc/it-dep-init:0.0.1",\r
+                                                       Name:      "container-ricplt-appmgr-copy-tiller-secret",\r
+                                                       Stdin:     false,\r
+                                                       StdinOnce: false,\r
+                                                       TTY:       false,\r
+                                                       VolumeMounts: []corev1.VolumeMount{\r
+\r
+                                                               corev1.VolumeMount{\r
+                                                                       Name:      "helm-secret-volume",\r
+                                                                       ReadOnly:  false,\r
+                                                                       MountPath: "/opt/ric/secret",\r
+                                                               },\r
+                                                               corev1.VolumeMount{\r
+                                                                       MountPath: "/svcacct-to-kubeconfig.sh",\r
+                                                                       Name:      "appmgr-bin-volume",\r
+                                                                       ReadOnly:  false,\r
+                                                                       SubPath:   "svcacct-to-kubeconfig.sh",\r
+                                                               },\r
+                                                               corev1.VolumeMount{\r
+                                                                       ReadOnly:  false,\r
+                                                                       SubPath:   "appmgr-tiller-secret-copier.sh",\r
+                                                                       MountPath: "/appmgr-tiller-secret-copier.sh",\r
+                                                                       Name:      "appmgr-bin-volume",\r
+                                                               },\r
+                                                       },\r
+                                                       Command: []string{\r
+\r
+                                                               "/appmgr-tiller-secret-copier.sh",\r
+                                                       },\r
+                                                       EnvFrom: []corev1.EnvFromSource{\r
+\r
+                                                               corev1.EnvFromSource{\r
+                                                                       ConfigMapRef: &corev1.ConfigMapEnvSource{\r
+                                                                               LocalObjectReference: corev1.LocalObjectReference{\r
+                                                                                       Name: "configmap-ricplt-appmgr-env",\r
+                                                                               },\r
+                                                                       },\r
+                                                               },\r
+                                                       },\r
+                                                       ImagePullPolicy: corev1.PullPolicy("IfNotPresent"),\r
+                                               },\r
+                                       },\r
+                               },\r
+                       },\r
+                       Paused:   false,\r
+                       Replicas: int32Ptr(1),\r
+                       Selector: &metav1.LabelSelector{\r
+                               MatchLabels: map[string]string{\r
+                                       "release": "release-name",\r
+                                       "app":     "ricplt-appmgr",\r
+                               },\r
+                       },\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "apps/v1",\r
+                       Kind:       "Deployment",\r
+               },\r
+       }\r
+\r
+       return []*appsv1.Deployment{deployment1, deployment2,deployment3}\r
 }\r
diff --git a/depRicKubernetesOperator/internal/controller/getRole.go b/depRicKubernetesOperator/internal/controller/getRole.go
new file mode 100644 (file)
index 0000000..e43a0ba
--- /dev/null
@@ -0,0 +1,39 @@
+package controller\r
+\r
+import (\r
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"\r
+)\r
+\r
+func GetRole() []*rbacv1.Role {\r
+\r
+       role1 := &rbacv1.Role{\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name:      "svcacct-ricplt-alarmmanager-ricxapp-podreader",\r
+                       Namespace: "ricxapp",\r
+               },\r
+               Rules: []rbacv1.PolicyRule{\r
+\r
+                       rbacv1.PolicyRule{\r
+                               APIGroups: []string{\r
+\r
+                                       "",\r
+                               },\r
+                               Resources: []string{\r
+\r
+                                       "pods",\r
+                               },\r
+                               Verbs: []string{\r
+\r
+                                       "get",\r
+                                       "list",\r
+                                       "watch",\r
+                               },\r
+                       },\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "rbac.authorization.k8s.io/v1",\r
+                       Kind:       "Role",\r
+               },\r
+       }\r
+       return []*rbacv1.Role{role1}\r
+}\r
diff --git a/depRicKubernetesOperator/internal/controller/getRoleBinding.go b/depRicKubernetesOperator/internal/controller/getRoleBinding.go
new file mode 100644 (file)
index 0000000..ca6a093
--- /dev/null
@@ -0,0 +1,34 @@
+package controller\r
+\r
+import (\r
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"\r
+)\r
+\r
+func GetRoleBinding() []*rbacv1.RoleBinding {\r
+\r
+       roleBinding1 := &rbacv1.RoleBinding{\r
+               Subjects: []rbacv1.Subject{\r
+\r
+                       rbacv1.Subject{\r
+                               Kind:      "ServiceAccount",\r
+                               Name:      "svcacct-ricplt-alarmmanager",\r
+                               Namespace: "ricplt",\r
+                       },\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "rbac.authorization.k8s.io/v1",\r
+                       Kind:       "RoleBinding",\r
+               },\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name:      "svcacct-ricplt-alarmmanager-ricxapp-podreader",\r
+                       Namespace: "ricxapp",\r
+               },\r
+               RoleRef: rbacv1.RoleRef{\r
+                       APIGroup: "rbac.authorization.k8s.io",\r
+                       Kind:     "Role",\r
+                       Name:     "svcacct-ricplt-alarmmanager-ricxapp-podreader",\r
+               },\r
+       }\r
+\r
+       return []*rbacv1.RoleBinding{roleBinding1}\r
+}\r
diff --git a/depRicKubernetesOperator/internal/controller/getServiceAccount.go b/depRicKubernetesOperator/internal/controller/getServiceAccount.go
new file mode 100644 (file)
index 0000000..366405b
--- /dev/null
@@ -0,0 +1,22 @@
+package controller\r
+\r
+import (\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 GetServiceAccount() []*corev1.ServiceAccount {\r
+\r
+       serviceAccount1 := &corev1.ServiceAccount{\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name:      "svcacct-ricplt-alarmmanager",\r
+                       Namespace: "ricplt",\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "v1",\r
+                       Kind:       "ServiceAccount",\r
+               },\r
+       }\r
+       return []*corev1.ServiceAccount{serviceAccount1}\r
+}
\ No newline at end of file