Adding Configmap and secrets for app manager. 47/12147/2
authornaman.gupta <naman.gupta@samsung.com>
Fri, 1 Dec 2023 14:06:00 +0000 (19:36 +0530)
committerThoralf Czichy <thoralf.czichy@nokia.com>
Thu, 7 Dec 2023 09:28:26 +0000 (09:28 +0000)
Adding Configmap and secrets for app manager.

Change-Id: I4df867f683013f2500b8e98d07cb99fe3ac08040
Signed-off-by: naman.gupta <naman.gupta@samsung.com>
depRicKubernetesOperator/internal/controller/getConfigmap.go
depRicKubernetesOperator/internal/controller/getSecret.go [new file with mode: 0644]

index aa4b74b..1eedf0b 100644 (file)
@@ -136,5 +136,133 @@ func GetConfigMap() []*corev1.ConfigMap {
                },\r
        }\r
 \r
-       return []*corev1.ConfigMap{configMap1, configMap2, configMap3, configMap4, configMap5, configMap6}\r
+       configMap7 := &corev1.ConfigMap{\r
+               Data: map[string]string{\r
+                       "appmgr.yaml": "\"local\":\n" +\r
+                               "  # Port on which the xapp-manager REST services are provided\n" +\r
+                               "  \"host\": \":8080\"\n" +\r
+                               "\"helm\":\n" +\r
+                               "  # Remote helm repo URL. UPDATE this as required.\n" +\r
+                               "  \"repo\": \"\\\"http://service-ricplt-xapp-onboarder-http:8080\\\"\"\n" +\r
+                               "\n" +\r
+                               "  # Repo name referred within the xapp-manager\n" +\r
+                               "  \"repo-name\": \"helm-repo\"\n" +\r
+                               "\n" +\r
+                               "  # Tiller service details in the cluster. UPDATE this as required.\n" +\r
+                               "  \"tiller-service\": service-tiller-ricxapp\n" +\r
+                               "  \"tiller-namespace\": ricinfra\n" +\r
+                               "  \"tiller-port\": \"44134\"\n" +\r
+                               "  # helm username and password files\n" +\r
+                               "  \"helm-username-file\": \"/opt/ric/secret/helm_repo_username\"\n" +\r
+                               "  \"helm-password-file\": \"/opt/ric/secret/helm_repo_password\"\n" +\r
+                               "  \"retry\": 1\n" +\r
+                               "\"xapp\":\n" +\r
+                               "  #Namespace to install xAPPs\n" +\r
+                               "  \"namespace\": \"ricxapp\"\n" +\r
+                               "  \"tarDir\": \"/tmp\"\n" +\r
+                               "  \"schema\": \"descriptors/schema.json\"\n" +\r
+                               "  \"config\": \"config/config-file.json\"\n" +\r
+                               "  \"tmpConfig\": \"/tmp/config-file.json\"\n" +\r
+                               "",\r
+               },\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name: "configmap-ricplt-appmgr-appconfig",\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "v1",\r
+                       Kind:       "ConfigMap",\r
+               },\r
+       }\r
+\r
+       configMap8 := &corev1.ConfigMap{\r
+               Data: map[string]string{\r
+                       "appmgr-tiller-secret-copier.sh": "#!/bin/sh\n" +\r
+                               "if [ -x /svcacct-to-kubeconfig.sh ] ; then\n" +\r
+                               " /svcacct-to-kubeconfig.sh\n" +\r
+                               "fi\n" +\r
+                               "\n" +\r
+                               "if [ ! -z \"${HELM_TLS_CA_CERT}\" ]; then\n" +\r
+                               "  kubectl -n ${SECRET_NAMESPACE} get secret -o yaml ${SECRET_NAME} | \\\n" +\r
+                               "   grep 'ca.crt:' | \\\n" +\r
+                               "   awk '{print $2}' | \\\n" +\r
+                               "   base64 -d > ${HELM_TLS_CA_CERT}\n" +\r
+                               "fi\n" +\r
+                               "\n" +\r
+                               "if [ ! -z \"${HELM_TLS_CERT}\" ]; then\n" +\r
+                               "  kubectl -n ${SECRET_NAMESPACE} get secret -o yaml ${SECRET_NAME} | \\\n" +\r
+                               "   grep 'tls.crt:' | \\\n" +\r
+                               "   awk '{print $2}' | \\\n" +\r
+                               "   base64 -d > ${HELM_TLS_CERT}\n" +\r
+                               "fi\n" +\r
+                               "\n" +\r
+                               "if [ ! -z \"${HELM_TLS_KEY}\" ]; then\n" +\r
+                               "  kubectl -n ${SECRET_NAMESPACE} get secret -o yaml ${SECRET_NAME} | \\\n" +\r
+                               "   grep 'tls.key:' | \\\n" +\r
+                               "   awk '{print $2}' | \\\n" +\r
+                               "   base64 -d > ${HELM_TLS_KEY}\n" +\r
+                               "fi\n" +\r
+                               "",\r
+                       "svcacct-to-kubeconfig.sh": "#!/bin/sh\n" +\r
+                               "\n" +\r
+                               "# generate a kubconfig (at ${KUBECONFIG} file from the automatically-mounted\n" +\r
+                               "# service account token.\n" +\r
+                               "# ENVIRONMENT:\n" +\r
+                               "# SVCACCT_NAME: the name of the service account user.  default \"default\"\n" +\r
+                               "# CLUSTER_NAME: the name of the kubernetes cluster.  default \"kubernetes\"\n" +\r
+                               "# KUBECONFIG: where the generated file will be deposited.\n" +\r
+                               "SVCACCT_TOKEN=`cat /var/run/secrets/kubernetes.io/serviceaccount/token`\n" +\r
+                               "CLUSTER_CA=`base64 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt|tr -d '\\n'`\n" +\r
+                               "\n" +\r
+                               "cat >${KUBECONFIG} <<__EOF__\n" +\r
+                               "ApiVersion: v1\n" +\r
+                               "kind: Config\n" +\r
+                               "users:\n" +\r
+                               "- name: ${SVCACCT_NAME:-default}\n" +\r
+                               "  user:\n" +\r
+                               "    token: ${SVCACCT_TOKEN}\n" +\r
+                               "clusters:\n" +\r
+                               "- cluster:\n" +\r
+                               "    certificate-authority-data: ${CLUSTER_CA}\n" +\r
+                               "    server: ${K8S_API_HOST:-https://kubernetes.default.svc.cluster.local/}\n" +\r
+                               "  name: ${CLUSTER_NAME:-kubernetes}\n" +\r
+                               "contexts:\n" +\r
+                               "- context:\n" +\r
+                               "    cluster: ${CLUSTER_NAME:-kubernetes}\n" +\r
+                               "    user: ${SVCACCT_NAME:-default}\n" +\r
+                               "  name: svcs-acct-context\n" +\r
+                               "current-context: svcs-acct-context\n" +\r
+                               "__EOF__\n" +\r
+                               "",\r
+               },\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name: "configmap-ricplt-appmgr-bin",\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       Kind:       "ConfigMap",\r
+                       APIVersion: "v1",\r
+               },\r
+       }\r
+\r
+       configMap9 := &corev1.ConfigMap{\r
+               Data: map[string]string{\r
+                       "RMR_RTG_SVC":       "4561",\r
+                       "HELM_TLS_CA_CERT":  "/opt/ric/secret/tiller-ca.cert",\r
+                       "HELM_TLS_CERT":     "/opt/ric/secret/helm-client.cert",\r
+                       "HELM_TLS_HOSTNAME": "service-tiller-ricxapp",\r
+                       "HELM_TLS_VERIFY":   "true",\r
+                       "NAME":              "xappmgr",\r
+                       "HELM_HOST":         "service-tiller-ricxapp.ricinfra:44134",\r
+                       "HELM_TLS_ENABLED":  "true",\r
+                       "HELM_TLS_KEY":      "/opt/ric/secret/helm-client.key",\r
+               },\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name: "configmap-ricplt-appmgr-env",\r
+               },\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "v1",\r
+                       Kind:       "ConfigMap",\r
+               },\r
+       }\r
+       \r
+       return []*corev1.ConfigMap{configMap1, configMap2, configMap3, configMap4, configMap5, configMap6,configMap7, configMap8, configMap9}\r
 }\r
diff --git a/depRicKubernetesOperator/internal/controller/getSecret.go b/depRicKubernetesOperator/internal/controller/getSecret.go
new file mode 100644 (file)
index 0000000..d2cfa89
--- /dev/null
@@ -0,0 +1,27 @@
+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 GetSecret() []*corev1.Secret {\r
+\r
+       secret1 := &corev1.Secret{\r
+               Data: map[string][]uint8{\r
+                       "helm_repo_password": getDataForSecret("helm"),\r
+                       "helm_repo_username": getDataForSecret("helm"),\r
+               },\r
+               ObjectMeta: metav1.ObjectMeta{\r
+                       Name: "secret-ricplt-appmgr",\r
+               },\r
+               Type: corev1.SecretType("Opaque"),\r
+               TypeMeta: metav1.TypeMeta{\r
+                       APIVersion: "v1",\r
+                       Kind:       "Secret",\r
+               },\r
+       }\r
+return []*corev1.Secret{secret1}\r
+\r
+}
\ No newline at end of file