From: Thoralf Czichy Date: Thu, 7 Dec 2023 09:39:10 +0000 (+0000) Subject: Merge "Adding creation of resources for RIC." X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=d8554d0c65a787eda1a1f38b66c8c7a97295fc0b;hp=f8fab00f8befcc8c3cb30988e4fdff1f098e58ae;p=ric-plt%2Fric-dep.git Merge "Adding creation of resources for RIC." --- diff --git a/depRicKubernetesOperator/internal/controller/getClusterRole.go b/depRicKubernetesOperator/internal/controller/getClusterRole.go index 31e1bb4..13a8200 100644 --- a/depRicKubernetesOperator/internal/controller/getClusterRole.go +++ b/depRicKubernetesOperator/internal/controller/getClusterRole.go @@ -3,6 +3,7 @@ package controller import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + rbacv1 "k8s.io/api/rbac/v1" ) func GetClusterRole() []*rbacv1.ClusterRole { @@ -102,6 +103,273 @@ func GetClusterRole() []*rbacv1.ClusterRole { }, } - return []*rbacv1.ClusterRole{clusterRole1, clusterRole2} + clusterRole3 := &rbacv1.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + }, + Name: "release-name-kong", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + Resources: []string{ + + "endpoints", + "nodes", + "pods", + "secrets", + }, + Verbs: []string{ + + "list", + "watch", + }, + APIGroups: []string{ + + "", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "nodes", + }, + Verbs: []string{ + + "get", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "services", + }, + Verbs: []string{ + + "get", + "list", + "watch", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "extensions", + "networking.k8s.io", + }, + Resources: []string{ + + "ingresses", + }, + Verbs: []string{ + + "get", + "list", + "watch", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "events", + }, + Verbs: []string{ + + "create", + "patch", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "extensions", + "networking.k8s.io", + }, + Resources: []string{ + + "ingresses/status", + }, + Verbs: []string{ + + "update", + }, + }, + rbacv1.PolicyRule{ + Verbs: []string{ + + "get", + "list", + "watch", + }, + APIGroups: []string{ + + "configuration.konghq.com", + }, + Resources: []string{ + + "kongplugins", + "kongcredentials", + "kongconsumers", + "kongingresses", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "ClusterRole", + }, + } + + clusterRole4 := &rbacv1.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + }, + Name: "release-name-kong", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "endpoints", + "nodes", + "pods", + "secrets", + }, + Verbs: []string{ + + "list", + "watch", + }, + }, + rbacv1.PolicyRule{ + Resources: []string{ + + "nodes", + }, + Verbs: []string{ + + "get", + }, + APIGroups: []string{ + + "", + }, + }, + rbacv1.PolicyRule{ + Verbs: []string{ + + "get", + "list", + "watch", + }, + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "services", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "extensions", + "networking.k8s.io", + }, + Resources: []string{ + + "ingresses", + }, + Verbs: []string{ + + "get", + "list", + "watch", + }, + }, + rbacv1.PolicyRule{ + Resources: []string{ + + "events", + }, + Verbs: []string{ + + "create", + "patch", + }, + APIGroups: []string{ + + "", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "extensions", + "networking.k8s.io", + }, + Resources: []string{ + + "ingresses/status", + }, + Verbs: []string{ + + "update", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "configuration.konghq.com", + }, + Resources: []string{ + + "kongplugins", + "kongcredentials", + "kongconsumers", + "kongingresses", + }, + Verbs: []string{ + + "get", + "list", + "watch", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "ClusterRole", + }, + } + return []*rbacv1.ClusterRole{clusterRole1, clusterRole2, clusterRole3, clusterRole4} } \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getClusterRoleBinding.go b/depRicKubernetesOperator/internal/controller/getClusterRoleBinding.go index 5412f74..3a83424 100644 --- a/depRicKubernetesOperator/internal/controller/getClusterRoleBinding.go +++ b/depRicKubernetesOperator/internal/controller/getClusterRoleBinding.go @@ -7,6 +7,7 @@ import ( ) func GetClusterRoleBinding() []*rbacv1.ClusterRoleBinding { + clusterRoleBinding1 := &rbacv1.ClusterRoleBinding{ TypeMeta: metav1.TypeMeta{ APIVersion: "rbac.authorization.k8s.io/v1", @@ -54,5 +55,66 @@ func GetClusterRoleBinding() []*rbacv1.ClusterRoleBinding { Kind: "ClusterRoleBinding", }, } - return []*rbacv1.ClusterRoleBinding{clusterRoleBinding1, clusterRoleBinding2} + + clusterRoleBinding3 := &rbacv1.ClusterRoleBinding{ + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "ClusterRole", + Name: "release-name-kong", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Namespace: "ricplt", + Kind: "ServiceAccount", + Name: "release-name-kong", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "ClusterRoleBinding", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + }, + Name: "release-name-kong", + }, + } + + clusterRoleBinding4 := &rbacv1.ClusterRoleBinding{ + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "release-name-kong", + Namespace: "ricplt", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "ClusterRoleBinding", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + }, + RoleRef: rbacv1.RoleRef{ + Name: "release-name-kong", + APIGroup: "rbac.authorization.k8s.io", + Kind: "ClusterRole", + }, + } + + return []*rbacv1.ClusterRoleBinding{clusterRoleBinding1, clusterRoleBinding2, clusterRoleBinding3, clusterRoleBinding4} } diff --git a/depRicKubernetesOperator/internal/controller/getConfigmap.go b/depRicKubernetesOperator/internal/controller/getConfigmap.go index af56cd3..8e0b67f 100644 --- a/depRicKubernetesOperator/internal/controller/getConfigmap.go +++ b/depRicKubernetesOperator/internal/controller/getConfigmap.go @@ -264,6 +264,64 @@ func GetConfigMap() []*corev1.ConfigMap { }, } + configMap10 := &corev1.ConfigMap{ + Data: map[string]string{ + "DBAAS_NODE_COUNT": "1", + "DBAAS_SERVICE_HOST": "service-ricplt-dbaas-tcp.ricplt", + "DBAAS_SERVICE_PORT": "6379", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-dbaas-appconfig", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap11 := &corev1.ConfigMap{ + Data: map[string]string{ + "DBAAS_NODE_COUNT": "1", + "DBAAS_SERVICE_HOST": "service-ricplt-dbaas-tcp.ricplt", + "DBAAS_SERVICE_PORT": "6379", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "dbaas-appconfig", + Namespace: "ricxapp", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap12 := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "redis.conf": "dir \"/data\"\n" + + "appendonly no\n" + + "bind 0.0.0.0\n" + + "loadmodule /usr/local/libexec/redismodule/libredismodule.so\n" + + "protected-mode no\n" + + "save\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "app": "ricplt-dbaas", + "chart": "dbaas-2.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "configmap-ricplt-dbaas-config", + }, + } + configMap13 := &corev1.ConfigMap{ Data: map[string]string{ "rmr_verbose": "0\n" + @@ -451,6 +509,1253 @@ func GetConfigMap() []*corev1.ConfigMap { }, } + configMap20 := &corev1.ConfigMap{ + Data: map[string]string{ + "servers.conf": "# Prometheus metrics and health-checking server\n" + + "server {\n" + + " server_name kong_prometheus_exporter;\n" + + " listen 0.0.0.0:9542; # can be any other port as well\n" + + " access_log off;\n" + + " location /status {\n" + + " default_type text/plain;\n" + + " return 200;\n" + + " }\n" + + " location /metrics {\n" + + " default_type text/plain;\n" + + " content_by_lua_block {\n" + + " local prometheus = require \"kong.plugins.prometheus.exporter\"\n" + + " prometheus:collect()\n" + + " }\n" + + " }\n" + + " location /nginx_status {\n" + + " internal;\n" + + " access_log off;\n" + + " stub_status;\n" + + " }\n" + + "}\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + }, + Name: "release-name-kong-default-custom-server-blocks", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap21 := &corev1.ConfigMap{ + Data: map[string]string{ + "TRACING_JAEGER_LOG_LEVEL": "error", + "TRACING_JAEGER_SAMPLER_PARAM": "1", + "TRACING_JAEGER_SAMPLER_TYPE": "const", + "TRACING_ENABLED": "0", + "TRACING_JAEGER_AGENT_ADDR": "service-ricplt-jaegeradapter-agent.ricplt", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Name: "configmap-ricplt-jaegeradapter", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "ConfigMap", + APIVersion: "v1", + }, + } + + configMap22 := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "servers.conf": "# Prometheus metrics and health-checking server\n" + + "server {\n" + + " server_name kong_prometheus_exporter;\n" + + " listen 0.0.0.0:9542; # can be any other port as well\n" + + " access_log off;\n" + + " location /status {\n" + + " default_type text/plain;\n" + + " return 200;\n" + + " }\n" + + " location /metrics {\n" + + " default_type text/plain;\n" + + " content_by_lua_block {\n" + + " local prometheus = require \"kong.plugins.prometheus.exporter\"\n" + + " prometheus:collect()\n" + + " }\n" + + " }\n" + + " location /nginx_status {\n" + + " internal;\n" + + " access_log off;\n" + + " stub_status;\n" + + " }\n" + + "}\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + }, + Name: "release-name-kong-default-custom-server-blocks", + }, + } + + configMap23 := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "config-file.json": "{\n" + + " \"local\": {\n" + + " \"host\": \":8080\"\n" + + " },\n" + + " \"logger\": {\n" + + " \"level\": 4\n" + + " },\n" + + " \"db\": {\n" + + " \"namespaces\": [\"sdl\", \"rnib\"]\n" + + " },\n" + + " \"rmr\": {\n" + + " \"protPort\": \"tcp:4560\",\n" + + " \"maxSize\": 65536,\n" + + " \"numWorkers\": 1\n" + + " },\n" + + " \"sbi\": {\n" + + " \"appmgrAddr\": \"service-ricplt-appmgr-http:8080\",\n" + + " \"alertmgrAddr\": \"r4-infrastructure-prometheus-alertmanager:80\",\n" + + " \"timeout\": 30\n" + + " },\n" + + " \"nbi\": {\n" + + " \"schemas\": [\"o-ran-sc-ric-xapp-desc-v1\", \"o-ran-sc-ric-ueec-config-v1\"]\n" + + " },\n" + + " \"controls\": {\n" + + " \"active\": true\n" + + " }\n" + + "}\n" + + "\n" + + "", + "uta_rtg.rt": "newrt|start\n" + + "rte|13111|127.0.0.1:4588\n" + + "rte|13111|127.0.0.1:4560\n" + + "newrt|end\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-o1mediator-appconfig-configmap", + Namespace: "ricplt", + }, + } + + configMap24 := &corev1.ConfigMap{ + Data: map[string]string{ + "RMR_SEED_RT": "/etc/o1agent/uta_rtg.rt", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-o1mediator-env", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "ConfigMap", + APIVersion: "v1", + }, + } + + configMap25 := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "chart": "prometheus-11.3.0", + "component": "alertmanager", + "heritage": "Helm", + "release": "release-name", + "app": "prometheus", + }, + Name: "release-name-prometheus-alertmanager", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "alertmanager.yml": "global:\n" + + " resolve_timeout: 5m\n" + + "receivers:\n" + + "- name: vespa\n" + + " webhook_configs:\n" + + " - url: http://service-ricplt-vespamgr-http:9095/alerts\n" + + "route:\n" + + " group_by:\n" + + " - alertname\n" + + " - severity\n" + + " - instance\n" + + " - job\n" + + " group_interval: 3m\n" + + " group_wait: 5s\n" + + " receiver: vespa\n" + + " repeat_interval: 1h\n" + + " routes:\n" + + " - continue: true\n" + + " receiver: vespa\n" + + "", + }, + } + + configMap26 := &corev1.ConfigMap{ + Data: map[string]string{ + "alerting_rules.yml": "{}\n" + + "", + "alerts": "{}\n" + + "", + "prometheus.yml": "global:\n" + + " evaluation_interval: 1m\n" + + " scrape_interval: 1m\n" + + " scrape_timeout: 10s\n" + + "rule_files:\n" + + "- /etc/config/recording_rules.yml\n" + + "- /etc/config/alerting_rules.yml\n" + + "- /etc/config/rules\n" + + "- /etc/config/alerts\n" + + "scrape_configs:\n" + + "- job_name: prometheus\n" + + " static_configs:\n" + + " - targets:\n" + + " - localhost:9090\n" + + "- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token\n" + + " job_name: kubernetes-apiservers\n" + + " kubernetes_sd_configs:\n" + + " - role: endpoints\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: default;kubernetes;https\n" + + " source_labels:\n" + + " - __meta_kubernetes_namespace\n" + + " - __meta_kubernetes_service_name\n" + + " - __meta_kubernetes_endpoint_port_name\n" + + " scheme: https\n" + + " tls_config:\n" + + " ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt\n" + + " insecure_skip_verify: true\n" + + "- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token\n" + + " job_name: kubernetes-nodes\n" + + " kubernetes_sd_configs:\n" + + " - role: node\n" + + " relabel_configs:\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_node_label_(.+)\n" + + " - replacement: kubernetes.default.svc:443\n" + + " target_label: __address__\n" + + " - regex: (.+)\n" + + " replacement: /api/v1/nodes/$1/proxy/metrics\n" + + " source_labels:\n" + + " - __meta_kubernetes_node_name\n" + + " target_label: __metrics_path__\n" + + " scheme: https\n" + + " tls_config:\n" + + " ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt\n" + + " insecure_skip_verify: true\n" + + "- bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token\n" + + " job_name: kubernetes-nodes-cadvisor\n" + + " kubernetes_sd_configs:\n" + + " - role: node\n" + + " relabel_configs:\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_node_label_(.+)\n" + + " - replacement: kubernetes.default.svc:443\n" + + " target_label: __address__\n" + + " - regex: (.+)\n" + + " replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor\n" + + " source_labels:\n" + + " - __meta_kubernetes_node_name\n" + + " target_label: __metrics_path__\n" + + " scheme: https\n" + + " tls_config:\n" + + " ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt\n" + + " insecure_skip_verify: true\n" + + "- job_name: kubernetes-service-endpoints\n" + + " kubernetes_sd_configs:\n" + + " - role: endpoints\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: true\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_scrape\n" + + " - action: replace\n" + + " regex: (https?)\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_scheme\n" + + " target_label: __scheme__\n" + + " - action: replace\n" + + " regex: (.+)\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_path\n" + + " target_label: __metrics_path__\n" + + " - action: replace\n" + + " regex: ([^:]+)(?::\\d+)?;(\\d+)\n" + + " replacement: $1:$2\n" + + " source_labels:\n" + + " - __address__\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_port\n" + + " target_label: __address__\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_service_label_(.+)\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_namespace\n" + + " target_label: kubernetes_namespace\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_name\n" + + " target_label: kubernetes_name\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_node_name\n" + + " target_label: kubernetes_node\n" + + "- job_name: kubernetes-service-endpoints-slow\n" + + " kubernetes_sd_configs:\n" + + " - role: endpoints\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: true\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_scrape_slow\n" + + " - action: replace\n" + + " regex: (https?)\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_scheme\n" + + " target_label: __scheme__\n" + + " - action: replace\n" + + " regex: (.+)\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_path\n" + + " target_label: __metrics_path__\n" + + " - action: replace\n" + + " regex: ([^:]+)(?::\\d+)?;(\\d+)\n" + + " replacement: $1:$2\n" + + " source_labels:\n" + + " - __address__\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_port\n" + + " target_label: __address__\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_service_label_(.+)\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_namespace\n" + + " target_label: kubernetes_namespace\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_name\n" + + " target_label: kubernetes_name\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_node_name\n" + + " target_label: kubernetes_node\n" + + " scrape_interval: 5m\n" + + " scrape_timeout: 30s\n" + + "- honor_labels: true\n" + + " job_name: prometheus-pushgateway\n" + + " kubernetes_sd_configs:\n" + + " - role: service\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: pushgateway\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_probe\n" + + "- job_name: kubernetes-services\n" + + " kubernetes_sd_configs:\n" + + " - role: service\n" + + " metrics_path: /probe\n" + + " params:\n" + + " module:\n" + + " - http_2xx\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: true\n" + + " source_labels:\n" + + " - __meta_kubernetes_service_annotation_prometheus_io_probe\n" + + " - source_labels:\n" + + " - __address__\n" + + " target_label: __param_target\n" + + " - replacement: blackbox\n" + + " target_label: __address__\n" + + " - source_labels:\n" + + " - __param_target\n" + + " target_label: instance\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_service_label_(.+)\n" + + " - source_labels:\n" + + " - __meta_kubernetes_namespace\n" + + " target_label: kubernetes_namespace\n" + + " - source_labels:\n" + + " - __meta_kubernetes_service_name\n" + + " target_label: kubernetes_name\n" + + "- job_name: kubernetes-pods\n" + + " kubernetes_sd_configs:\n" + + " - role: pod\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: true\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_annotation_prometheus_io_scrape\n" + + " - action: replace\n" + + " regex: (.+)\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_annotation_prometheus_io_path\n" + + " target_label: __metrics_path__\n" + + " - action: replace\n" + + " regex: ([^:]+)(?::\\d+)?;(\\d+)\n" + + " replacement: $1:$2\n" + + " source_labels:\n" + + " - __address__\n" + + " - __meta_kubernetes_pod_annotation_prometheus_io_port\n" + + " target_label: __address__\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_pod_label_(.+)\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_namespace\n" + + " target_label: kubernetes_namespace\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_name\n" + + " target_label: kubernetes_pod_name\n" + + "- job_name: kubernetes-pods-slow\n" + + " kubernetes_sd_configs:\n" + + " - role: pod\n" + + " relabel_configs:\n" + + " - action: keep\n" + + " regex: true\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow\n" + + " - action: replace\n" + + " regex: (.+)\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_annotation_prometheus_io_path\n" + + " target_label: __metrics_path__\n" + + " - action: replace\n" + + " regex: ([^:]+)(?::\\d+)?;(\\d+)\n" + + " replacement: $1:$2\n" + + " source_labels:\n" + + " - __address__\n" + + " - __meta_kubernetes_pod_annotation_prometheus_io_port\n" + + " target_label: __address__\n" + + " - action: labelmap\n" + + " regex: __meta_kubernetes_pod_label_(.+)\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_namespace\n" + + " target_label: kubernetes_namespace\n" + + " - action: replace\n" + + " source_labels:\n" + + " - __meta_kubernetes_pod_name\n" + + " target_label: kubernetes_pod_name\n" + + " scrape_interval: 5m\n" + + " scrape_timeout: 30s\n" + + "alerting:\n" + + " alertmanagers:\n" + + " - kubernetes_sd_configs:\n" + + " - role: pod\n" + + " tls_config:\n" + + " ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt\n" + + " bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token\n" + + " relabel_configs:\n" + + " - source_labels: [__meta_kubernetes_namespace]\n" + + " regex: ricplt\n" + + " action: keep\n" + + " - source_labels: [__meta_kubernetes_pod_label_app]\n" + + " regex: prometheus\n" + + " action: keep\n" + + " - source_labels: [__meta_kubernetes_pod_label_component]\n" + + " regex: alertmanager\n" + + " action: keep\n" + + " - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_probe]\n" + + " regex: .*\n" + + " action: keep\n" + + " - source_labels: [__meta_kubernetes_pod_container_port_number]\n" + + " regex:\n" + + " action: drop\n" + + "", + "recording_rules.yml": "{}\n" + + "", + "rules": "{}\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "chart": "prometheus-11.3.0", + "component": "server", + "heritage": "Helm", + "release": "release-name", + "app": "prometheus", + }, + Name: "release-name-prometheus-server", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap27 := &corev1.ConfigMap{ + Data: map[string]string{ + "update-node.sh": "#!/bin/sh\n" + + "REDIS_NODES=\"/data/nodes.conf\"\n" + + "sed -i -e \"/myself/ s/[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}/${POD_IP}/\" ${REDIS_NODES}\n" + + "exec \"$@\"\n" + + "", + "redis.conf": "cluster-enabled yes\n" + + "cluster-require-full-coverage no\n" + + "cluster-node-timeout 15000\n" + + "cluster-config-file /data/nodes.conf\n" + + "cluster-migration-barrier 1\n" + + "appendonly yes\n" + + "protected-mode no", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "redis-cluster-cm", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap28 := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + Kind: "ConfigMap", + APIVersion: "v1", + }, + Data: map[string]string{ + "placenode.pl": "#!/usr/bin/env perl\n" + + "=head\n" + + "============LICENSE_START=======================================================\n" + + "\n" + + "================================================================================\n" + + "Copyright (C) 2020 Hcl Technologies Limited.\n" + + "================================================================================\n" + + "Licensed under the Apache License, Version 2.0 (the \"License\");\n" + + "you may not use this file except in compliance with the License.\n" + + "You may obtain a copy of the License at\n" + + "\n" + + " http://www.apache.org/licenses/LICENSE-2.0\n" + + "\n" + + "Unless required by applicable law or agreed to in writing, software\n" + + "distributed under the License is distributed on an \"AS IS\" BASIS,\n" + + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + + "See the License for the specific language governing permissions and\n" + + "limitations under the License.\n" + + "============LICENSE_END=========================================================\n" + + "\n" + + "\n" + + "About:\n" + + "\n" + + "This script has been developed as part of https://jira.o-ran-sc.org/browse/RIC-360\n" + + "This script identifies the missing anti-affinity(as per above ticket) of redis instances \n" + + "required in a redis-cluster. If there is an undesired anti-affinity this script can be \n" + + "executed to communicate to redis nodes to switch roles (e.g. master/slave) such that the \n" + + "end-state meets the desired anti-affinity.\n" + + " \n" + + "\n" + + "Pre-requisites: \n" + + "\n" + + " 1) A redis cluster with 3 masters (2 replicas each) deployed on kubernetes 1.18 (or later) \n" + + " 2) Three available worker nodes for serving redis workloads\n" + + " 3) kubectl (with access to the k8 cluster)\n" + + "\n" + + "=cut\n" + + "\n" + + "\n" + + "my $podRow = { \n" + + "\"podIP\" => \"\",\n" + + "\"podName\" => \"\",\n" + + "\"k8Node\" => \"\",\n" + + "\n" + + "\"rdNodeRole\" => \"\",\n" + + "\"rdNodeID\" => \"\",\n" + + "\n" + + "\"rdMasterNodeID\" => \"\",\n" + + "\"slaveIPs\" => [] \n" + + "};\n" + + "\n" + + "# Pod label for redis nodes\n" + + "my $podLabel = $ENV{'POD_LABEL'};\n" + + "\n" + + "my $podTable = [];\n" + + "my $k8NodeInfo = [];\n" + + "\n" + + "setk8NodesInfo();\n" + + "validate();\n" + + "\n" + + "# Master\n" + + "spreadMastersIfRequired();\n" + + "# Slave\n" + + "my $disparity = getSlaveDisparity();\n" + + "spreadSlavesIfRequired();\n" + + "\n" + + "sub validate() {\n" + + " my @masters = map { $_->{'rdNodeRole'} eq 'master' ? $_ : () } @{$podTable};\n" + + " if ( @masters > @{$k8NodeInfo->{allk8Nodes}} ) {\n" + + " print \"Info: Skipping any action as num of master > number of k8 nodes..\\n\";\n" + + " exit;\n" + + " }\n" + + "}\n" + + "\n" + + "\n" + + "sub spreadSlavesIfRequired() {\n" + + " \n" + + "\n" + + " # Get node with maximum disparity first\n" + + " my @disparityMatrix = reverse sort { @{$a} <=> @{$b} } @${disparity}; \n" + + " #@disparityMatrix = grep defined, @disparityMatrix;\n" + + " #@disparityMatrix = map { defined $_ ? $_ : () } @disparityMatrix;\n" + + "\n" + + " # Get list of slaves to be swapped roles.\n" + + " my @slaveSwapList = ();\n" + + " my $maxDisparityPerNode = @{$disparityMatrix[0]};\n" + + "\n" + + " for (my $disparityPass=0; $disparityPass < $maxDisparityPerNode; $disparityPass++) {\n" + + " for (my $k8NodeIndex=0; $k8NodeIndex <= $#{disparityMatrix}; $k8NodeIndex++) {\n" + + " #print \"$disparityMatrix[$disparityPass] && $disparityMatrix[$k8NodeIndex][$disparityPass]\";\n" + + " if ( $disparityMatrix[$disparityPass] && $disparityMatrix[$k8NodeIndex][$disparityPass] ) {\n" + + " push(@slaveSwapList,$disparityMatrix[$k8NodeIndex][$disparityPass]);\n" + + " }\n" + + " }\n" + + " }\n" + + " if ( ! @slaveSwapList ) {\n" + + " print \"Info: No disparity found with slaves.\\n\" if ( @slaveSwapList < 2);\n" + + " exit;\n" + + " } elsif ( @slaveSwapList == 1 ) {\n" + + " print \"Info: single host scenario (with no swap candidate in other k8 nodes) found.\\n\";\n" + + " exit;\n" + + " } else {\n" + + " print \"Info: slave disparity found.\\n\";\n" + + " }\n" + + "\n" + + " # Swap slaves \n" + + " for (my $swapIndex=0; $swapIndex < @slaveSwapList; $swapIndex++) {\n" + + " $pod1 = $slaveSwapList[$swapIndex];\n" + + " $pod2 = $slaveSwapList[++$swapIndex];\n" + + " #print \"Info: Swapping Slaves: \" . join($pod1->{podName}, $pod2->{podName}) . \"\\n\";\n" + + " \n" + + " my $cmd1 = qq[kubectl exec -it ].\n" + + " qq[$pod1->{podName} -- redis-cli -p 6379 cluster replicate $pod2->{rdMasterNodeID} ];\n" + + " \n" + + " my $cmd2 = qq[kubectl exec -it ].\n" + + " qq[$pod2->{podName} -- redis-cli -p 6379 cluster replicate $pod1->{rdMasterNodeID} ];\n" + + "\n" + + " runRediClusterCmd($cmd1);\n" + + " runRediClusterCmd($cmd2);\n" + + " #print \"\\n$cmd1\";\n" + + " #print \"\\n$cmd2\\n\";\n" + + " }\n" + + "\n" + + "}\n" + + "\n" + + "\n" + + "sub getSlaveDisparity() {\n" + + "\n" + + " # Get Slave Disparity Metrix\n" + + " my $disparity = ();\n" + + " my $nodeIndex = 0;\n" + + " foreach my $k8NodeName ( @{$k8NodeInfo->{allk8Nodes}} ) {\n" + + " my @redisNodesOnk8Node = map { $_->{'k8Node'} eq $k8NodeName ? $_ : () } @{$podTable};\n" + + " @redisNodesOnk8Node = sort { $a->{\"rdNodeRole\"} cmp $b->{\"rdNodeRole\"} } @redisNodesOnk8Node;\n" + + "\n" + + " my $master = shift @redisNodesOnk8Node;\n" + + " \n" + + " for (my $index=0; $index <= $#{redisNodesOnk8Node}; $index++ ) {\n" + + " my $slave = $redisNodesOnk8Node[$index];\n" + + " #print \"chekcing for pod: $slave->{podName}\\n\";\n" + + " my $disparityFound = 0;\n" + + " if ( $slave->{rdMasterNodeID} eq $master->{rdNodeID} ) {\n" + + " $disparityFound = 1;\n" + + " } else {\n" + + " #check is other slaves are its sibling\n" + + " for (my $nextIndex=$index + 1; $nextIndex <= $#{redisNodesOnk8Node}; $nextIndex++ ) {\n" + + " if ( $slave->{rdMasterNodeID} eq $redisNodesOnk8Node[$nextIndex]->{rdMasterNodeID} ) {\n" + + " $disparityFound = 1;\n" + + " break;\n" + + " }\n" + + " }\n" + + " }\n" + + " if ($disparityFound) {\n" + + " #$disparity[$nodeIndex][$index] = { 'podName' => $slave->{\"podName\"}, 'rdMasterNodeID' => $slave->{\"rdMasterNodeID\"} } ;\n" + + " push(@{$disparity[$nodeIndex]},{ 'podName' => $slave->{\"podName\"}, 'rdMasterNodeID' => $slave->{\"rdMasterNodeID\"} } ) ;\n" + + " }\n" + + " }\n" + + " $nodeIndex++;\n" + + " }\n" + + " return \\@disparity;\n" + + "}\n" + + "\n" + + "sub spreadMastersIfRequired() {\n" + + "\n" + + " NODE_WITH_NO_MASTER: foreach my $nodeWithoutMaster (@{$k8NodeInfo->{k8NodesWithoutMaster}}) {\n" + + " # For each k8Node without any master \n" + + " # Check for each extra master on its hostNode\n" + + " # Find its slave on the this hostNode (i.e. without any master) \n" + + " # Such slave must be Found for 3x3 set-up:\n" + + " # Then Promote as master # Re-Evaluate\n" + + "\n" + + " # Get All Redis Slaves on This k8 node\n" + + " print \"Info: K8 node without any master : $nodeWithoutMaster\\n\";\n" + + " my @rdSlaveNodes = map { ($_->{'k8Node'} eq $nodeWithoutMaster ) && ($_->{'rdNodeRole'} eq 'slave') ? $_ : () } @{$podTable};\n" + + "\n" + + " foreach my $nodeWithExtraMaster (@{$k8NodeInfo->{k8NodesWithExtraMaster}} ) {\n" + + " print \"Info: k8 Node with extra master : $nodeWithExtraMaster\\n\";\n" + + " #my @rdSlaveNodes = map { ($_->{'k8Node'} eq $nodeWithoutMaster ) && ($_->{'rdNodeRole'} eq 'slave') ? $_ : () } @{$podTable};\n" + + "\n" + + " my @masterInstances = map { ($_->{'k8Node'} eq $nodeWithExtraMaster ) && ($_->{'rdNodeRole'} eq 'master') ? $_ : () } @{$podTable}; \n" + + " foreach my $master (@masterInstances) {\n" + + " my @slave = map { $_->{\"rdMasterNodeID\"} eq $master->{rdNodeID} ? $_ : () } @rdSlaveNodes;\n" + + " if ( @slave ) {\n" + + " promoteSlaveAsMaster($slave[0]);\n" + + " my $isPromoted = 0;\n" + + " my $slaveNodeID= $slave[0]->{rdNodeID};\n" + + " while( ! $isPromoted ) {\n" + + " sleep(8);\n" + + " setk8NodesInfo();\n" + + " my ($promotedNode) = map { $slaveNodeID eq $_->{rdNodeID} ? $_ : () } @{$podTable};\n" + + "\n" + + " if ( $promotedNode->{'rdNodeRole'} ne 'master' ) {\n" + + " print (\"Info: Waiting for node promotion confirmation..\\n\");\n" + + " } else {\n" + + " $isPromoted = 1;\n" + + " print (\"Info: Node promotion confirmed.\\n\");\n" + + " }\n" + + " }\n" + + " next NODE_WITH_NO_MASTER;\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " print \"Info: All redis masters are on separate k8 Nodes. \\n\" if ( ! @{$k8NodeInfo->{k8NodesWithoutMaster}}) ;\n" + + "}\n" + + "\n" + + "sub promoteSlaveAsMaster() {\n" + + " my $slavePod = shift; \n" + + " #print \"Info: Promoting Slave $slavePod->{'podName'} On $slavePod->{'k8Node'} as master\";\n" + + " my $cmd = qq[kubectl exec -it $slavePod->{'podName'} -- redis-cli -p 6379 cluster failover takeover];\n" + + " runRediClusterCmd($cmd);\n" + + " \n" + + "}\n" + + "sub runRediClusterCmd() {\n" + + " my $cmd = shift; \n" + + " print \"Info: Running Cmd:$cmd \\n\";\n" + + " `$cmd;`;\n" + + " sleep(8);\n" + + "}\n" + + "\n" + + "\n" + + "#foreach my $item (@{$podTable}) {\n" + + "#}\n" + + "\n" + + "# find_nodes_without-a-single_master\n" + + "sub setk8NodesInfo() {\n" + + "\n" + + " $podTable = [];\n" + + " $k8NodeInfo = [];\n" + + "\n" + + " getCurrentStatus();\n" + + " # All k8 nodes\n" + + " my @k8NodeList = uniq(map { $_->{'k8Node'} } @$podTable);\n" + + "\n" + + " # Find Nodes with At least One master\n" + + " my @k8NodesWithMaster;\n" + + " foreach my $nodeName (@k8NodeList) {\n" + + " push(@k8NodesWithMaster, map { ($_->{'k8Node'} eq $nodeName) && ($_->{'rdNodeRole'} eq 'master') ? $nodeName : () } @{$podTable} );\n" + + " }\n" + + "\n" + + " # Find Nodes without any master = All nodes - Nodes with at least one Master\n" + + " my %k8NodesMap = ();\n" + + " foreach (@k8NodesWithMaster) { \n" + + " if ( exists $k8NodesMap{$_} ) {\n" + + " $k8NodesMap{$_}++;\n" + + " } else {\n" + + " $k8NodesMap{$_} = 1;\n" + + " }\n" + + " }\n" + + " my @k8NodesWithoutMaster = map { exists $k8NodesMap{$_} ? () : $_ } @k8NodeList;\n" + + " my @k8NodesWithExtraMaster = uniq(map { $k8NodesMap{$_} > 1 ? $_ : () } @k8NodesWithMaster);\n" + + "\n" + + " $k8NodeInfo = { 'allk8Nodes' => \\@k8NodeList, 'k8NodesWithExtraMaster' => \\@k8NodesWithExtraMaster, 'k8NodesWithoutMaster' => \\@k8NodesWithoutMaster };\n" + + "}\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "\n" + + "# Validate if number of masters ,= number of rea\n" + + "\n" + + "#\n" + + "#sub filter\n" + + "\n" + + "=head\n" + + "get \n" + + "podName where k8Node eq \"x\"\n" + + " get position of k8node eq x \n" + + "where \n" + + "=cut\n" + + "\n" + + "exit;\n" + + "\n" + + "sub uniq {\n" + + " my %seen;\n" + + " grep !$seen{$_}++, @_;\n" + + "}\n" + + "\n" + + "sub getCurrentStatus() {\n" + + "\n" + + " # Run pod list command \n" + + " my @getPods = `kubectl get po --no-headers -o wide -l $podLabel |grep Running`; chomp @getPods;\n" + + " #my @getPods = `kubectl get po --no-headers -o wide -l managed-by=redis-cluster-operator|grep Running`; chomp @getPods;\n" + + "\n" + + " foreach my $podLine (@getPods) {\n" + + " my @podData = split(/\\s+/,$podLine);\n" + + " my ($podName,$status,$age,$podIP,$podNode) = ($podData[0], $podData[2], $podData[4], $podData[5],$podData[6]);\n" + + "\n" + + " #print \"$podName,$status,$age,$podIP,$podNode\" .\"\\n\"; \n" + + " my $podRow = { 'podIP' => $podIP, 'podName' => $podName, 'k8Node' => $podNode, 'podAge' => $age, 'podStatus' => $status }; \n" + + " push (@{$podTable},$podRow)\n" + + " }\n" + + "\n" + + " my $podName = $podTable->[0]{'podName'};\n" + + " #print \"Info:kubectl exec $podName -- cat nodes.conf|sort -k3\\n\";\n" + + " my @rdNodeData = `kubectl exec $podName -- cat nodes.conf|sort -k3`; chomp @rdNodeData;\n" + + " foreach my $rdNodeLine (@rdNodeData) {\n" + + " next if ($rdNodeLine !~ /master|slave/);\n" + + " my @rdNodeData = split(/\\s+/,$rdNodeLine);\n" + + " my ($rdNodeID,$rdRole,$rdMasterNodeID,$epoch) = ($rdNodeData[0], $rdNodeData[2], $rdNodeData[3],$rdNodeData[5]);\n" + + " my ($podIP) = split(/:/,$rdNodeData[1]);\n" + + " $rdRole =~ s/myself,//;\n" + + "\n" + + " #print \"$rdNodeID,$rdRole,$rdMasterNodeID,$podIP\" .\"\\n\";\n" + + " my $rdElem = { 'podIP' => $podIP, \n" + + " 'rdNodeID' => $rdNodeID,\n" + + " 'rdRole' => $rdRole,\n" + + " 'rdMasterNodeID' => $rdMasterNodeID,\n" + + " 'epoch' => $epoch\n" + + " };\n" + + "\n" + + " for(my $index=0; $index <= $#{$podTable}; $index++) {\n" + + " if ( $podTable->[$index]{'podIP'} eq $podIP ) {\n" + + " #print \"Matched\\n\";\n" + + " $podTable->[$index]{'rdNodeID'} = $rdNodeID;\n" + + " $podTable->[$index]{'rdNodeRole'} = $rdRole;\n" + + " $podTable->[$index]{'rdMasterNodeID'} = $rdMasterNodeID;\n" + + " $podTable->[$index]{'epoch'} = $epoch;\n" + + " }\n" + + " }\n" + + " #exit;\n" + + "\n" + + " }\n" + + "}\n" + + "", + "relatenode.sh": "#!/bin/sh\n" + + "podLabel=${POD_LABEL}\n" + + "firstPod=$(kubectl get po -o wide -l app.kubernetes.io/name=redis-cluster --no-headers=true|head -1|cut -d\" \" -f1)\n" + + "\n" + + "kubectl get po -o wide -l $podLabel |tail +2|awk '{printf(\"%s:%s:%s:%s\\n\",$6,$1,$7,$10)}'|sort > /tmp/1.txt\n" + + "kubectl exec $firstPod -- cat nodes.conf|sed 's/myself,//'|awk '/master|slave/ {print $2,$1,$3,$4}'|sort > /tmp/2.txt\n" + + "join -t \":\" /tmp/1.txt /tmp/2.txt |sort -k3,4 | sed 's/ /:/g'|awk -F\":\" '{print $2,$7,$3,$1,$4,$6,$8}' > /tmp/3.txt\n" + + "\n" + + "echo \"\\n POD_NAME ROLE k8NODE POD_IP REDIS_NODE_ID REDIS_MASTER_NODE_ID\"\n" + + "grep $(cut -d\" \" -f4 /tmp/2.txt|sort -u|grep -v \"-\"|sed -n '1p') /tmp/3.txt\n" + + "echo \"\"\n" + + "grep $(cut -d\" \" -f4 /tmp/2.txt|sort -u|grep -v \"-\"|sed -n '2p') /tmp/3.txt\n" + + "echo \"\"\n" + + "grep $(cut -d\" \" -f4 /tmp/2.txt|sort -u|grep -v \"-\"|sed -n '3p') /tmp/3.txt", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "assigner-cm", + }, + } + + configMap29 := &corev1.ConfigMap{ + Data: map[string]string{ + "rmr_verbose": "0\n" + + "", + "router.txt": "newrt|start\n" + + "rte|10090|service-ricplt-e2term-rmr.ricplt:38000\n" + + "newrt|end", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-rsm-router-configmap", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap30 := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-rsm", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "configuration.yaml": "logging:\n" + + " logLevel: \"info\"\n" + + "http:\n" + + " port: 4800\n" + + "rmr:\n" + + " port: 4801\n" + + " maxMsgSize: 4096\n" + + " readyIntervalSec: 1\n" + + "rnib:\n" + + " maxRnibConnectionAttempts: 3\n" + + " rnibRetryIntervalMs: 10", + }, + } + + configMap31 := &corev1.ConfigMap{ + Data: map[string]string{ + "RMR_RTG_SVC": "4561", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-rsm-env", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap32 := &corev1.ConfigMap{ + Data: map[string]string{ + "rtmgrcfg": "\"PlatformComponents\":\n" + + " -\n" + + " \"name\": \"SUBMAN\"\n" + + " \"fqdn\": \"service-ricplt-submgr-rmr.ricplt\"\n" + + " \"port\": 4560\n" + + " -\n" + + " \"name\": \"E2MAN\"\n" + + " \"fqdn\": \"service-ricplt-e2mgr-rmr.ricplt\"\n" + + " \"port\": 3801\n" + + " -\n" + + " \"name\": \"A1MEDIATOR\"\n" + + " \"fqdn\": \"service-ricplt-a1mediator-rmr.ricplt\"\n" + + " \"port\": 4562\n" + + "\n" + + "\"XMURL\":\n" + + " \"http://service-ricplt-appmgr-http:8080/ric/v1/xapps\"\n" + + "\"E2MURL\":\n" + + " \"http://service-ricplt-e2mgr-http:3800/v1/e2t/list\"\n" + + "\"RTFILE\":\n" + + " \"/db/rt.json\"\n" + + "\"CFGFILE\":\n" + + " \"/cfg/rtmgr-config.yaml\"\n" + + "\"RPE\":\n" + + " \"rmrpush\"\n" + + "\"SBI\":\n" + + " \"rmrpush\"\n" + + "\"SBIURL\":\n" + + " \"0.0.0.0\"\n" + + "\"NBI\":\n" + + " \"httpRESTful\"\n" + + "\"NBIURL\":\n" + + " \"http://service-ricplt-rtmgr-http:3800\"\n" + + "\"SDL\":\n" + + " \"file\"\n" + + "\"local\":\n" + + " \"host\": \":8080\"\n" + + "\"logger\":\n" + + " \"level\": 4\n" + + "\"periodicRoutes\":\n" + + " \"enable\" \n" + + "\"rmr\":\n" + + " \"protPort\": \"tcp:4560\"\n" + + " \"maxSize\": 1024\n" + + " \"numWorkers\": 1\n" + + " \"threadType\": 1\n" + + "\"messagetypes\": [\n" + + " \"RIC_HEALTH_CHECK_REQ=100\",\n" + + " \"RIC_HEALTH_CHECK_RESP=101\",\n" + + " \"RIC_ALARM=110\",\n" + + " \"RIC_ALARM_QUERY=111\",\n" + + " \"RIC_SCTP_CONNECTION_FAILURE=1080\",\n" + + " \"E2_TERM_INIT=1100\",\n" + + " \"E2_TERM_KEEP_ALIVE_REQ=1101\",\n" + + " \"E2_TERM_KEEP_ALIVE_RESP=1102\",\n" + + " \"RIC_SCTP_CLEAR_ALL=1090\",\n" + + " \"RAN_CONNECTED=1200\",\n" + + " \"RAN_RESTARTED=1210\",\n" + + " \"RAN_RECONFIGURED=1220\",\n" + + " \"RIC_ENB_LOAD_INFORMATION=10020\",\n" + + " \"RIC_SN_STATUS_TRANSFER=10040\",\n" + + " \"RIC_UE_CONTEXT_RELEASE=10050\",\n" + + " \"RIC_X2_SETUP_REQ=10060\",\n" + + " \"RIC_X2_SETUP_RESP=10061\",\n" + + " \"RIC_X2_SETUP_FAILURE=10062\",\n" + + " \"RIC_X2_RESET=10070\",\n" + + " \"RIC_X2_RESET_RESP=10071\",\n" + + " \"RIC_ENB_CONF_UPDATE=10080\",\n" + + " \"RIC_ENB_CONF_UPDATE_ACK=10081\",\n" + + " \"RIC_ENB_CONF_UPDATE_FAILURE=10082\",\n" + + " \"RIC_RES_STATUS_REQ=10090\",\n" + + " \"RIC_RES_STATUS_RESP=10091\",\n" + + " \"RIC_RES_STATUS_FAILURE=10092\",\n" + + " \"RIC_SGNB_ADDITION_REQ=10270\",\n" + + " \"RIC_SGNB_ADDITION_ACK=10271\",\n" + + " \"RIC_SGNB_ADDITION_REJECT=10272\",\n" + + " \"RIC_SGNB_RECONF_COMPLETE=10280\",\n" + + " \"RIC_SGNB_MOD_REQUEST=10290\",\n" + + " \"RIC_SGNB_MOD_REQUEST_ACK=10291\",\n" + + " \"RIC_SGNB_MOD_REQUEST_REJ=10292\",\n" + + " \"RIC_SGNB_MOD_REQUIRED=10300\",\n" + + " \"RIC_SGNB_MOD_CONFIRM=10301\",\n" + + " \"RIC_SGNB_MOD_REFUSE=10302\",\n" + + " \"RIC_SGNB_RELEASE_REQUEST=10310\",\n" + + " \"RIC_SGNB_RELEASE_REQUEST_ACK=10311\",\n" + + " \"RIC_SGNB_RELEASE_REQUIRED=10320\",\n" + + " \"RIC_SGNB_RELEASE_CONFIRM=10321\",\n" + + " \"RIC_RRC_TRANSFER=10350\",\n" + + " \"RIC_ENDC_X2_SETUP_REQ=10360\",\n" + + " \"RIC_ENDC_X2_SETUP_RESP=10361\",\n" + + " \"RIC_ENDC_X2_SETUP_FAILURE=10362\",\n" + + " \"RIC_ENDC_CONF_UPDATE=10370\",\n" + + " \"RIC_ENDC_CONF_UPDATE_ACK=10371\",\n" + + " \"RIC_ENDC_CONF_UPDATE_FAILURE=10372\",\n" + + " \"RIC_SECONDARY_RAT_DATA_USAGE_REPORT=10380\",\n" + + " \"RIC_E2_SETUP_REQ=12001\",\n" + + " \"RIC_E2_SETUP_RESP=12002\",\n" + + " \"RIC_E2_SETUP_FAILURE=12003\",\n" + + " \"RIC_ERROR_INDICATION=12007\",\n" + + " \"RIC_SUB_REQ=12010\",\n" + + " \"RIC_SUB_RESP=12011\",\n" + + " \"RIC_SUB_FAILURE=12012\",\n" + + " \"RIC_SUB_DEL_REQ=12020\",\n" + + " \"RIC_SUB_DEL_RESP=12021\",\n" + + " \"RIC_SUB_DEL_FAILURE=12022\",\n" + + " \"RIC_SUB_DEL_REQUIRED=12023\",\n" + + " \"RIC_CONTROL_REQ=12040\",\n" + + " \"RIC_CONTROL_ACK=12041\",\n" + + " \"RIC_CONTROL_FAILURE=12042\",\n" + + " \"RIC_INDICATION=12050\",\n" + + " \"A1_POLICY_REQ=20010\",\n" + + " \"A1_POLICY_RESP=20011\",\n" + + " \"A1_POLICY_QUERY=20012\",\n" + + " \"TS_UE_LIST=30000\",\n" + + " \"TS_QOE_PRED_REQ=30001\",\n" + + " \"TS_QOE_PREDICTION=30002\",\n" + + " \"TS_ANOMALY_UPDATE=30003\",\n" + + " \"TS_ANOMALY_ACK=30004\",\n" + + " \"MC_REPORT=30010\",\n" + + " \"DCAPTERM_RTPM_RMR_MSGTYPE=33001\",\n" + + " \"DCAPTERM_GEO_RMR_MSGTYPE=33002\",\n" + + " \"RIC_SERVICE_UPDATE=12030\",\n" + + " \"RIC_SERVICE_UPDATE_ACK=12031\",\n" + + " \"RIC_SERVICE_UPDATE_FAILURE=12032\",\n" + + " \"RIC_E2NODE_CONFIG_UPDATE=12070\",\n" + + " \"RIC_E2NODE_CONFIG_UPDATE_ACK==12071\",\n" + + " \"RIC_E2NODE_CONFIG_UPDATE_FAILURE=12072\",\n" + + " \"RIC_E2_RESET_REQ=12004\",\n" + + " \"RIC_E2_RESET_RESP=12005\",\n" + + " ]\n" + + "\n" + + "\"PlatformRoutes\": [\n" + + " { 'messagetype': 'RIC_SUB_REQ', 'senderendpoint': 'SUBMAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_SUB_DEL_REQ', 'senderendpoint': 'SUBMAN', 'subscriptionid': -1,'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_SUB_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'SUBMAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_SUB_DEL_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'SUBMAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_SUB_FAILURE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'SUBMAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_SUB_DEL_FAILURE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'SUBMAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_SUB_DEL_REQUIRED', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'SUBMAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_X2_SETUP_REQ', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_X2_RESET', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_X2_RESET_RESP', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_ENDC_X2_SETUP_REQ', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_ENB_CONF_UPDATE_ACK', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_ENB_CONF_UPDATE_FAILURE', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_ENDC_CONF_UPDATE_ACK', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_ENDC_CONF_UPDATE_FAILURE', 'senderendpoint': 'E2MAN', 'subscriptionid': -1, 'endpoint': '', 'meid': '%meid'},\n" + + " { 'messagetype': 'RIC_E2_SETUP_REQ', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'E2_TERM_INIT', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_X2_SETUP_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_X2_SETUP_FAILURE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_X2_RESET', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_X2_RESET_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_ENDC_X2_SETUP_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_ENDC_X2_SETUP_FAILURE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_ENDC_CONF_UPDATE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_SCTP_CONNECTION_FAILURE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_ERROR_INDICATION', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_ENB_CONF_UPDATE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_ENB_LOAD_INFORMATION', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'E2_TERM_KEEP_ALIVE_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'A1_POLICY_QUERY', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'A1MEDIATOR', 'meid': ''},\n" + + " { 'messagetype': 'A1_POLICY_RESP', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'A1MEDIATOR', 'meid': ''},\n" + + " { 'messagetype': 'RIC_SERVICE_UPDATE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_E2NODE_CONFIG_UPDATE', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " { 'messagetype': 'RIC_E2_RESET_REQ', 'senderendpoint': '', 'subscriptionid': -1, 'endpoint': 'E2MAN', 'meid': ''},\n" + + " ]\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-rtmgr-rtmgrcfg", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } + + configMap33 := &corev1.ConfigMap{ + Data: map[string]string{ + "CFGFILE": "/cfg/rtmgr-config.yaml", + "RMR_RTG_SVC": "4561", + "RMR_SEED_RT": "/uta_rtg_ric.rt", + "RMR_SRC_ID": "service-ricplt-rtmgr-rmr.ricplt", + "XMURL": "http://service-ricplt-appmgr-http:8080/ric/v1/xapps", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-rtmgr-env", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "ConfigMap", + APIVersion: "v1", + }, + } + + configMap34 := &corev1.ConfigMap{ + Data: map[string]string{ + "submgrcfg": "\"local\":\n" + + " \"host\": \":8080\"\n" + + "\"logger\":\n" + + " \"level\": 3\n" + + "\"rmr\":\n" + + " \"protPort\" : \"tcp:4560\"\n" + + " \"maxSize\": 8192\n" + + " \"numWorkers\": 1\n" + + "\"rtmgr\":\n" + + " \"hostAddr\": \"service-ricplt-rtmgr-http\"\n" + + " \"port\" : 3800\n" + + " \"baseUrl\" : \"/ric/v1\"\n" + + "\"db\":\n" + + " \"sessionNamespace\": \"XMSession\"\n" + + " \"host\": \":6379\"\n" + + " \"prot\": \"tcp\"\n" + + " \"maxIdle\": 80\n" + + " \"maxActive\": 12000\n" + + "\"controls\":\n" + + " \"e2tSubReqTimeout_ms\": 2000\n" + + " \"e2tSubDelReqTime_ms\": 2000\n" + + " \"e2tRecvMsgTimeout_ms\": 2000\n" + + " \"e2tMaxSubReqTryCount\": 2\n" + + " \"e2tMaxSubDelReqTryCount\": 2\n" + + " \"checkE2State\": \"true\"\n" + + " \"readSubsFromDb\": \"true\"\n" + + " \"dbTryCount\": 200\n" + + " \"dbRetryForever\": \"true\"\n" + + " \"waitRouteCleanup_ms\": 5000\n" + + "", + "submgrutartg": "newrt|start\n" + + "newrt|end\n" + + "", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "submgrcfg", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "ConfigMap", + APIVersion: "v1", + }, + } + + configMap35 := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "SUBMGR_SEED_SN": "1", + "CFG_FILE": "/cfg/submgr-config.yaml", + "RMR_RTG_SVC": "4561", + "RMR_SEED_RT": "/cfg/submgr-uta-rtg.rt", + "RMR_SRC_ID": "service-ricplt-submgr-rmr.ricplt", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-submgr-env", + }, + } + + configMap36 := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-vespamgr", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "VESMGR_PRICOLLECTOR_SECURE": "false", + "VESMGR_PRICOLLECTOR_SERVERROOT": "/vescollector", + "VESMGR_ALERTMANAGER_BIND_ADDR": ":9095", + "VESMGR_PRICOLLECTOR_PASSWORD": "sample1", + "VESMGR_PRICOLLECTOR_ADDR": "aux-entry", + "VESMGR_PRICOLLECTOR_PORT": "8443", + "VESMGR_PRICOLLECTOR_USER": "sample1", + "VESMGR_PROMETHEUS_ADDR": "http://r4-infrastructure-prometheus-server.ricplt", + "VESMGR_HB_INTERVAL": "60s", + "VESMGR_MEAS_INTERVAL": "30s", + }, + } + + configMap37 := &corev1.ConfigMap{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + Data: map[string]string{ + "DEBUG": "true", + "PORT": "8080", + "STORAGE": "local", + "STORAGE_LOCAL_ROOTDIR": "/charts", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-xapp-onboarder-chartmuseum-env", + }, + } + + configMap38 := &corev1.ConfigMap{ + Data: map[string]string{ + "CHART_REPO_URL": "http://0.0.0.0:8080", + "CHART_WORKSPACE_PATH": "/tmp/xapp-onboarder", + "HTTP_RETRY": "3", + "MOCK_TEST_HELM_REPO_TEMP_DIR": "/tmp/mock_helm_repo", + "ALLOW_REDEPLOY": "True", + "CHART_WORKSPACE_SIZE": "500MB", + "FLASK_DEBUG": "False", + "FLASK_PORT": "8888", + "HELM_VERSION": "2.12.3", + "MOCK_TEST_MODE": "False", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "configmap-ricplt-xapp-onboarder-env", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ConfigMap", + }, + } - return []*corev1.ConfigMap{configMap1, configMap2, configMap3, configMap4, configMap5, configMap6,configMap7, configMap8, configMap9, configMap10, configMap11, configMap12, configMap13, configMap14, configMap15, configMap16, configMap17, configMap18, configMap19} + return []*corev1.ConfigMap{configMap1, configMap2, configMap3, configMap4, configMap5, configMap6, configMap7, configMap8, configMap9, configMap10, configMap11, configMap12, configMap13, configMap14, configMap15, configMap16, configMap17, configMap18, configMap19, configMap20, configMap21, configMap22, configMap23, configMap24, configMap25, configMap26, configMap27, configMap28, configMap29, configMap30, configMap31, configMap32, configMap33, configMap34, configMap35, configMap36, configMap37, configMap38} } diff --git a/depRicKubernetesOperator/internal/controller/getCustomResourceDefinition.go b/depRicKubernetesOperator/internal/controller/getCustomResourceDefinition.go new file mode 100644 index 0000000..cde8a44 --- /dev/null +++ b/depRicKubernetesOperator/internal/controller/getCustomResourceDefinition.go @@ -0,0 +1,989 @@ +package controller + +import ( + "context" + "fmt" +) + +func GetCustomResourceDefinition() []*unstructured.Unstructured { + + customResourceDefinition1 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + "name": "kongconsumers.configuration.konghq.com", + }, + "spec": map[string]interface{}{ + "group": "configuration.konghq.com", + "names": map[string]interface{}{ + "kind": "KongConsumer", + "plural": "kongconsumers", + "shortNames": []interface{}{ + "kc", + }, + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "credentials": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + }, + "type": "array", + }, + "custom_id": map[string]interface{}{ + "type": "string", + }, + "username": map[string]interface{}{ + "type": "string", + }, + }, + }, + }, + "version": "v1", + "additionalPrinterColumns": []interface{}{ + map[string]interface{}{ + "JSONPath": ".username", + "description": "Username of a Kong Consumer", + "name": "Username", + "type": "string", + }, + map[string]interface{}{ + "type": "date", + "JSONPath": ".metadata.creationTimestamp", + "description": "Age", + "name": "Age", + }, + }, + }, + }, + } + + customResourceDefinition2 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + "name": "kongcredentials.configuration.konghq.com", + }, + "spec": map[string]interface{}{ + "version": "v1", + "additionalPrinterColumns": []interface{}{ + map[string]interface{}{ + "JSONPath": ".type", + "description": "Type of credential", + "name": "Credential-type", + "type": "string", + }, + map[string]interface{}{ + "JSONPath": ".metadata.creationTimestamp", + "description": "Age", + "name": "Age", + "type": "date", + }, + map[string]interface{}{ + "type": "string", + "JSONPath": ".consumerRef", + "description": "Owner of the credential", + "name": "Consumer-Ref", + }, + }, + "group": "configuration.konghq.com", + "names": map[string]interface{}{ + "kind": "KongCredential", + "plural": "kongcredentials", + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "consumerRef": map[string]interface{}{ + "type": "string", + }, + "type": map[string]interface{}{ + "type": "string", + }, + }, + "required": []interface{}{ + "consumerRef", + "type", + }, + }, + }, + }, + }, + } + + customResourceDefinition3 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "spec": map[string]interface{}{ + "names": map[string]interface{}{ + "kind": "KongPlugin", + "plural": "kongplugins", + "shortNames": []interface{}{ + "kp", + }, + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "protocols": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + "enum": []interface{}{ + "http", + "https", + "tcp", + "tls", + "grpc", + "grpcs", + }, + }, + "type": "array", + }, + "run_on": map[string]interface{}{ + "enum": []interface{}{ + "first", + "second", + "all", + }, + "type": "string", + }, + "config": map[string]interface{}{ + "type": "object", + }, + "disabled": map[string]interface{}{ + "type": "boolean", + }, + "plugin": map[string]interface{}{ + "type": "string", + }, + }, + "required": []interface{}{ + "plugin", + }, + }, + }, + "version": "v1", + "additionalPrinterColumns": []interface{}{ + map[string]interface{}{ + "JSONPath": ".plugin", + "description": "Name of the plugin", + "name": "Plugin-Type", + "type": "string", + }, + map[string]interface{}{ + "description": "Age", + "name": "Age", + "type": "date", + "JSONPath": ".metadata.creationTimestamp", + }, + map[string]interface{}{ + "JSONPath": ".disabled", + "description": "Indicates if the plugin is disabled", + "name": "Disabled", + "priority": 1, + "type": "boolean", + }, + map[string]interface{}{ + "JSONPath": ".config", + "description": "Configuration of the plugin", + "name": "Config", + "priority": 1, + "type": "string", + }, + }, + "group": "configuration.konghq.com", + }, + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + "name": "kongplugins.configuration.konghq.com", + }, + }, + } + + customResourceDefinition4 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "spec": map[string]interface{}{ + "version": "v1", + "group": "configuration.konghq.com", + "names": map[string]interface{}{ + "plural": "kongingresses", + "shortNames": []interface{}{ + "ki", + }, + "kind": "KongIngress", + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "upstream": map[string]interface{}{ + "properties": map[string]interface{}{ + "hash_fallback_header": map[string]interface{}{ + "type": "string", + }, + "hash_on": map[string]interface{}{ + "type": "string", + }, + "hash_on_cookie": map[string]interface{}{ + "type": "string", + }, + "hash_on_cookie_path": map[string]interface{}{ + "type": "string", + }, + "healthchecks": map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{ + "passive": map[string]interface{}{ + "properties": map[string]interface{}{ + "healthy": map[string]interface{}{ + "properties": map[string]interface{}{ + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "successes": map[string]interface{}{ + "type": "integer", + "minimum": 0, + }, + }, + "type": "object", + }, + "unhealthy": map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{ + "timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "http_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "tcp_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + }, + }, + "type": "object", + }, + "active": map[string]interface{}{ + "properties": map[string]interface{}{ + "concurrency": map[string]interface{}{ + "minimum": 1, + "type": "integer", + }, + "healthy": map[string]interface{}{ + "properties": map[string]interface{}{ + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "successes": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + "type": "object", + }, + "http_path": map[string]interface{}{ + "pattern": "^/.*$", + "type": "string", + }, + "timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "unhealthy": map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{ + "timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "http_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "tcp_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + }, + }, + "type": "object", + }, + }, + }, + "slots": map[string]interface{}{ + "minimum": 10, + "type": "integer", + }, + "algorithm": map[string]interface{}{ + "enum": []interface{}{ + "round-robin", + "consistent-hashing", + "least-connections", + }, + "type": "string", + }, + "hash_fallback": map[string]interface{}{ + "type": "string", + }, + "hash_on_header": map[string]interface{}{ + "type": "string", + }, + "host_header": map[string]interface{}{ + "type": "string", + }, + }, + "type": "object", + }, + "proxy": map[string]interface{}{ + "properties": map[string]interface{}{ + "connect_timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "path": map[string]interface{}{ + "pattern": "^/.*$", + "type": "string", + }, + "protocol": map[string]interface{}{ + "enum": []interface{}{ + "http", + "https", + "grpc", + "grpcs", + }, + "type": "string", + }, + "read_timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "retries": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "write_timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + "type": "object", + }, + "route": map[string]interface{}{ + "properties": map[string]interface{}{ + "protocols": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + "enum": []interface{}{ + "http", + "https", + "grpc", + "grpcs", + }, + }, + "type": "array", + }, + "regex_priority": map[string]interface{}{ + "type": "integer", + }, + "strip_path": map[string]interface{}{ + "type": "boolean", + }, + "headers": map[string]interface{}{ + "additionalProperties": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + }, + "type": "array", + }, + "type": "object", + }, + "https_redirect_status_code": map[string]interface{}{ + "type": "integer", + }, + "methods": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + }, + "type": "array", + }, + "preserve_host": map[string]interface{}{ + "type": "boolean", + }, + }, + }, + }, + }, + }, + }, + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + }, + "name": "kongingresses.configuration.konghq.com", + }, + }, + } + + customResourceDefinition5 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + "name": "kongconsumers.configuration.konghq.com", + }, + "spec": map[string]interface{}{ + "group": "configuration.konghq.com", + "names": map[string]interface{}{ + "kind": "KongConsumer", + "plural": "kongconsumers", + "shortNames": []interface{}{ + "kc", + }, + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "credentials": map[string]interface{}{ + "type": "array", + "items": map[string]interface{}{ + "type": "string", + }, + }, + "custom_id": map[string]interface{}{ + "type": "string", + }, + "username": map[string]interface{}{ + "type": "string", + }, + }, + }, + }, + "version": "v1", + "additionalPrinterColumns": []interface{}{ + map[string]interface{}{ + "JSONPath": ".username", + "description": "Username of a Kong Consumer", + "name": "Username", + "type": "string", + }, + map[string]interface{}{ + "JSONPath": ".metadata.creationTimestamp", + "description": "Age", + "name": "Age", + "type": "date", + }, + }, + }, + }, + } + + customResourceDefinition6 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + }, + "name": "kongcredentials.configuration.konghq.com", + }, + "spec": map[string]interface{}{ + "additionalPrinterColumns": []interface{}{ + map[string]interface{}{ + "JSONPath": ".type", + "description": "Type of credential", + "name": "Credential-type", + "type": "string", + }, + map[string]interface{}{ + "description": "Age", + "name": "Age", + "type": "date", + "JSONPath": ".metadata.creationTimestamp", + }, + map[string]interface{}{ + "JSONPath": ".consumerRef", + "description": "Owner of the credential", + "name": "Consumer-Ref", + "type": "string", + }, + }, + "group": "configuration.konghq.com", + "names": map[string]interface{}{ + "kind": "KongCredential", + "plural": "kongcredentials", + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "consumerRef": map[string]interface{}{ + "type": "string", + }, + "type": map[string]interface{}{ + "type": "string", + }, + }, + "required": []interface{}{ + "consumerRef", + "type", + }, + }, + }, + "version": "v1", + }, + }, + } + + customResourceDefinition7 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + "name": "kongplugins.configuration.konghq.com", + }, + "spec": map[string]interface{}{ + "names": map[string]interface{}{ + "kind": "KongPlugin", + "plural": "kongplugins", + "shortNames": []interface{}{ + "kp", + }, + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "config": map[string]interface{}{ + "type": "object", + }, + "disabled": map[string]interface{}{ + "type": "boolean", + }, + "plugin": map[string]interface{}{ + "type": "string", + }, + "protocols": map[string]interface{}{ + "items": map[string]interface{}{ + "enum": []interface{}{ + "http", + "https", + "tcp", + "tls", + "grpc", + "grpcs", + }, + "type": "string", + }, + "type": "array", + }, + "run_on": map[string]interface{}{ + "type": "string", + "enum": []interface{}{ + "first", + "second", + "all", + }, + }, + }, + "required": []interface{}{ + "plugin", + }, + }, + }, + "version": "v1", + "additionalPrinterColumns": []interface{}{ + map[string]interface{}{ + "description": "Name of the plugin", + "name": "Plugin-Type", + "type": "string", + "JSONPath": ".plugin", + }, + map[string]interface{}{ + "description": "Age", + "name": "Age", + "type": "date", + "JSONPath": ".metadata.creationTimestamp", + }, + map[string]interface{}{ + "priority": 1, + "type": "boolean", + "JSONPath": ".disabled", + "description": "Indicates if the plugin is disabled", + "name": "Disabled", + }, + map[string]interface{}{ + "JSONPath": ".config", + "description": "Configuration of the plugin", + "name": "Config", + "priority": 1, + "type": "string", + }, + }, + "group": "configuration.konghq.com", + }, + }, + } + + customResourceDefinition8 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "apiextensions.k8s.io/v1beta1", + "kind": "CustomResourceDefinition", + "metadata": map[string]interface{}{ + "labels": map[string]interface{}{ + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + }, + "name": "kongingresses.configuration.konghq.com", + }, + "spec": map[string]interface{}{ + "group": "configuration.konghq.com", + "names": map[string]interface{}{ + "plural": "kongingresses", + "shortNames": []interface{}{ + "ki", + }, + "kind": "KongIngress", + }, + "scope": "Namespaced", + "validation": map[string]interface{}{ + "openAPIV3Schema": map[string]interface{}{ + "properties": map[string]interface{}{ + "proxy": map[string]interface{}{ + "properties": map[string]interface{}{ + "path": map[string]interface{}{ + "pattern": "^/.*$", + "type": "string", + }, + "protocol": map[string]interface{}{ + "type": "string", + "enum": []interface{}{ + "http", + "https", + "grpc", + "grpcs", + }, + }, + "read_timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "retries": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "write_timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "connect_timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + "type": "object", + }, + "route": map[string]interface{}{ + "properties": map[string]interface{}{ + "https_redirect_status_code": map[string]interface{}{ + "type": "integer", + }, + "methods": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + }, + "type": "array", + }, + "preserve_host": map[string]interface{}{ + "type": "boolean", + }, + "protocols": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + "enum": []interface{}{ + "http", + "https", + "grpc", + "grpcs", + }, + }, + "type": "array", + }, + "regex_priority": map[string]interface{}{ + "type": "integer", + }, + "strip_path": map[string]interface{}{ + "type": "boolean", + }, + "headers": map[string]interface{}{ + "additionalProperties": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "string", + }, + "type": "array", + }, + "type": "object", + }, + }, + }, + "upstream": map[string]interface{}{ + "properties": map[string]interface{}{ + "algorithm": map[string]interface{}{ + "enum": []interface{}{ + "round-robin", + "consistent-hashing", + "least-connections", + }, + "type": "string", + }, + "hash_fallback_header": map[string]interface{}{ + "type": "string", + }, + "hash_on_cookie": map[string]interface{}{ + "type": "string", + }, + "hash_on_cookie_path": map[string]interface{}{ + "type": "string", + }, + "host_header": map[string]interface{}{ + "type": "string", + }, + "hash_fallback": map[string]interface{}{ + "type": "string", + }, + "hash_on": map[string]interface{}{ + "type": "string", + }, + "hash_on_header": map[string]interface{}{ + "type": "string", + }, + "healthchecks": map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{ + "active": map[string]interface{}{ + "properties": map[string]interface{}{ + "timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "unhealthy": map[string]interface{}{ + "properties": map[string]interface{}{ + "http_failures": map[string]interface{}{ + "type": "integer", + "minimum": 0, + }, + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "tcp_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + "type": "object", + }, + "concurrency": map[string]interface{}{ + "minimum": 1, + "type": "integer", + }, + "healthy": map[string]interface{}{ + "properties": map[string]interface{}{ + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "successes": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + "type": "object", + }, + "http_path": map[string]interface{}{ + "pattern": "^/.*$", + "type": "string", + }, + }, + "type": "object", + }, + "passive": map[string]interface{}{ + "properties": map[string]interface{}{ + "healthy": map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{ + "http_statuses": map[string]interface{}{ + "items": map[string]interface{}{ + "type": "integer", + }, + "type": "array", + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "successes": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + }, + "unhealthy": map[string]interface{}{ + "type": "object", + "properties": map[string]interface{}{ + "http_statuses": map[string]interface{}{ + "type": "array", + "items": map[string]interface{}{ + "type": "integer", + }, + }, + "interval": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "tcp_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "timeout": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + "http_failures": map[string]interface{}{ + "minimum": 0, + "type": "integer", + }, + }, + }, + }, + "type": "object", + }, + }, + }, + "slots": map[string]interface{}{ + "minimum": 10, + "type": "integer", + }, + }, + "type": "object", + }, + }, + }, + }, + "version": "v1", + }, + }, + } + + return []*unstructured.Unstructured{customResourceDefinition1, customResourceDefinition2, customResourceDefinition3, customResourceDefinition4, customResourceDefinition5, customResourceDefinition6, customResourceDefinition7, customResourceDefinition8} +} \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getEndPoints.go b/depRicKubernetesOperator/internal/controller/getEndPoints.go new file mode 100644 index 0000000..b426a89 --- /dev/null +++ b/depRicKubernetesOperator/internal/controller/getEndPoints.go @@ -0,0 +1,133 @@ +package controller + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + rbacv1 "k8s.io/api/rbac/v1" +) + + +func GetEndpoints() []*unstructured.Unstructured { + + endpoints1 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "v1", + "kind": "Endpoints", + "metadata": map[string]interface{}{ + "name": "aux-entry", + "namespace": "ricplt", + }, + "subsets": []interface{}{ + map[string]interface{}{ + "ports": []interface{}{ + map[string]interface{}{ + "name": "aux-entry-http-ingress-port", + "port": 32080, + }, + map[string]interface{}{ + "name": "aux-entry-https-ingress-port", + "port": 32443, + }, + }, + "addresses": []interface{}{ + map[string]interface{}{ + "ip": "10.0.0.1", + }, + }, + }, + }, + }, + } + + endpoints2 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "v1", + "kind": "Endpoints", + "metadata": map[string]interface{}{ + "name": "aux-entry", + "namespace": "ricxapp", + }, + "subsets": []interface{}{ + map[string]interface{}{ + "addresses": []interface{}{ + map[string]interface{}{ + "ip": "10.0.0.1", + }, + }, + "ports": []interface{}{ + map[string]interface{}{ + "name": "aux-entry-http-ingress-port", + "port": 32080, + }, + map[string]interface{}{ + "port": 32443, + "name": "aux-entry-https-ingress-port", + }, + }, + }, + }, + }, + } + + endpoints3 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "v1", + "kind": "Endpoints", + "metadata": map[string]interface{}{ + "namespace": "ricplt", + "name": "aux-entry", + }, + "subsets": []interface{}{ + map[string]interface{}{ + "addresses": []interface{}{ + map[string]interface{}{ + "ip": "10.0.0.1", + }, + }, + "ports": []interface{}{ + map[string]interface{}{ + "name": "aux-entry-http-ingress-port", + "port": 32080, + }, + map[string]interface{}{ + "name": "aux-entry-https-ingress-port", + "port": 32443, + }, + }, + }, + }, + }, + } + + endpoints4 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "v1", + "kind": "Endpoints", + "metadata": map[string]interface{}{ + "name": "aux-entry", + "namespace": "ricxapp", + }, + "subsets": []interface{}{ + map[string]interface{}{ + "addresses": []interface{}{ + map[string]interface{}{ + "ip": "10.0.0.1", + }, + }, + "ports": []interface{}{ + map[string]interface{}{ + "name": "aux-entry-http-ingress-port", + "port": 32080, + }, + map[string]interface{}{ + "name": "aux-entry-https-ingress-port", + "port": 32443, + }, + }, + }, + }, + }, + } + + return []*unstructured.Unstructured{endpoints1, endpoints2, endpoints3, endpoints4} +} \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getIngress.go b/depRicKubernetesOperator/internal/controller/getIngress.go index a4d224c..a03a85c 100644 --- a/depRicKubernetesOperator/internal/controller/getIngress.go +++ b/depRicKubernetesOperator/internal/controller/getIngress.go @@ -36,6 +36,7 @@ func GetIngress() []*unstructured.Unstructured { }, }, } + ingress2 := &unstructured.Unstructured{ Object: map[string]interface{}{ "apiVersion": "networking.k8s.io/v1beta1", @@ -90,5 +91,86 @@ func GetIngress() []*unstructured.Unstructured { }, } - return []*unstructured.Unstructured{ingress1, ingress2,ingress3} + ingress4 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "networking.k8s.io/v1beta1", + "kind": "Ingress", + "metadata": map[string]interface{}{ + "name": "ingress-ricplt-rsm", + }, + "spec": map[string]interface{}{ + "rules": []interface{}{ + map[string]interface{}{ + "http": map[string]interface{}{ + "paths": []interface{}{ + map[string]interface{}{ + "backend": map[string]interface{}{ + "serviceName": "service-ricplt-rsm-http", + "servicePort": 4800, + }, + "path": "/rsm", + }, + }, + }, + }, + }, + }, + }, + } + + ingress5 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "networking.k8s.io/v1beta1", + "kind": "Ingress", + "metadata": map[string]interface{}{ + "name": "ingress-ricplt-xapp-onboarder-chartmuseum", + }, + "spec": map[string]interface{}{ + "rules": []interface{}{ + map[string]interface{}{ + "http": map[string]interface{}{ + "paths": []interface{}{ + map[string]interface{}{ + "path": "/helmrepo", + "backend": map[string]interface{}{ + "serviceName": "service-ricplt-xapp-onboarder-http", + "servicePort": 8080, + }, + }, + }, + }, + }, + }, + }, + }, + } + + ingress6 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "metadata": map[string]interface{}{ + "name": "ingress-ricplt-xapp-onboarder-server", + }, + "spec": map[string]interface{}{ + "rules": []interface{}{ + map[string]interface{}{ + "http": map[string]interface{}{ + "paths": []interface{}{ + map[string]interface{}{ + "backend": map[string]interface{}{ + "serviceName": "service-ricplt-xapp-onboarder-http", + "servicePort": 8888, + }, + "path": "/onboard", + }, + }, + }, + }, + }, + }, + "apiVersion": "networking.k8s.io/v1beta1", + "kind": "Ingress", + }, + } + + return []*unstructured.Unstructured{ingress1, ingress2, ingress3, ingress4, ingress5, ingress6} } \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getJob.go b/depRicKubernetesOperator/internal/controller/getJob.go new file mode 100644 index 0000000..402fe2e --- /dev/null +++ b/depRicKubernetesOperator/internal/controller/getJob.go @@ -0,0 +1,73 @@ +package controller + +import ( + "context" + "fmt" +) + + +func GetJob() []*unstructured.Unstructured { + + job1 := &unstructured.Unstructured{ + Object: map[string]interface{}{ + "apiVersion": "batch/v1", + "kind": "Job", + "metadata": map[string]interface{}{ + "name": "tiller-secret-generator", + "namespace": "ricinfra", + }, + "spec": map[string]interface{}{ + "template": map[string]interface{}{ + "spec": map[string]interface{}{ + "containers": []interface{}{ + map[string]interface{}{ + "env": []interface{}{ + map[string]interface{}{ + "name": "ENTITIES", + "value": "ricxapp-tiller-secret ricxapp-helm-secret", + }, + map[string]interface{}{ + "name": "TILLER_KEY_NAME", + "value": "ricxapp-tiller-secret.key.pem", + }, + map[string]interface{}{ + "name": "TILLER_CERT_NAME", + "value": "ricxapp-tiller-secret.cert.pem", + }, + map[string]interface{}{ + "name": "HELM_KEY_NAME", + "value": "ricxapp-helm-secret.key.pem", + }, + map[string]interface{}{ + "name": "HELM_CERT_NAME", + "value": "ricxapp-helm-secret.cert.pem", + }, + map[string]interface{}{ + "name": "TILLER_CN", + "value": "service-tiller-ricxapp", + }, + map[string]interface{}{ + "name": "CLUSTER_SERVER", + "value": "https://kubernetes.default.svc.cluster.local/", + }, + }, + "image": "nexus3.o-ran-sc.org:10002/o-ran-sc/it-dep-secret:0.0.2", + "imagePullPolicy": "IfNotPresent", + "name": "tiller-secret-generator", + }, + }, + "imagePullSecrets": []interface{}{ + map[string]interface{}{ + "name": "secret-nexus3-o-ran-sc-org-10002-o-ran-sc", + }, + }, + "restartPolicy": "Never", + "serviceAccountName": "tiller-secret-creator-xzhjjg", + }, + }, + }, + }, + } + + return []*unstructured.Unstructured{job1} +} \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getRole.go b/depRicKubernetesOperator/internal/controller/getRole.go index e43a0ba..f7acdc5 100644 --- a/depRicKubernetesOperator/internal/controller/getRole.go +++ b/depRicKubernetesOperator/internal/controller/getRole.go @@ -35,5 +35,439 @@ func GetRole() []*rbacv1.Role { Kind: "Role", }, } - return []*rbacv1.Role{role1} -} + + role2 := &rbacv1.Role{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + }, + Name: "release-name-kong", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + Resources: []string{ + + "configmaps", + "pods", + "secrets", + "namespaces", + }, + Verbs: []string{ + + "get", + }, + APIGroups: []string{ + + "", + }, + }, + rbacv1.PolicyRule{ + Verbs: []string{ + + "get", + "update", + }, + APIGroups: []string{ + + "", + }, + ResourceNames: []string{ + + "kong-ingress-controller-leader-kong-kong", + }, + Resources: []string{ + + "configmaps", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "configmaps", + }, + Verbs: []string{ + + "create", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "endpoints", + }, + Verbs: []string{ + + "get", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + } + + role3 := &rbacv1.Role{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "ricxapp-tiller-base", + Namespace: "ricxapp", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + ResourceNames: []string{ + + "ricxapp-tiller-secret", + }, + Resources: []string{ + + "secrets", + }, + Verbs: []string{ + + "get", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "pods/portforward", + }, + Verbs: []string{ + + "create", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "namespaces", + }, + Verbs: []string{ + + "get", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "pods", + "configmaps", + "deployments", + "services", + }, + Verbs: []string{ + + "get", + "list", + "create", + "delete", + }, + }, + }, + } + + role4 := &rbacv1.Role{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "ricxapp-tiller-operation", + Namespace: "ricinfra", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "configmaps", + }, + Verbs: []string{ + + "get", + "list", + "create", + "delete", + "update", + }, + }, + }, + } + + role5 := &rbacv1.Role{ + ObjectMeta: metav1.ObjectMeta{ + Name: "ricxapp-tiller-deployer", + Namespace: "ricxapp", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "pods", + "configmaps", + "services", + }, + Verbs: []string{ + + "get", + "list", + "create", + "delete", + }, + }, + rbacv1.PolicyRule{ + Verbs: []string{ + + "get", + "list", + "create", + "delete", + }, + APIGroups: []string{ + + "extensions", + "apps", + }, + Resources: []string{ + + "deployments", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + } + + role6 := &rbacv1.Role{ + ObjectMeta: metav1.ObjectMeta{ + Name: "tiller-secret-creator-xzhjjg-secret-create", + Namespace: "ricinfra", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "secrets", + }, + Verbs: []string{ + + "create", + "get", + "patch", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + } + + role7 := &rbacv1.Role{ + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "configmaps", + "pods", + "secrets", + "namespaces", + }, + Verbs: []string{ + + "get", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + ResourceNames: []string{ + + "kong-ingress-controller-leader-kong-kong", + }, + Resources: []string{ + + "configmaps", + }, + Verbs: []string{ + + "get", + "update", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "configmaps", + }, + Verbs: []string{ + + "create", + }, + }, + rbacv1.PolicyRule{ + Resources: []string{ + + "endpoints", + }, + Verbs: []string{ + + "get", + }, + APIGroups: []string{ + + "", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "release-name-kong", + Labels: map[string]string{ + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + }, + }, + } + + role8 := &rbacv1.Role{ + ObjectMeta: metav1.ObjectMeta{ + Name: "svcacct-ricplt-o1mediator-ricxapp-podreader", + Namespace: "ricxapp", + }, + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "pods", + }, + Verbs: []string{ + + "get", + "list", + "watch", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "Role", + }, + } + + role9 := &rbacv1.Role{ + Rules: []rbacv1.PolicyRule{ + + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "pods", + }, + Verbs: []string{ + + "get", + "list", + }, + }, + rbacv1.PolicyRule{ + APIGroups: []string{ + + "", + }, + Resources: []string{ + + "pods/exec", + }, + Verbs: []string{ + + "create", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Role", + APIVersion: "rbac.authorization.k8s.io/v1", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "assigner-role", + }, + } + + return []*rbacv1.Role{role1, role2, role3, role4, role5, role6, role7, role8, role9} +} \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getRoleBinding.go b/depRicKubernetesOperator/internal/controller/getRoleBinding.go index ca6a093..1632aec 100644 --- a/depRicKubernetesOperator/internal/controller/getRoleBinding.go +++ b/depRicKubernetesOperator/internal/controller/getRoleBinding.go @@ -30,5 +30,209 @@ func GetRoleBinding() []*rbacv1.RoleBinding { }, } - return []*rbacv1.RoleBinding{roleBinding1} + roleBinding2 := &rbacv1.RoleBinding{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + Namespace: "ricplt", + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + Name: "release-name-kong", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "release-name-kong", + Namespace: "ricplt", + }, + }, + } + + roleBinding3 := &rbacv1.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: "svcacct-tiller-ricxapp-ricxapp-tiller-base", + Namespace: "ricxapp", + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + Name: "ricxapp-tiller-base", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "svcacct-tiller-ricxapp", + Namespace: "ricinfra", + }, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "RoleBinding", + APIVersion: "rbac.authorization.k8s.io/v1", + }, + } + + roleBinding4 := &rbacv1.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricinfra", + Name: "svcacct-tiller-ricxapp-ricxapp-tiller-operation", + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + Name: "ricxapp-tiller-operation", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "svcacct-tiller-ricxapp", + Namespace: "ricinfra", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + } + + roleBinding5 := &rbacv1.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricxapp", + Name: "svcacct-tiller-ricxapp-ricxapp-tiller-deployer", + }, + RoleRef: rbacv1.RoleRef{ + Kind: "Role", + Name: "ricxapp-tiller-deployer", + APIGroup: "rbac.authorization.k8s.io", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "svcacct-tiller-ricxapp", + Namespace: "ricinfra", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + } + + roleBinding6 := &rbacv1.RoleBinding{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricinfra", + Name: "tiller-secret-creator-xzhjjg-secret-create", + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + Name: "tiller-secret-creator-xzhjjg-secret-create", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "tiller-secret-creator-xzhjjg", + Namespace: "ricinfra", + }, + }, + } + + roleBinding7 := &rbacv1.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + Namespace: "ricplt", + }, + RoleRef: rbacv1.RoleRef{ + Name: "release-name-kong", + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + }, + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Namespace: "ricplt", + Kind: "ServiceAccount", + Name: "release-name-kong", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + } + + roleBinding8 := &rbacv1.RoleBinding{ + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "svcacct-ricplt-o1mediator", + Namespace: "ricplt", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "svcacct-ricplt-o1mediator-ricxapp-podreader", + Namespace: "ricxapp", + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + Name: "svcacct-ricplt-o1mediator-ricxapp-podreader", + }, + } + + roleBinding9 := &rbacv1.RoleBinding{ + Subjects: []rbacv1.Subject{ + + rbacv1.Subject{ + Kind: "ServiceAccount", + Name: "assigner-sa", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "rbac.authorization.k8s.io/v1", + Kind: "RoleBinding", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "assigner-rb", + }, + RoleRef: rbacv1.RoleRef{ + APIGroup: "rbac.authorization.k8s.io", + Kind: "Role", + Name: "assigner-role", + }, + } + + return []*rbacv1.RoleBinding{roleBinding1, roleBinding2, roleBinding3, roleBinding4, roleBinding5, roleBinding6, roleBinding7, roleBinding8, roleBinding9} } diff --git a/depRicKubernetesOperator/internal/controller/getSecret.go b/depRicKubernetesOperator/internal/controller/getSecret.go index d2cfa89..0f93db4 100644 --- a/depRicKubernetesOperator/internal/controller/getSecret.go +++ b/depRicKubernetesOperator/internal/controller/getSecret.go @@ -22,6 +22,287 @@ func GetSecret() []*corev1.Secret { Kind: "Secret", }, } -return []*corev1.Secret{secret1} + secret2 := &corev1.Secret{ + Data: map[string][]uint8{ + "ca.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaVENDQWsyZ0F3SUJBZ0lRR3J6MUJKT3lYZExpSGErYWE2UERIVEFOQmdrcWhraUc5dzBCQVFzRkFEQTkKTVRzd09RWURWUVFERXpJdlF6MVZVeTlQUFU4dFVrRk9JRUZzYkdsaGJtTmxMMDlWUFU4dFVrRk9JRk52Wm5SMwpZWEpsSUVOdmJXMTFibWwwZVRBZUZ3MHlNekV3TWpjd09UTXhOVGxhRncwME9ERXdNakF3T1RNeE5UbGFNRDB4Ck96QTVCZ05WQkFNVE1pOURQVlZUTDA4OVR5MVNRVTRnUVd4c2FXRnVZMlV2VDFVOVR5MVNRVTRnVTI5bWRIZGgKY21VZ1EyOXRiWFZ1YVhSNU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMks4NwpLb21EcjhGU1BxaHpyc1Z0NnB6VUlhaW1oTFNDTWQwMndtejFTZTlraGc1SmhvNXU4MnBNVTFhcUxySW0yS2xkCjFiSjhuVTU1eXB2bHVqMCtTV2Vhbi9TUGtGK2JJc2tlYXh3ME4xR2RpemJONFc0bXVyQ1NqMDVSRTNyRFRNTHcKNzM1NWhBK3VrUXFmeVgzYkJNUm55eW9xdGMzRXVwNVp4K2tkenBSS0s2eWlZeW9JUUZUWGxOTkhZNVpUcTh0KwpmR3FLcDZJK2JXd0poUjRYeEJQSHVuQlMrTzIvRmZMd1h6cmFzNVNtVktwWkV4OWgxOXlqMlM4QkRsc3BFTFpoClBQYXBFOGhqbzI5bHJ5RThRV3FuSUVhQWRvK0JMMmNCZHpKbE55L0Ztdk05VXF3bmtWTjR0Y0FLNGtJck53Y3kKUWNWa0Qvby9XYWJWZ0JKVE9RSURBUUFCbzJFd1h6QU9CZ05WSFE4QkFmOEVCQU1DQXFRd0hRWURWUjBsQkJZdwpGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFCkZPdk9VZFEyOHVUUlJaN1UwS25JQWJSVzdTVERNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUMrb00wTXhhY0wKYTdUc0dHenZYRlRiYXF6dFBGYTB5S2c2TS9kVFRTc0VEdy8yMXBEMWh4REZTakpidTVkaGhnV0I0c2lJNlhvYwo5WFp5Q2FUMTB1aFEyRFlFUGFlTlFBYVljblRPanhLRWR6UDc1TG5oY0VXOHpVZUxLaVhhLzNiMldwVWxwYWFYClMwM3pFZmxMZDB2WkF0aXlucmwrdEJacG9qWTdvK1Qyb0ZPU3JrN2RHSWY3WUxEYmxiYzl3ZUcwV2U1a2xqNDIKMzFSSFNDbDBBcWZ3Zm1lbGhnY2VlNGlUeFJ2dUh4NnN0d0txS0VGbExlbVFyTXQzYzVHY3JVaUxwODdrZ1Z6TwozTklpOUV6bFFFaFBKdjJGWmd4K0JCaDM3Zlo4ZSt1ckd3L3pyTGlqUitZclNtNXhvazNXbkNXMTQwWjhmR2RECnFDN3l1K0lLQkxLYgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-ric-ca-cert", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret3 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpekNDQW5PZ0F3SUJBZ0lSQU5JK3FNaFNrQ3JvZkdxL2xlZWRXbGN3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFN01Ea0dBMVVFQXhNeUwwTTlWVk12VHoxUExWSkJUaUJCYkd4cFlXNWpaUzlQVlQxUExWSkJUaUJUYjJaMApkMkZ5WlNCRGIyMXRkVzVwZEhrd0hoY05Nak14TURJM01Ea3pNVFU1V2hjTk5EZ3hNREl3TURrek1UVTVXakJOCk1Vc3dTUVlEVlFRREUwSXZRejFWVXk5UFBVOHRVa0ZPSUVGc2JHbGhibU5sTDA5VlBVOHRVa0ZPSUZOdlpuUjMKWVhKbElFTnZiVzExYm1sMGVTOURUajFTU1VNdFVHeGhkR1p2Y20wd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQQpBNElCRHdBd2dnRUtBb0lCQVFDbndiZ3JWT1JiQjQ1c2lpbXJWc0FmMndWcmxWcGprQXZCRUdEdjk0TzlpVDFOCjR2bjFjSU5MdWo0cU9BU2hFdHNnYkxWWWN0bmNlTWc0Ujh1NkV4Wll0ZDV0UmZqQ2oxN3ZXYTU2NzgvQnlBQ04KNEJ1QnM1eExhTjU0SjdMMWdreFh4Sk1kTXlTY2l4aDY1d1RRRnd5blYybk16ZHZsZUV5ODRTZitmKzF6TmdoVwpUZ2ZLVVpCa1VBbk5KQlk4K1dkV2FLd2tEeGwvR3Z0RkpKV0owcWVhNmdBQVlvcU45d2JKQ2FTTzFQcGlEVXFTCmQwYnpyUS8vNnBrV1RVRW1kWEhQb083amV3Z21GZzE3ODV2V1ErbVZzMWZlbVBmZUVWVzMrUXQ1M2dGbTliNVEKejVzN1FuRGxRVWFCcDJYdVdPTGRYL1JXVnJqQ3JqVmV2b0xEKzc5cEFnTUJBQUdqZGpCME1BNEdBMVVkRHdFQgovd1FFQXdJRm9EQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3REFZRFZSMFRBUUgvCkJBSXdBREFmQmdOVkhTTUVHREFXZ0JUcnpsSFVOdkxrMFVXZTFOQ3B5QUcwVnUwa3d6QVVCZ05WSFJFRURUQUwKZ2dseWFXTXRaVzUwY25rd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDU2JaamEwWjRVM29pVVZucFBHWXU1Kwp5MEJ4RWhiN1VSOU05bU1pcnpCY2NVYktyV0F0b2RWaHFLNkJ1NDVaU01hVnhFNXVWLzRNb1BtRnhqVnY4Y2pyClM2UmtsOHVQcFNwZVBQU3IwTjJaVzBvenFHdHgrWitMeGwwQkVTeXNpbjZVTVdLNGg0TG1PaWFyY00weStMMEgKcWlFMlBxbHBuNXBaRUtLMkNzNkdIS3QxbzNCTUVQUGpQclRjT2FvN05kblhkTlZQajk2WVlZWHhON3hvTlNJbgo3VG83YXJOdHpKT1M1ckFYZm9PUElFUGxPWUhPZWE2MlFWYUlmZVc3TmRqS2Q3blNEZUkwUVdEL2dXdlV6a1pICmhMZ3IrMVRXZzNldFlZSHB0VnUxM2R6NUFSdzBxYU5sZkZTNjBGVFhXTi9jcVRpSXkvUjVHTmswNEtNbjRqZz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBcDhHNEsxVGtXd2VPYklvcHExYkFIOXNGYTVWYVk1QUx3UkJnNy9lRHZZazlUZUw1CjlYQ0RTN28rS2pnRW9STGJJR3kxV0hMWjNIaklPRWZMdWhNV1dMWGViVVg0d285ZTcxbXVldS9Qd2NnQWplQWIKZ2JPY1MyamVlQ2V5OVlKTVY4U1RIVE1rbklzWWV1Y0UwQmNNcDFkcHpNM2I1WGhNdk9Fbi9uL3RjellJVms0SAp5bEdRWkZBSnpTUVdQUGxuVm1pc0pBOFpmeHI3UlNTVmlkS25tdW9BQUdLS2pmY0d5UW1ranRUNllnMUtrbmRHCjg2MFAvK3FaRmsxQkpuVnh6NkR1NDNzSUpoWU5lL09iMWtQcGxiTlgzcGozM2hGVnQva0xlZDRCWnZXK1VNK2IKTzBKdzVVRkdnYWRsN2xqaTNWLzBWbGE0d3E0MVhyNkN3L3UvYVFJREFRQUJBb0lCQURCVE5ybU16K2VGS3JzTApwZXRNcHpYR0F5NjFySDhuM0tyMkMrYTB0NGVmQkVEdWxMRG1nM3dLSDZSTDFOR052QUFBTU5GVTdIdDljN2Y2CnZxNVFsMHhndjcxY3ZjZFdRN1BSY3RqSlFtRUJPMStqWW1rZmszT0p0eVNIMHg2ME5VZkhRZFhVaU1ScnNWYWUKUEIyeHRoeHlxdkNya0ovdTRyUTZiQ245TWlyUXV5bjFUY1h6STZxUnZoRFRlYmRNTTVsbTJTc09MbFp0bW9QTgpoQndDTFFpYVNMWUlocmQ1UW5LS2k1TWZSakh0b0RQbUNvOTZsL2R6VDlUYk5HcllHMkplb1FzdkJBazFsUHpQCmJKM2VsVkNGd3VKaGhqME5kS05kS3pGakwxSTlKTWNUblJWVTNXa2Q4OWJNcDZFNm5pWGFEQmVVbkQ0bmZIT2QKQWlmdFFvRUNnWUVBM3R5WDhZRlFzWWNCejdZb09Fd21XZDFidUtKYW1nUlBrUW9La0w5alordEVpcm5OOXgwNword3BNUkZvUnd3Unc0dVBvbW9sNnFZRUs2TWFNL3BmeFUvMk9hMVJqcEx4SEN5KzBCam1OUUNadFQ4VVB6NjRMCktXaExpa1YzYTErQ2JlQ253RDFoU0dvQWhyaGc4aldaREx4M21jUUV3M1I3M3NZOURIZHp1ZGtDZ1lFQXdMT0MKNmtRT0g3bmhscnppTkRudzk2eDIxWFY3bE1ZejZNN3V5bDN6Uzc1MmtEQW1HdzNueUJIU2ZMbzFmdmszQUZIegoxcmNSRUZJcG5UNXJ1UldZRmxzcUJYcnd1Y1l2VDBsVHoyb2xPbGx3M0w4U09oNms4REEvaWU0SVZZdWRKWTdyCkNWYzJ1Ymtwdy9kUmd0NnNabGpGdU9MK0xGSmMvV3h0NldKR3FCRUNnWUJzWlZieC9EZkhZU2NjWkRrRHlPWU8KWjRBcE9hNWZveUVnSm9ZbENUSE1aYjRjeTJyR2VzMmx1TWlIcGxkbFIwK3d5N0ZqR09NMGRyTmJyTmIvTGVBUApQaEI3Vzd4cmI3Z09WTkYzQlo4U1NKNTZZaHJpcElDQlQxME9qK01ac29hNThyOGszYlhuaHNkaXYyTkg2NUhaCmhBR1lKS004ZmZlUnoxSDZNazl6WVFLQmdGR3RSTFlLOW5tWURmZ1lRMENqdG5Fa0ZwSlBZM3docm1ybEd1MkgKZU5JSC9yVUswM3Z3SHVmOE5kMU1COVN6eVE1SHJqUzZEMjk5ZzhuMFpUQmo2THpCRTBTVFlXazhpVnp2MWFnNgpjMkVSKy9aMHZrTUlMaHpvTm1ZK0VDWkNNTzkwYmtiZFFvTGg2c1AzRmdPRVlrcFhJaWRGZnpwR0JzZ2JwMUtlCnB4Z2hBb0dBQXA0V3UxaE1jeWVXTmJ2amVBZHZud1daRmdGVUtUbm03MW5leXVyRDF5QmFOeERkRDZCbHEwYWQKRklpT0hseWJsRTQ4L3ZQSi9VQ1doUkUxZEk3VFVKaTBFVDArRUFJS1Iwb0pwRTZrQnV2M0NqUG9EeXJ5QUREMQo4Ynh3d0E2Qkx2NUxIbysramt5R2xXRnFnd01HYktJUTdmM2RuZzEwRFRDeFZPeXJMQkE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg=="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-plt-ingress-cert", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret4 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURnakNDQW1xZ0F3SUJBZ0lRV3YrZWhsNzZBd1FYcURQTDB6SFk2akFOQmdrcWhraUc5dzBCQVFzRkFEQTkKTVRzd09RWURWUVFERXpJdlF6MVZVeTlQUFU4dFVrRk9JRUZzYkdsaGJtTmxMMDlWUFU4dFVrRk9JRk52Wm5SMwpZWEpsSUVOdmJXMTFibWwwZVRBZUZ3MHlNekV3TWpjd09UTXhOVGxhRncwME9ERXdNakF3T1RNeE5UbGFNRVV4ClF6QkJCZ05WQkFNVE9pOURQVlZUTDA4OVR5MVNRVTRnUVd4c2FXRnVZMlV2VDFVOVR5MVNRVTRnVTI5bWRIZGgKY21VZ1EyOXRiWFZ1YVhSNUwwTk9QV2hsYkcwd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFEQk8yek5aUUVjZ3p5Q0NPQWhrR2NBZU1udGl5cHFmRlZ1UDFSK0RTanZLVTJDZ3Z3YjR3ckY4V3VPCldsVnUwKzZVR0tmWXZ2eGsyaFhzRkJFN1N6anRYc01tS1JmTVRkM0pWRHVRb3RkYTBEWkNQbUQ4Q01nV2tkUTUKVTdqZWIrMmhIcDlXT2tCa1JsazJNQ3NkaFl4UnJ5cExtUnNMODdRV1VjWHRvYUdDOUMvaW9lZS9tU3V6YnZidwpPZUJ6ZEt2blZqWCtXRmVvOGlvRGRlQk0wTmdGZExhMkd0MUdVYm5iWTZhL01aeS96SlhINjFVbmYwK09lN2lFCjR1cWhEUFYxMGZPUUkreFBQOGFuVThnNyt3eHY3enduaXJ0Tlk3M3l5S3RHUVlHaDhQZXk1SldlTG9RYzFaaUIKcm45eVpNTjNNdGh6Ynp4V2RRbXhrcEJCbnlSbEFnTUJBQUdqZGpCME1BNEdBMVVkRHdFQi93UUVBd0lGb0RBZApCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3REFZRFZSMFRBUUgvQkFJd0FEQWZCZ05WCkhTTUVHREFXZ0JUcnpsSFVOdkxrMFVXZTFOQ3B5QUcwVnUwa3d6QVVCZ05WSFJFRURUQUxnZ2xoZFhndFpXNTAKY25rd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFNQVh1ei9OYm5xVW9jRmNXQVFEM2k2bUs0THVJcXZKa0ViWQpyeUlvRUl6bWFzclBaRmh2dlN0bmYrUVlSc3prQVdndm5pelBLdmJ0MWMyQ1ZpUDQvRWJ6cjFUWnRuZ1pBWDljCnZBcjc1djVnc3k3RzdTS3I4cEYrTnpqc1BMajlFYUp6UnJCZ1RsRnY5cFg3R2tnVVlvQWRKSzJMaGZLS1BVR1gKZ0M4cGJIajB1YmpDaFV6L2JVR3gvTlBCQ1dPcHB2RzRXVzIwQytVOWtkNHZNWENEZVBhYklmWXJIL2dkTDZNVwpCZEY1VDk1SXJNUHVlL1JDZzcwbWhOemZlMmlsaGJkdmR6OFhEaStjQm8yQXA5QVdaZGZVWTEzVkFLSmlsaG16CkRTTWN2ZWFJVUdUOTc1VEo3ei9xa1R1elNLclNxbUVYY3pRSnYvWjV3OXc1c1hLcm4xZz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBd1R0c3pXVUJISU04Z2dqZ0laQm5BSGpKN1lzcWFueFZiajlVZmcwbzd5bE5nb0w4CkcrTUt4ZkZyamxwVmJ0UHVsQmluMkw3OFpOb1Y3QlFSTzBzNDdWN0RKaWtYekUzZHlWUTdrS0xYV3RBMlFqNWcKL0FqSUZwSFVPVk80M20vdG9SNmZWanBBWkVaWk5qQXJIWVdNVWE4cVM1a2JDL08wRmxIRjdhR2hndlF2NHFIbgp2NWtyczI3MjhEbmdjM1NyNTFZMS9saFhxUElxQTNYZ1RORFlCWFMydGhyZFJsRzUyMk9tdnpHY3Y4eVZ4K3RWCkozOVBqbnU0aE9McW9RejFkZEh6a0NQc1R6L0dwMVBJTy9zTWIrODhKNHE3VFdPOThzaXJSa0dCb2ZEM3N1U1YKbmk2RUhOV1lnYTUvY21URGR6TFljMjg4Vm5VSnNaS1FRWjhrWlFJREFRQUJBb0lCQVFDMlhUb0xBbWN4SEo1UApic2J3aGxMZmZCKyt3eGR0MWhmZWE0QjNVajR1c0lGSlNndGEya1RCbVYzVHhHZGFxRU5DbTU1VkRiSXdFQzZlClZqWUpDcTRZUDlYWFB2TUp5dmNrMmcwNUxLWW9POWJwWCt1eUVTdWRPVlhjSUtxWnEzTE9HNU52RXB6UXhoL04KNTFuWmk3OXBHL0xEMUNSVmZGT2F1T1FlcCt0QkpVVlRxc2FSQ2RyZEhJUndtK1NDak9WTWFhTnRkeWhKSjdzNgp3MndIMzJZRWZ4Z2Z4eWEvTURtMDBiTGNBSjlyeTh1VWdjVjdvcGJUc3ZkQ2hhVytYbWduc040WlZTanR2emFGCmhjSERUSGxJaGc5RzZPanorME91SjZ2d0tmR2ttcjlnWi9RZWRuNERKa01FZ1o4RVdWZEsvL2FGNWZkbmtXS3cKRGRTVmNlQ2xBb0dCQU9zTXJBZ2dFSmdvQjN3VGcrMU00TzRGT3NIZ2RSUmh1cUpkdllTaTlkQ0d5eCtNSUE5WQp1SzhkVEZzM0dwZGN2djNaWExUay9yaWVNN0xFREdPeS9XdTNsYStZNEhaYmR4OEhjMzZmNEtyY2RnR1J6WlJrClgybzZUVDhGSGMzVVpnaFBEVGRsM2srcWZvZHo1OEhqeHdoMmszUTdLNmNDMlc3VFBISTJHSk56QW9HQkFOSjAKa2VFRHY3VThhUVJ3K01QTmxsN2dOanZDamZyc1pCNFVwR0E4WUxnQWdZT3FjS2ZRb3pNUFprbnVXWVV3UjRORwo4SDhSVDJ1Mnk4RUJ4Mm9nYjRLeXVwempDaFhMd0VLRHRZOUczMGxhMG1tSm9hK3hCeTBSc1RWaGEzczRoWE4zCjVLMUV3OVJWTHhxbEVOZXk4bFVyY3BTcXgzeTMyTFFaRCs0WUErTEhBb0dCQUp5VWduMmZMcTdONjc2Q0daNloKV2pYMWtlRFpyK1QxL2Fod0hmSWZ4UFUyOWxWN3VWZS8yTGYvSW9DWlFzT1dhejBiOGFBbjlHLzBJNmh3NVhmOQpJc2tCTVZ3YTBWekhMYUdrQ3hKTld4TTNiZjA1cmVPdXdjazRNWUZMM1VEaXYxM0ZtNTVONUR6WjdSUTY2Q2JICm9DMUpJSTJMWlZjS2xPSTVJY2xMdEM5MUFvR0FSek1nMTF1SlZDdG43QlM4VktJTktYUDVaU1poR204M1ArWUQKNW5zR3pibCtGNmxtQzZCT1ZrdnpjemVzR1o5SDBtWUJuenVmL3ZVTTRmTlVIOWR4WW1wTk1CNnZuc2diOTJUUAoyL1ZDUFhMNGxMUDNlNVVNdEhhejJUZG9RWHZSeWtyWmxyVVkrNUVHS3FHRm5UUHhRRmMrb0lWV2tCOHl0VnQxClJEdmp0S2tDZ1lBNi9vSFhpd05BbGEvM0Y3Z3QwUzFmdWl5Vkd5NVI5cHFRY0VxZmtVMlFpUmpORmU3b1RiRjAKNFZPVFJzb1AzMURWbGgzV0ZISk13VDN6UDNEOVFqMHpiWjIxQ0ZUQTZXOVY1SnJaWDkwYmJIbXZteFVXdFZzYgpzZ1FwQ3cwZU9ZME11VGRrNkdsM3pQNzB3UStkUGRLVFp2UWNZRmlJWkkvVkN6SlNOK1NrQVE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-aux-ingress-cert", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret5 := &corev1.Secret{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + Data: map[string][]uint8{ + "ca.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaVENDQWsyZ0F3SUJBZ0lRR3J6MUJKT3lYZExpSGErYWE2UERIVEFOQmdrcWhraUc5dzBCQVFzRkFEQTkKTVRzd09RWURWUVFERXpJdlF6MVZVeTlQUFU4dFVrRk9JRUZzYkdsaGJtTmxMMDlWUFU4dFVrRk9JRk52Wm5SMwpZWEpsSUVOdmJXMTFibWwwZVRBZUZ3MHlNekV3TWpjd09UTXhOVGxhRncwME9ERXdNakF3T1RNeE5UbGFNRDB4Ck96QTVCZ05WQkFNVE1pOURQVlZUTDA4OVR5MVNRVTRnUVd4c2FXRnVZMlV2VDFVOVR5MVNRVTRnVTI5bWRIZGgKY21VZ1EyOXRiWFZ1YVhSNU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMks4NwpLb21EcjhGU1BxaHpyc1Z0NnB6VUlhaW1oTFNDTWQwMndtejFTZTlraGc1SmhvNXU4MnBNVTFhcUxySW0yS2xkCjFiSjhuVTU1eXB2bHVqMCtTV2Vhbi9TUGtGK2JJc2tlYXh3ME4xR2RpemJONFc0bXVyQ1NqMDVSRTNyRFRNTHcKNzM1NWhBK3VrUXFmeVgzYkJNUm55eW9xdGMzRXVwNVp4K2tkenBSS0s2eWlZeW9JUUZUWGxOTkhZNVpUcTh0KwpmR3FLcDZJK2JXd0poUjRYeEJQSHVuQlMrTzIvRmZMd1h6cmFzNVNtVktwWkV4OWgxOXlqMlM4QkRsc3BFTFpoClBQYXBFOGhqbzI5bHJ5RThRV3FuSUVhQWRvK0JMMmNCZHpKbE55L0Ztdk05VXF3bmtWTjR0Y0FLNGtJck53Y3kKUWNWa0Qvby9XYWJWZ0JKVE9RSURBUUFCbzJFd1h6QU9CZ05WSFE4QkFmOEVCQU1DQXFRd0hRWURWUjBsQkJZdwpGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3SFFZRFZSME9CQllFCkZPdk9VZFEyOHVUUlJaN1UwS25JQWJSVzdTVERNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUMrb00wTXhhY0wKYTdUc0dHenZYRlRiYXF6dFBGYTB5S2c2TS9kVFRTc0VEdy8yMXBEMWh4REZTakpidTVkaGhnV0I0c2lJNlhvYwo5WFp5Q2FUMTB1aFEyRFlFUGFlTlFBYVljblRPanhLRWR6UDc1TG5oY0VXOHpVZUxLaVhhLzNiMldwVWxwYWFYClMwM3pFZmxMZDB2WkF0aXlucmwrdEJacG9qWTdvK1Qyb0ZPU3JrN2RHSWY3WUxEYmxiYzl3ZUcwV2U1a2xqNDIKMzFSSFNDbDBBcWZ3Zm1lbGhnY2VlNGlUeFJ2dUh4NnN0d0txS0VGbExlbVFyTXQzYzVHY3JVaUxwODdrZ1Z6TwozTklpOUV6bFFFaFBKdjJGWmd4K0JCaDM3Zlo4ZSt1ckd3L3pyTGlqUitZclNtNXhvazNXbkNXMTQwWjhmR2RECnFDN3l1K0lLQkxLYgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg=="), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricxapp", + Name: "secret-ric-ca-cert", + }, + } + + secret6 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBcDhHNEsxVGtXd2VPYklvcHExYkFIOXNGYTVWYVk1QUx3UkJnNy9lRHZZazlUZUw1CjlYQ0RTN28rS2pnRW9STGJJR3kxV0hMWjNIaklPRWZMdWhNV1dMWGViVVg0d285ZTcxbXVldS9Qd2NnQWplQWIKZ2JPY1MyamVlQ2V5OVlKTVY4U1RIVE1rbklzWWV1Y0UwQmNNcDFkcHpNM2I1WGhNdk9Fbi9uL3RjellJVms0SAp5bEdRWkZBSnpTUVdQUGxuVm1pc0pBOFpmeHI3UlNTVmlkS25tdW9BQUdLS2pmY0d5UW1ranRUNllnMUtrbmRHCjg2MFAvK3FaRmsxQkpuVnh6NkR1NDNzSUpoWU5lL09iMWtQcGxiTlgzcGozM2hGVnQva0xlZDRCWnZXK1VNK2IKTzBKdzVVRkdnYWRsN2xqaTNWLzBWbGE0d3E0MVhyNkN3L3UvYVFJREFRQUJBb0lCQURCVE5ybU16K2VGS3JzTApwZXRNcHpYR0F5NjFySDhuM0tyMkMrYTB0NGVmQkVEdWxMRG1nM3dLSDZSTDFOR052QUFBTU5GVTdIdDljN2Y2CnZxNVFsMHhndjcxY3ZjZFdRN1BSY3RqSlFtRUJPMStqWW1rZmszT0p0eVNIMHg2ME5VZkhRZFhVaU1ScnNWYWUKUEIyeHRoeHlxdkNya0ovdTRyUTZiQ245TWlyUXV5bjFUY1h6STZxUnZoRFRlYmRNTTVsbTJTc09MbFp0bW9QTgpoQndDTFFpYVNMWUlocmQ1UW5LS2k1TWZSakh0b0RQbUNvOTZsL2R6VDlUYk5HcllHMkplb1FzdkJBazFsUHpQCmJKM2VsVkNGd3VKaGhqME5kS05kS3pGakwxSTlKTWNUblJWVTNXa2Q4OWJNcDZFNm5pWGFEQmVVbkQ0bmZIT2QKQWlmdFFvRUNnWUVBM3R5WDhZRlFzWWNCejdZb09Fd21XZDFidUtKYW1nUlBrUW9La0w5alordEVpcm5OOXgwNword3BNUkZvUnd3Unc0dVBvbW9sNnFZRUs2TWFNL3BmeFUvMk9hMVJqcEx4SEN5KzBCam1OUUNadFQ4VVB6NjRMCktXaExpa1YzYTErQ2JlQ253RDFoU0dvQWhyaGc4aldaREx4M21jUUV3M1I3M3NZOURIZHp1ZGtDZ1lFQXdMT0MKNmtRT0g3bmhscnppTkRudzk2eDIxWFY3bE1ZejZNN3V5bDN6Uzc1MmtEQW1HdzNueUJIU2ZMbzFmdmszQUZIegoxcmNSRUZJcG5UNXJ1UldZRmxzcUJYcnd1Y1l2VDBsVHoyb2xPbGx3M0w4U09oNms4REEvaWU0SVZZdWRKWTdyCkNWYzJ1Ymtwdy9kUmd0NnNabGpGdU9MK0xGSmMvV3h0NldKR3FCRUNnWUJzWlZieC9EZkhZU2NjWkRrRHlPWU8KWjRBcE9hNWZveUVnSm9ZbENUSE1aYjRjeTJyR2VzMmx1TWlIcGxkbFIwK3d5N0ZqR09NMGRyTmJyTmIvTGVBUApQaEI3Vzd4cmI3Z09WTkYzQlo4U1NKNTZZaHJpcElDQlQxME9qK01ac29hNThyOGszYlhuaHNkaXYyTkg2NUhaCmhBR1lKS004ZmZlUnoxSDZNazl6WVFLQmdGR3RSTFlLOW5tWURmZ1lRMENqdG5Fa0ZwSlBZM3docm1ybEd1MkgKZU5JSC9yVUswM3Z3SHVmOE5kMU1COVN6eVE1SHJqUzZEMjk5ZzhuMFpUQmo2THpCRTBTVFlXazhpVnp2MWFnNgpjMkVSKy9aMHZrTUlMaHpvTm1ZK0VDWkNNTzkwYmtiZFFvTGg2c1AzRmdPRVlrcFhJaWRGZnpwR0JzZ2JwMUtlCnB4Z2hBb0dBQXA0V3UxaE1jeWVXTmJ2amVBZHZud1daRmdGVUtUbm03MW5leXVyRDF5QmFOeERkRDZCbHEwYWQKRklpT0hseWJsRTQ4L3ZQSi9VQ1doUkUxZEk3VFVKaTBFVDArRUFJS1Iwb0pwRTZrQnV2M0NqUG9EeXJ5QUREMQo4Ynh3d0E2Qkx2NUxIbysramt5R2xXRnFnd01HYktJUTdmM2RuZzEwRFRDeFZPeXJMQkE9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg=="), + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpekNDQW5PZ0F3SUJBZ0lSQU5JK3FNaFNrQ3JvZkdxL2xlZWRXbGN3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFN01Ea0dBMVVFQXhNeUwwTTlWVk12VHoxUExWSkJUaUJCYkd4cFlXNWpaUzlQVlQxUExWSkJUaUJUYjJaMApkMkZ5WlNCRGIyMXRkVzVwZEhrd0hoY05Nak14TURJM01Ea3pNVFU1V2hjTk5EZ3hNREl3TURrek1UVTVXakJOCk1Vc3dTUVlEVlFRREUwSXZRejFWVXk5UFBVOHRVa0ZPSUVGc2JHbGhibU5sTDA5VlBVOHRVa0ZPSUZOdlpuUjMKWVhKbElFTnZiVzExYm1sMGVTOURUajFTU1VNdFVHeGhkR1p2Y20wd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQQpBNElCRHdBd2dnRUtBb0lCQVFDbndiZ3JWT1JiQjQ1c2lpbXJWc0FmMndWcmxWcGprQXZCRUdEdjk0TzlpVDFOCjR2bjFjSU5MdWo0cU9BU2hFdHNnYkxWWWN0bmNlTWc0Ujh1NkV4Wll0ZDV0UmZqQ2oxN3ZXYTU2NzgvQnlBQ04KNEJ1QnM1eExhTjU0SjdMMWdreFh4Sk1kTXlTY2l4aDY1d1RRRnd5blYybk16ZHZsZUV5ODRTZitmKzF6TmdoVwpUZ2ZLVVpCa1VBbk5KQlk4K1dkV2FLd2tEeGwvR3Z0RkpKV0owcWVhNmdBQVlvcU45d2JKQ2FTTzFQcGlEVXFTCmQwYnpyUS8vNnBrV1RVRW1kWEhQb083amV3Z21GZzE3ODV2V1ErbVZzMWZlbVBmZUVWVzMrUXQ1M2dGbTliNVEKejVzN1FuRGxRVWFCcDJYdVdPTGRYL1JXVnJqQ3JqVmV2b0xEKzc5cEFnTUJBQUdqZGpCME1BNEdBMVVkRHdFQgovd1FFQXdJRm9EQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3REFZRFZSMFRBUUgvCkJBSXdBREFmQmdOVkhTTUVHREFXZ0JUcnpsSFVOdkxrMFVXZTFOQ3B5QUcwVnUwa3d6QVVCZ05WSFJFRURUQUwKZ2dseWFXTXRaVzUwY25rd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFDU2JaamEwWjRVM29pVVZucFBHWXU1Kwp5MEJ4RWhiN1VSOU05bU1pcnpCY2NVYktyV0F0b2RWaHFLNkJ1NDVaU01hVnhFNXVWLzRNb1BtRnhqVnY4Y2pyClM2UmtsOHVQcFNwZVBQU3IwTjJaVzBvenFHdHgrWitMeGwwQkVTeXNpbjZVTVdLNGg0TG1PaWFyY00weStMMEgKcWlFMlBxbHBuNXBaRUtLMkNzNkdIS3QxbzNCTUVQUGpQclRjT2FvN05kblhkTlZQajk2WVlZWHhON3hvTlNJbgo3VG83YXJOdHpKT1M1ckFYZm9PUElFUGxPWUhPZWE2MlFWYUlmZVc3TmRqS2Q3blNEZUkwUVdEL2dXdlV6a1pICmhMZ3IrMVRXZzNldFlZSHB0VnUxM2R6NUFSdzBxYU5sZkZTNjBGVFhXTi9jcVRpSXkvUjVHTmswNEtNbjRqZz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-plt-ingress-cert", + Namespace: "ricxapp", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret7 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURnakNDQW1xZ0F3SUJBZ0lRV3YrZWhsNzZBd1FYcURQTDB6SFk2akFOQmdrcWhraUc5dzBCQVFzRkFEQTkKTVRzd09RWURWUVFERXpJdlF6MVZVeTlQUFU4dFVrRk9JRUZzYkdsaGJtTmxMMDlWUFU4dFVrRk9JRk52Wm5SMwpZWEpsSUVOdmJXMTFibWwwZVRBZUZ3MHlNekV3TWpjd09UTXhOVGxhRncwME9ERXdNakF3T1RNeE5UbGFNRVV4ClF6QkJCZ05WQkFNVE9pOURQVlZUTDA4OVR5MVNRVTRnUVd4c2FXRnVZMlV2VDFVOVR5MVNRVTRnVTI5bWRIZGgKY21VZ1EyOXRiWFZ1YVhSNUwwTk9QV2hsYkcwd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFSwpBb0lCQVFEQk8yek5aUUVjZ3p5Q0NPQWhrR2NBZU1udGl5cHFmRlZ1UDFSK0RTanZLVTJDZ3Z3YjR3ckY4V3VPCldsVnUwKzZVR0tmWXZ2eGsyaFhzRkJFN1N6anRYc01tS1JmTVRkM0pWRHVRb3RkYTBEWkNQbUQ4Q01nV2tkUTUKVTdqZWIrMmhIcDlXT2tCa1JsazJNQ3NkaFl4UnJ5cExtUnNMODdRV1VjWHRvYUdDOUMvaW9lZS9tU3V6YnZidwpPZUJ6ZEt2blZqWCtXRmVvOGlvRGRlQk0wTmdGZExhMkd0MUdVYm5iWTZhL01aeS96SlhINjFVbmYwK09lN2lFCjR1cWhEUFYxMGZPUUkreFBQOGFuVThnNyt3eHY3enduaXJ0Tlk3M3l5S3RHUVlHaDhQZXk1SldlTG9RYzFaaUIKcm45eVpNTjNNdGh6Ynp4V2RRbXhrcEJCbnlSbEFnTUJBQUdqZGpCME1BNEdBMVVkRHdFQi93UUVBd0lGb0RBZApCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd0l3REFZRFZSMFRBUUgvQkFJd0FEQWZCZ05WCkhTTUVHREFXZ0JUcnpsSFVOdkxrMFVXZTFOQ3B5QUcwVnUwa3d6QVVCZ05WSFJFRURUQUxnZ2xoZFhndFpXNTAKY25rd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFNQVh1ei9OYm5xVW9jRmNXQVFEM2k2bUs0THVJcXZKa0ViWQpyeUlvRUl6bWFzclBaRmh2dlN0bmYrUVlSc3prQVdndm5pelBLdmJ0MWMyQ1ZpUDQvRWJ6cjFUWnRuZ1pBWDljCnZBcjc1djVnc3k3RzdTS3I4cEYrTnpqc1BMajlFYUp6UnJCZ1RsRnY5cFg3R2tnVVlvQWRKSzJMaGZLS1BVR1gKZ0M4cGJIajB1YmpDaFV6L2JVR3gvTlBCQ1dPcHB2RzRXVzIwQytVOWtkNHZNWENEZVBhYklmWXJIL2dkTDZNVwpCZEY1VDk1SXJNUHVlL1JDZzcwbWhOemZlMmlsaGJkdmR6OFhEaStjQm8yQXA5QVdaZGZVWTEzVkFLSmlsaG16CkRTTWN2ZWFJVUdUOTc1VEo3ei9xa1R1elNLclNxbUVYY3pRSnYvWjV3OXc1c1hLcm4xZz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBd1R0c3pXVUJISU04Z2dqZ0laQm5BSGpKN1lzcWFueFZiajlVZmcwbzd5bE5nb0w4CkcrTUt4ZkZyamxwVmJ0UHVsQmluMkw3OFpOb1Y3QlFSTzBzNDdWN0RKaWtYekUzZHlWUTdrS0xYV3RBMlFqNWcKL0FqSUZwSFVPVk80M20vdG9SNmZWanBBWkVaWk5qQXJIWVdNVWE4cVM1a2JDL08wRmxIRjdhR2hndlF2NHFIbgp2NWtyczI3MjhEbmdjM1NyNTFZMS9saFhxUElxQTNYZ1RORFlCWFMydGhyZFJsRzUyMk9tdnpHY3Y4eVZ4K3RWCkozOVBqbnU0aE9McW9RejFkZEh6a0NQc1R6L0dwMVBJTy9zTWIrODhKNHE3VFdPOThzaXJSa0dCb2ZEM3N1U1YKbmk2RUhOV1lnYTUvY21URGR6TFljMjg4Vm5VSnNaS1FRWjhrWlFJREFRQUJBb0lCQVFDMlhUb0xBbWN4SEo1UApic2J3aGxMZmZCKyt3eGR0MWhmZWE0QjNVajR1c0lGSlNndGEya1RCbVYzVHhHZGFxRU5DbTU1VkRiSXdFQzZlClZqWUpDcTRZUDlYWFB2TUp5dmNrMmcwNUxLWW9POWJwWCt1eUVTdWRPVlhjSUtxWnEzTE9HNU52RXB6UXhoL04KNTFuWmk3OXBHL0xEMUNSVmZGT2F1T1FlcCt0QkpVVlRxc2FSQ2RyZEhJUndtK1NDak9WTWFhTnRkeWhKSjdzNgp3MndIMzJZRWZ4Z2Z4eWEvTURtMDBiTGNBSjlyeTh1VWdjVjdvcGJUc3ZkQ2hhVytYbWduc040WlZTanR2emFGCmhjSERUSGxJaGc5RzZPanorME91SjZ2d0tmR2ttcjlnWi9RZWRuNERKa01FZ1o4RVdWZEsvL2FGNWZkbmtXS3cKRGRTVmNlQ2xBb0dCQU9zTXJBZ2dFSmdvQjN3VGcrMU00TzRGT3NIZ2RSUmh1cUpkdllTaTlkQ0d5eCtNSUE5WQp1SzhkVEZzM0dwZGN2djNaWExUay9yaWVNN0xFREdPeS9XdTNsYStZNEhaYmR4OEhjMzZmNEtyY2RnR1J6WlJrClgybzZUVDhGSGMzVVpnaFBEVGRsM2srcWZvZHo1OEhqeHdoMmszUTdLNmNDMlc3VFBISTJHSk56QW9HQkFOSjAKa2VFRHY3VThhUVJ3K01QTmxsN2dOanZDamZyc1pCNFVwR0E4WUxnQWdZT3FjS2ZRb3pNUFprbnVXWVV3UjRORwo4SDhSVDJ1Mnk4RUJ4Mm9nYjRLeXVwempDaFhMd0VLRHRZOUczMGxhMG1tSm9hK3hCeTBSc1RWaGEzczRoWE4zCjVLMUV3OVJWTHhxbEVOZXk4bFVyY3BTcXgzeTMyTFFaRCs0WUErTEhBb0dCQUp5VWduMmZMcTdONjc2Q0daNloKV2pYMWtlRFpyK1QxL2Fod0hmSWZ4UFUyOWxWN3VWZS8yTGYvSW9DWlFzT1dhejBiOGFBbjlHLzBJNmh3NVhmOQpJc2tCTVZ3YTBWekhMYUdrQ3hKTld4TTNiZjA1cmVPdXdjazRNWUZMM1VEaXYxM0ZtNTVONUR6WjdSUTY2Q2JICm9DMUpJSTJMWlZjS2xPSTVJY2xMdEM5MUFvR0FSek1nMTF1SlZDdG43QlM4VktJTktYUDVaU1poR204M1ArWUQKNW5zR3pibCtGNmxtQzZCT1ZrdnpjemVzR1o5SDBtWUJuenVmL3ZVTTRmTlVIOWR4WW1wTk1CNnZuc2diOTJUUAoyL1ZDUFhMNGxMUDNlNVVNdEhhejJUZG9RWHZSeWtyWmxyVVkrNUVHS3FHRm5UUHhRRmMrb0lWV2tCOHl0VnQxClJEdmp0S2tDZ1lBNi9vSFhpd05BbGEvM0Y3Z3QwUzFmdWl5Vkd5NVI5cHFRY0VxZmtVMlFpUmpORmU3b1RiRjAKNFZPVFJzb1AzMURWbGgzV0ZISk13VDN6UDNEOVFqMHpiWjIxQ0ZUQTZXOVY1SnJaWDkwYmJIbXZteFVXdFZzYgpzZ1FwQ3cwZU9ZME11VGRrNkdsM3pQNzB3UStkUGRLVFp2UWNZRmlJWkkvVkN6SlNOK1NrQVE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricxapp", + Name: "secret-aux-ingress-cert", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret8 := &corev1.Secret{ + Data: map[string][]uint8{ + "ca.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaakNDQWs2Z0F3SUJBZ0lSQU0vRGZDOXJ0R0tBdHh3ZlVBL0tOR3N3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFN01Ea0dBMVVFQXhNeUwwTTlWVk12VHoxUExWSkJUaUJCYkd4cFlXNWpaUzlQVlQxUExWSkJUaUJUYjJaMApkMkZ5WlNCRGIyMXRkVzVwZEhrd0hoY05Nak14TURJM01Ea3pNakF3V2hjTk5EZ3hNREl3TURrek1qQXdXakE5Ck1Uc3dPUVlEVlFRREV6SXZRejFWVXk5UFBVOHRVa0ZPSUVGc2JHbGhibU5sTDA5VlBVOHRVa0ZPSUZOdlpuUjMKWVhKbElFTnZiVzExYm1sMGVUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUoydAoxcnF0TkFxNndpV3BxRktDa1lUczVzejJueCtoSGhoQk9iQXZMK1doekZPQXQ3RVFQRnBSKzEzOTNPMFdJM0tmCm1ncmJPNHM1eDhwd0pIekFHNTFnTlh2TFArSjJhREVFcG1JcUIrajQ0ZVpuZytmTzd4c01ua0Z3UGVkdHdMUmcKR1QxdzVqTDZ4YWR1SjhKamx6dXR0ZDcxNTYxMEk5MWhPb1NCVXRJWkRiQmk1NUQ0MlBHUzV0YmNFeWhrYm13QQplR3M5NWVTT1doS0RFTTZvcXVidU5IVWNRczB6ODB2eGc1UlN5OU9lRG1CQi9mVTFtT3dmOTY2NGpKNHhGZUMzCmFLMWh2a1NHbGNJNlhrb2g0TkV2WlpZb21MZGh1QzVlVmtzS0Flay9UUXhXeGlmWHhpWlBPSVh0U0ZacW5rcmEKbmdLSmdyUWdHNTczbVBNVHBHRUNBd0VBQWFOaE1GOHdEZ1lEVlIwUEFRSC9CQVFEQWdLa01CMEdBMVVkSlFRVwpNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXCkJCUk42VU5SK3NLV28vUXFzbW04bXZFYmw3ckxGREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBYXZ0aVBVYVUKbkVTVXU1ZFFsa1RTVnNpMFlWM0Z0UldCMGMvVjRGV3JjS3NtT1ZwY2dUVlpBQ2d2Sks5RnpTV2cxNUo4eS9XUwo3bUN6Q1VlS2t6bjNJYytiTm9kbldlSDdxcWYyTUdIUnladmxxN3hyVUlPSHJpdG81WFB5Ui9VR2IyUnRrVnBYCkdZekRhRnhka1pNL3dUK29wVjlhNWh5THErbWRqQTFIVkluZUtyUlpvdWN3SFFjd2g3bmZMVGVOZTNBblNjSkQKaVRaY3dkbzlXMlhpR2dlbUttQjBac1FTTkZybWNMbVUyYWZBeFRQWFAwYUxUR25rN0RtR2RlWlErS2Fyd2dkVwpXdGFKS0V1ZFJYZ0xoSnZaNlBnNGVZZDA5M3UyUDNUSXo4dnhnZGVVS0IyWngwVURDQjJZditiMm1xNlJCMjIwCmg1RmR3c1cvMlg1RFNRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-ric-ca-cert", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Secret", + APIVersion: "v1", + }, + } + + secret9 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpakNDQW5LZ0F3SUJBZ0lRTEdWbEJ3ZmVTemVhbU1QNEdVVTZGekFOQmdrcWhraUc5dzBCQVFzRkFEQTkKTVRzd09RWURWUVFERXpJdlF6MVZVeTlQUFU4dFVrRk9JRUZzYkdsaGJtTmxMMDlWUFU4dFVrRk9JRk52Wm5SMwpZWEpsSUVOdmJXMTFibWwwZVRBZUZ3MHlNekV3TWpjd09UTXlNREJhRncwME9ERXdNakF3T1RNeU1EQmFNRTB4ClN6QkpCZ05WQkFNVFFpOURQVlZUTDA4OVR5MVNRVTRnUVd4c2FXRnVZMlV2VDFVOVR5MVNRVTRnVTI5bWRIZGgKY21VZ1EyOXRiWFZ1YVhSNUwwTk9QVkpKUXkxUWJHRjBabTl5YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRApnZ0VQQURDQ0FRb0NnZ0VCQU1Sa1Rlc0lNWWxTQlpkWXR1cGZaSWVQaWI5MXNta3Rsb1VvcTNzM29IZE45T2RlCjBkY1p4NkxEeEIzSU1qRzVWUlR6MjlSZnp5bVZCQVZKS081Mm5PQ3VaVThFS2IzUGpGUW5LMnVJZ1pUL0x5WnYKSko5ZTZSeEVsYW41elNGZk13bytsMjhLRHpYRGJ4R0pZSDQ1dFRINXRjcnNJcGw4c0dGNmRQbGxJdmt1cUdqKwpZS3lnaGJzeU9hdEdBWi9QN3VLaUIyZER5UEVNdmgxNzBBSjk1azg5eWxsSXJEelc0NDV3U0VyQUhuQjMwMWpsCk9PUDhNUnlDYzY2c3VuVDdhMHBnOXp4R1RsT2JHVFdUSG1Ec2VDSURxdXZjdVk3ckE0RkRqVUtGOFlseXNVaTAKa3NGNGd5eVVaaGtmQUdWanNqcHlQMVdseXRnMk1KVHF5YjBGbVRNQ0F3RUFBYU4yTUhRd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQjhHQTFVZEl3UVlNQmFBRkUzcFExSDZ3cGFqOUNxeWFieWE4UnVYdXNzVU1CUUdBMVVkRVFRTk1BdUMKQ1hKcFl5MWxiblJ5ZVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVR3S2NGejdwWVRVUHVtQzdUY2FQcVNnRAozNHpsUG9vNWh2QlRhRTQvRE5DeEo4ZCs5SytBeVZXckF1VTNnUFJ1V3o1VVQydERQZzFoMXpMSkNHZlo2UllQClFyM2krQU1ETWtvd0M5cGZtaEIyUG9oTjJrWjBmS2t1VWxaMlhUYXpOS2VZTFFSZUhWTUhJYkJuVnZTS1ZHUjYKYjkvQ0JPblMvcm5lV01SOVNiRW85TUNoZGd5Vjd4Y1VRb25NdVh6SytJZ21sOXlsb1QzOWJ0ZFVVY0V0RTZ6UQpCcnVWOFhPQmhPbGFwdUJJNlpPVTY3RHM0LzYvb0Z6eUxXU0ZiNWNEMEF3Rk40STFBcS80OGNNMjQ0RjZIbWpwCjZiZTluYmpYVVlaQmk0NkIxVWtRbk9aYkJNazd0c2FPLzBRR1VGbXZQZXRRYVlyM2ZtVDNlMFJWOC9KbWhBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeEdSTjZ3Z3hpVklGbDFpMjZsOWtoNCtKdjNXeWFTMldoU2lyZXplZ2QwMzA1MTdSCjF4bkhvc1BFSGNneU1ibFZGUFBiMUYvUEtaVUVCVWtvN25hYzRLNWxUd1FwdmMrTVZDY3JhNGlCbFA4dkptOGsKbjE3cEhFU1ZxZm5OSVY4ekNqNlhid29QTmNOdkVZbGdmam0xTWZtMXl1d2ltWHl3WVhwMCtXVWkrUzZvYVA1ZwpyS0NGdXpJNXEwWUJuOC91NHFJSFowUEk4UXkrSFh2UUFuM21UejNLV1Vpc1BOYmpqbkJJU3NBZWNIZlRXT1U0CjQvd3hISUp6cnF5NmRQdHJTbUQzUEVaT1U1c1pOWk1lWU94NElnT3E2OXk1anVzRGdVT05Rb1h4aVhLeFNMU1MKd1hpRExKUm1HUjhBWldPeU9uSS9WYVhLMkRZd2xPckp2UVdaTXdJREFRQUJBb0lCQVFDL25qNklQQTVaTmJaTwozVGhicFllbzNOeEIrc3lBNHdJaUduUjJYT2dzZjl1Y2hGK3B5SFdJMGduZ0pSMFVkd2dVMFhxRDFKZUVzdWloClg2aVlReEwrQmlyQzFnVUVOaVZ0Vm1wL0dVbVYzd1phTWNkQjJKRUtDOEViZjZndUQzejFXZXpYWXJGRWU5TTcKQVJjdEVaRkJtYXRPdXVkbmFzbU4wcldmUUpiSEdKR1FCV0xobU82OHpyZHhSTlhLNVdYemlWOUxnR05SSHNjagpVMW9xT1MyanJEbjhpRVRZaWcrcU1MK2NKUVVDb2krcThLVTVlMktzTitmaEgxUDQwM0RTaVp0M1VmVVlpL1BjCjBLZHpNaXByQThzS004TTI2ZDVDRGd3aDFJVHJIbi81MkRKVUZkVmpvZU9PMFFXZ1hURzY2UGE4S0FlR3dUKzUKamtaeS8zZ0JBb0dCQU9OdTB6Sm41NmEwSXR1Y1RmWjVLeGtOOC9xdTB6Q3BYcGp3T1RTZVFHZWNpcHRTeGJSRgpuaDVBYlg3dTVUb1VKbmVNYUhDQlZKNzlMKzRlZjBzSU16NnhxSmZ1YmFXeHVSRkFrZjNqMGIwY1l4bE14SjRiCmZPVDdnWUcyTGFUL1dYQjB0QncyMHQzSXFxRjY4SjdZTVYwbmVYTEZMVTFKT1ZLOU5SVUFCU0t6QW9HQkFOMFAKVittS1ZmZWlWNUxYT1JpaXhaQ0V0V2VnNW9iWnlLR2hHSGZacEQzS00zY2VFei9WVnlvY3AyOTM5UVcwQTRWeQpXL3hESXZWSVh6aHZneGIrdERiU1ZESlZRVThDQnVDd0I2enl2S1JMR21sR01HMUZrK1EvY0hIcENBcXc5NHdmCjZGUkpWMTBZMzllMEtvVVkzQXBhTVFCdDRxWUwvWEw4WTg5eHp1K0JBb0dBREN4K2VaQStRaG9hVTQ4R1RVOG4KRTJ3L3h3ZGNucG95U2hWeHVuTk9GejIxM2FLTW1wMnZYUWN0MVVHTVc1T0FpNTJrYVlGQ3VrL3JKTi9WQ0hzago0eE0zWndxSUsvcGJZYVVISzRQcVVpa1cxTi9iRm10NlAvZUdjeDhCU25ld25laGhTN0ZUa0RPUmpwczZEZ2FjCmZkUURHRFdkdXlsVVBDMk1qZGMyYnlrQ2dZRUFrSitGS0drMHJQb3N5UWk5ZGZ5bnZGRFdUYUhhcjhhemwrckoKRXovMFQraUZteHkyQTBFVDhaMGxmYXZCUmFYcjE5WmxqN2hzbW9ScXA0VnRBaEpJM01UbUNMZjJMalpwUVg1bwp4eUZYZ1RVUlptWmhNRndnMFdjZnJhYURlRnNtMlNuVzJhM1IxanA3MTZjcldrQlZWUUNFcG44OWxOeXJTQnNQClFaeDNnZ0VDZ1lBQ0lEL0tBcEx2aHA5dDR1a205YVg5bWR0OThVbmRjT2tNT1pwSW43SG82cDJvb0lTM01KTVUKeHJ6VVpXVm1wWGExQVprZHp4WU5BTUtGYTk0aTNXcXJwYSsrQXhoKzlTSVY2N0w5dkthNjBCVi9lbStkY2tWLwpaYWlVelE1ak9UalJtdXNxMFdjMWVIN0tNaUpmUGp0SGdDaFZ5VmRsak51WmxwTERNYWZQV1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Name: "secret-plt-ingress-cert", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret10 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURnekNDQW11Z0F3SUJBZ0lSQU5qajlCd1NJUTZQWjU2Z2hlaC83K2N3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFN01Ea0dBMVVFQXhNeUwwTTlWVk12VHoxUExWSkJUaUJCYkd4cFlXNWpaUzlQVlQxUExWSkJUaUJUYjJaMApkMkZ5WlNCRGIyMXRkVzVwZEhrd0hoY05Nak14TURJM01Ea3pNakF3V2hjTk5EZ3hNREl3TURrek1qQXdXakJGCk1VTXdRUVlEVlFRREV6b3ZRejFWVXk5UFBVOHRVa0ZPSUVGc2JHbGhibU5sTDA5VlBVOHRVa0ZPSUZOdlpuUjMKWVhKbElFTnZiVzExYm1sMGVTOURUajFvWld4dE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQXhac0szaTN0R3Z5WWZrVUkyOFpDc0xWYmdCSi91T3hkeVh4a3VvNWtHUVFOTnIrUWpEMmVYNWdPCnFrMUVaU2J0SnUxTDJnQjh0RXlpZ0Y3aWNRbmRzNFZGRUQyeTNMQ0VydmhVdTlmTkQvN0NRMGc4OG9UMzV5bW0KR3JqeGc4ZkNYWUxYWE83a0VPa0tzbHQ2eTB3c1R3NUhOVjBiaVAzQWZjcXlGM25ZS1hiODdUMXdRZ3hQc3E2SgpzQlhIRmJtUXJCblZMV0JWTWNjRUpDYi81L0MyTDFUV1NyUWhoV0g4WW1HZ1lTbnlSaEsyNVhhcDRwcm1iRDBqCmppMCtxS1o4VjRMSDVRc25ZcFBuR2RvSk53UEFpNksyOVZnZEtaZ2twOHYwT0JLWTRCcVRUbDIwUEswSGU0N1YKTnhFN29abmExRExZTGo4bDJhTkhSd2dpK1hVaXRRSURBUUFCbzNZd2REQU9CZ05WSFE4QkFmOEVCQU1DQmFBdwpIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQ01BQXdId1lEClZSMGpCQmd3Rm9BVVRlbERVZnJDbHFQMEtySnB2SnJ4RzVlNnl4UXdGQVlEVlIwUkJBMHdDNElKWVhWNExXVnUKZEhKNU1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWNHeVVqQk14cWdXWHNpVjBjV3hJZGh2UHFNbjdORW5XKwo2NVlweUxTMS9HaVRCT1VrR1dCOFMwSVJOcXpUaFRUREtpVGdCaWVicWlzTjBkTk5QYVZOcjRjNjhRZk1oYTNlCm94aEhYeU92eDAwN0g1dzNMZm05d1ZMVzlHNElMV1c1cFF1eERpMm1kUzJkYVNHUDVhV3FWY0dNMDNraU95ekgKUzJlY2JOaFEzSDRUa1VwT1EzakxQVzNZRS80MGVhRm5KaUpxazRBWmc2SktGVy9lL01mejBJOFVVSkZKQ1g4bwpxL2dud0ZzZFNOOGNvdkM1VERBMkt0Mjl3UmtUbW1zU1BKaUhwNHN1eTl3ME9sWFI0d3MwMEg0N3E3QlZuVFhyCjBIcWRRTk9relYvb3lrT1lrVFViclBmQWV4clllUmdvWHdpWlI1MndZSFUrODY2VkZXOTIKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBeFpzSzNpM3RHdnlZZmtVSTI4WkNzTFZiZ0JKL3VPeGR5WHhrdW81a0dRUU5OcitRCmpEMmVYNWdPcWsxRVpTYnRKdTFMMmdCOHRFeWlnRjdpY1FuZHM0VkZFRDJ5M0xDRXJ2aFV1OWZORC83Q1EwZzgKOG9UMzV5bW1Hcmp4ZzhmQ1hZTFhYTzdrRU9rS3NsdDZ5MHdzVHc1SE5WMGJpUDNBZmNxeUYzbllLWGI4N1QxdwpRZ3hQc3E2SnNCWEhGYm1RckJuVkxXQlZNY2NFSkNiLzUvQzJMMVRXU3JRaGhXSDhZbUdnWVNueVJoSzI1WGFwCjRwcm1iRDBqamkwK3FLWjhWNExINVFzbllwUG5HZG9KTndQQWk2SzI5VmdkS1pna3A4djBPQktZNEJxVFRsMjAKUEswSGU0N1ZOeEU3b1puYTFETFlMajhsMmFOSFJ3Z2krWFVpdFFJREFRQUJBb0lCQVFERW9uN1REb0oySzB1WAp3eHlJamlhSTd6OHBGNzl2Qmc1aDFGM3I0b3VxOVFRdEtiMHVRSmJiYTFXVWxDVHVQeWtZWm1QbmdEcVhzL2EwCnBUYlI0MDV4T0xtNzZwbVUwRGFJWW1iM01VeEdrVzFBUko4WmVjV3lpeGhXV1JsRDJFRUtpb3ZDVjVvdFZha20KU0svTm8zUW9DdjVERk82MGlFWEhKeS9HK3FGbXg5ZStlZUJQQm5ZbmR6UUVIZ1RhWldNT0ZvQ1Nwbkx1QmEyWAplT3cvaVJ4NTF0U0RtNzlzVzlXdDBDdlZORGpTRXJIMFQ1NTFmQmxBaE1XekVFTTI3RFc2anVMSCt3MVQ4bkdQCnZRZVcwdkhGOWsveWdxT3ZkU0trZ2k3TGpXMkFwRThESUVSQ0dCT1RkZmQzTSs1bGJ6azZOODdlcXpxRTB5aHoKaVRTT2EwWVZBb0dCQU95WjBpdUp0eXcwSjNGMytDRzNnVzBDMVZHQTBURDNCZE15dWNRN2dLOXVzclByVURtaApQTU4zQitYckdYOUpwVDVTbFZCSkRUUmFDMURGTno1eXpkOWlmRzg1NXg2RXNYREpvU2xYejRvT0hYYlJvQ3pmCk12YXNrbmNOTGdUVG5NcGU4YjhkeTlzbzNHY0padFRvd2t3VTZnd2tHUzFLa0lua2hTdlZxd3ZyQW9HQkFOWE8KdVVLNjc2SUpSYlhBVTJmT25OUjNmWXFFL1lFSXBzSXZaV3dveHBORDMyUFVCdVU3dE1IY2FpWm9Dcy9rb1IxTgpiYkROeTZVRE5BQk1NWmVuanNXM1hXcUJwQ280dFpPRnFrdkRveHp6bHpiQklMcDkxdDF1bEU2OThiNkFwNkhBCjIwcFdYMnYwODFhaisxeWoxWmlnT3RKdHJxM0tSRWs4TFQyT2RnUGZBb0dCQU1BVGtEK3dLWGhGVHRBYktPR1cKYkFmbmlPNEZ1YzRhZkN3Y3ZockVnNC9vT2tNK0FYOEhtcURFZlREMlQxaTZuTitmZzRBT0RoNDJDNEdpMlZwbApNU1RzZTBDQXJWUmxQUGZuZUdKcjJ4eWtvTjdaQjBQbVh5VktyQXppTWozUTNUU2RKM3lUMys4bm1PWTlCN0pJCjA1T1lWdmxNUlBRejJHdFpqWk1zZnhQSkFvR0FOSFdVWHhzZTBOTVZsNUtvNUQ5OW0yUDJHWmFuM0pFUzJYSm4Kb0RJaEJ1RVFYcDRYVXdkalFtMmlYZW9KUFJrTHJ2VGdoUkQ1ZG5OaXZ1L3kreExScFJGb2lrbGt6amM3MWdabAowbEVlSkd4Z0hiOGxHSnpucTAwR2RvdUVWUW1jRjhRS0NpTkhKbVhqanM2TlRoMmt1dDRWa0t2NHdBdHcxY2MrCkVteHg2R0VDZ1lFQWw5MGFCaUdyWURyeUJ0MTNmc3pmTlpTaS8ySjdzVFpsdjJFNGttbmlCUHpMYVlLZTU3ay8KK0dGM3NDYWtZcWRRb3RGSFMyOWNjWThaandrclZtQXRFWmNqR1REY0RvaTdFdWRKWEMwOVZjN2EweEFHbEdldwpadlhRc1N0T3hST211dUQvVGNuUWl6SXd3akZlNHJ5RE9oaDFvcDVrR2M3SnJha0FvVXdqNjB3PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-aux-ingress-cert", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret11 := &corev1.Secret{ + Data: map[string][]uint8{ + "ca.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURaakNDQWs2Z0F3SUJBZ0lSQU0vRGZDOXJ0R0tBdHh3ZlVBL0tOR3N3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFN01Ea0dBMVVFQXhNeUwwTTlWVk12VHoxUExWSkJUaUJCYkd4cFlXNWpaUzlQVlQxUExWSkJUaUJUYjJaMApkMkZ5WlNCRGIyMXRkVzVwZEhrd0hoY05Nak14TURJM01Ea3pNakF3V2hjTk5EZ3hNREl3TURrek1qQXdXakE5Ck1Uc3dPUVlEVlFRREV6SXZRejFWVXk5UFBVOHRVa0ZPSUVGc2JHbGhibU5sTDA5VlBVOHRVa0ZPSUZOdlpuUjMKWVhKbElFTnZiVzExYm1sMGVUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUoydAoxcnF0TkFxNndpV3BxRktDa1lUczVzejJueCtoSGhoQk9iQXZMK1doekZPQXQ3RVFQRnBSKzEzOTNPMFdJM0tmCm1ncmJPNHM1eDhwd0pIekFHNTFnTlh2TFArSjJhREVFcG1JcUIrajQ0ZVpuZytmTzd4c01ua0Z3UGVkdHdMUmcKR1QxdzVqTDZ4YWR1SjhKamx6dXR0ZDcxNTYxMEk5MWhPb1NCVXRJWkRiQmk1NUQ0MlBHUzV0YmNFeWhrYm13QQplR3M5NWVTT1doS0RFTTZvcXVidU5IVWNRczB6ODB2eGc1UlN5OU9lRG1CQi9mVTFtT3dmOTY2NGpKNHhGZUMzCmFLMWh2a1NHbGNJNlhrb2g0TkV2WlpZb21MZGh1QzVlVmtzS0Flay9UUXhXeGlmWHhpWlBPSVh0U0ZacW5rcmEKbmdLSmdyUWdHNTczbVBNVHBHRUNBd0VBQWFOaE1GOHdEZ1lEVlIwUEFRSC9CQVFEQWdLa01CMEdBMVVkSlFRVwpNQlFHQ0NzR0FRVUZCd01CQmdnckJnRUZCUWNEQWpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXCkJCUk42VU5SK3NLV28vUXFzbW04bXZFYmw3ckxGREFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBYXZ0aVBVYVUKbkVTVXU1ZFFsa1RTVnNpMFlWM0Z0UldCMGMvVjRGV3JjS3NtT1ZwY2dUVlpBQ2d2Sks5RnpTV2cxNUo4eS9XUwo3bUN6Q1VlS2t6bjNJYytiTm9kbldlSDdxcWYyTUdIUnladmxxN3hyVUlPSHJpdG81WFB5Ui9VR2IyUnRrVnBYCkdZekRhRnhka1pNL3dUK29wVjlhNWh5THErbWRqQTFIVkluZUtyUlpvdWN3SFFjd2g3bmZMVGVOZTNBblNjSkQKaVRaY3dkbzlXMlhpR2dlbUttQjBac1FTTkZybWNMbVUyYWZBeFRQWFAwYUxUR25rN0RtR2RlWlErS2Fyd2dkVwpXdGFKS0V1ZFJYZ0xoSnZaNlBnNGVZZDA5M3UyUDNUSXo4dnhnZGVVS0IyWngwVURDQjJZditiMm1xNlJCMjIwCmg1RmR3c1cvMlg1RFNRPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-ric-ca-cert", + Namespace: "ricxapp", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret12 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpakNDQW5LZ0F3SUJBZ0lRTEdWbEJ3ZmVTemVhbU1QNEdVVTZGekFOQmdrcWhraUc5dzBCQVFzRkFEQTkKTVRzd09RWURWUVFERXpJdlF6MVZVeTlQUFU4dFVrRk9JRUZzYkdsaGJtTmxMMDlWUFU4dFVrRk9JRk52Wm5SMwpZWEpsSUVOdmJXMTFibWwwZVRBZUZ3MHlNekV3TWpjd09UTXlNREJhRncwME9ERXdNakF3T1RNeU1EQmFNRTB4ClN6QkpCZ05WQkFNVFFpOURQVlZUTDA4OVR5MVNRVTRnUVd4c2FXRnVZMlV2VDFVOVR5MVNRVTRnVTI5bWRIZGgKY21VZ1EyOXRiWFZ1YVhSNUwwTk9QVkpKUXkxUWJHRjBabTl5YlRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRApnZ0VQQURDQ0FRb0NnZ0VCQU1Sa1Rlc0lNWWxTQlpkWXR1cGZaSWVQaWI5MXNta3Rsb1VvcTNzM29IZE45T2RlCjBkY1p4NkxEeEIzSU1qRzVWUlR6MjlSZnp5bVZCQVZKS081Mm5PQ3VaVThFS2IzUGpGUW5LMnVJZ1pUL0x5WnYKSko5ZTZSeEVsYW41elNGZk13bytsMjhLRHpYRGJ4R0pZSDQ1dFRINXRjcnNJcGw4c0dGNmRQbGxJdmt1cUdqKwpZS3lnaGJzeU9hdEdBWi9QN3VLaUIyZER5UEVNdmgxNzBBSjk1azg5eWxsSXJEelc0NDV3U0VyQUhuQjMwMWpsCk9PUDhNUnlDYzY2c3VuVDdhMHBnOXp4R1RsT2JHVFdUSG1Ec2VDSURxdXZjdVk3ckE0RkRqVUtGOFlseXNVaTAKa3NGNGd5eVVaaGtmQUdWanNqcHlQMVdseXRnMk1KVHF5YjBGbVRNQ0F3RUFBYU4yTUhRd0RnWURWUjBQQVFILwpCQVFEQWdXZ01CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUJCZ2dyQmdFRkJRY0RBakFNQmdOVkhSTUJBZjhFCkFqQUFNQjhHQTFVZEl3UVlNQmFBRkUzcFExSDZ3cGFqOUNxeWFieWE4UnVYdXNzVU1CUUdBMVVkRVFRTk1BdUMKQ1hKcFl5MWxiblJ5ZVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQVR3S2NGejdwWVRVUHVtQzdUY2FQcVNnRAozNHpsUG9vNWh2QlRhRTQvRE5DeEo4ZCs5SytBeVZXckF1VTNnUFJ1V3o1VVQydERQZzFoMXpMSkNHZlo2UllQClFyM2krQU1ETWtvd0M5cGZtaEIyUG9oTjJrWjBmS2t1VWxaMlhUYXpOS2VZTFFSZUhWTUhJYkJuVnZTS1ZHUjYKYjkvQ0JPblMvcm5lV01SOVNiRW85TUNoZGd5Vjd4Y1VRb25NdVh6SytJZ21sOXlsb1QzOWJ0ZFVVY0V0RTZ6UQpCcnVWOFhPQmhPbGFwdUJJNlpPVTY3RHM0LzYvb0Z6eUxXU0ZiNWNEMEF3Rk40STFBcS80OGNNMjQ0RjZIbWpwCjZiZTluYmpYVVlaQmk0NkIxVWtRbk9aYkJNazd0c2FPLzBRR1VGbXZQZXRRYVlyM2ZtVDNlMFJWOC9KbWhBPT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeEdSTjZ3Z3hpVklGbDFpMjZsOWtoNCtKdjNXeWFTMldoU2lyZXplZ2QwMzA1MTdSCjF4bkhvc1BFSGNneU1ibFZGUFBiMUYvUEtaVUVCVWtvN25hYzRLNWxUd1FwdmMrTVZDY3JhNGlCbFA4dkptOGsKbjE3cEhFU1ZxZm5OSVY4ekNqNlhid29QTmNOdkVZbGdmam0xTWZtMXl1d2ltWHl3WVhwMCtXVWkrUzZvYVA1ZwpyS0NGdXpJNXEwWUJuOC91NHFJSFowUEk4UXkrSFh2UUFuM21UejNLV1Vpc1BOYmpqbkJJU3NBZWNIZlRXT1U0CjQvd3hISUp6cnF5NmRQdHJTbUQzUEVaT1U1c1pOWk1lWU94NElnT3E2OXk1anVzRGdVT05Rb1h4aVhLeFNMU1MKd1hpRExKUm1HUjhBWldPeU9uSS9WYVhLMkRZd2xPckp2UVdaTXdJREFRQUJBb0lCQVFDL25qNklQQTVaTmJaTwozVGhicFllbzNOeEIrc3lBNHdJaUduUjJYT2dzZjl1Y2hGK3B5SFdJMGduZ0pSMFVkd2dVMFhxRDFKZUVzdWloClg2aVlReEwrQmlyQzFnVUVOaVZ0Vm1wL0dVbVYzd1phTWNkQjJKRUtDOEViZjZndUQzejFXZXpYWXJGRWU5TTcKQVJjdEVaRkJtYXRPdXVkbmFzbU4wcldmUUpiSEdKR1FCV0xobU82OHpyZHhSTlhLNVdYemlWOUxnR05SSHNjagpVMW9xT1MyanJEbjhpRVRZaWcrcU1MK2NKUVVDb2krcThLVTVlMktzTitmaEgxUDQwM0RTaVp0M1VmVVlpL1BjCjBLZHpNaXByQThzS004TTI2ZDVDRGd3aDFJVHJIbi81MkRKVUZkVmpvZU9PMFFXZ1hURzY2UGE4S0FlR3dUKzUKamtaeS8zZ0JBb0dCQU9OdTB6Sm41NmEwSXR1Y1RmWjVLeGtOOC9xdTB6Q3BYcGp3T1RTZVFHZWNpcHRTeGJSRgpuaDVBYlg3dTVUb1VKbmVNYUhDQlZKNzlMKzRlZjBzSU16NnhxSmZ1YmFXeHVSRkFrZjNqMGIwY1l4bE14SjRiCmZPVDdnWUcyTGFUL1dYQjB0QncyMHQzSXFxRjY4SjdZTVYwbmVYTEZMVTFKT1ZLOU5SVUFCU0t6QW9HQkFOMFAKVittS1ZmZWlWNUxYT1JpaXhaQ0V0V2VnNW9iWnlLR2hHSGZacEQzS00zY2VFei9WVnlvY3AyOTM5UVcwQTRWeQpXL3hESXZWSVh6aHZneGIrdERiU1ZESlZRVThDQnVDd0I2enl2S1JMR21sR01HMUZrK1EvY0hIcENBcXc5NHdmCjZGUkpWMTBZMzllMEtvVVkzQXBhTVFCdDRxWUwvWEw4WTg5eHp1K0JBb0dBREN4K2VaQStRaG9hVTQ4R1RVOG4KRTJ3L3h3ZGNucG95U2hWeHVuTk9GejIxM2FLTW1wMnZYUWN0MVVHTVc1T0FpNTJrYVlGQ3VrL3JKTi9WQ0hzago0eE0zWndxSUsvcGJZYVVISzRQcVVpa1cxTi9iRm10NlAvZUdjeDhCU25ld25laGhTN0ZUa0RPUmpwczZEZ2FjCmZkUURHRFdkdXlsVVBDMk1qZGMyYnlrQ2dZRUFrSitGS0drMHJQb3N5UWk5ZGZ5bnZGRFdUYUhhcjhhemwrckoKRXovMFQraUZteHkyQTBFVDhaMGxmYXZCUmFYcjE5WmxqN2hzbW9ScXA0VnRBaEpJM01UbUNMZjJMalpwUVg1bwp4eUZYZ1RVUlptWmhNRndnMFdjZnJhYURlRnNtMlNuVzJhM1IxanA3MTZjcldrQlZWUUNFcG44OWxOeXJTQnNQClFaeDNnZ0VDZ1lBQ0lEL0tBcEx2aHA5dDR1a205YVg5bWR0OThVbmRjT2tNT1pwSW43SG82cDJvb0lTM01KTVUKeHJ6VVpXVm1wWGExQVprZHp4WU5BTUtGYTk0aTNXcXJwYSsrQXhoKzlTSVY2N0w5dkthNjBCVi9lbStkY2tWLwpaYWlVelE1ak9UalJtdXNxMFdjMWVIN0tNaUpmUGp0SGdDaFZ5VmRsak51WmxwTERNYWZQV1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-plt-ingress-cert", + Namespace: "ricxapp", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret13 := &corev1.Secret{ + Data: map[string][]uint8{ + "tls.crt": getDataForSecret("LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURnekNDQW11Z0F3SUJBZ0lSQU5qajlCd1NJUTZQWjU2Z2hlaC83K2N3RFFZSktvWklodmNOQVFFTEJRQXcKUFRFN01Ea0dBMVVFQXhNeUwwTTlWVk12VHoxUExWSkJUaUJCYkd4cFlXNWpaUzlQVlQxUExWSkJUaUJUYjJaMApkMkZ5WlNCRGIyMXRkVzVwZEhrd0hoY05Nak14TURJM01Ea3pNakF3V2hjTk5EZ3hNREl3TURrek1qQXdXakJGCk1VTXdRUVlEVlFRREV6b3ZRejFWVXk5UFBVOHRVa0ZPSUVGc2JHbGhibU5sTDA5VlBVOHRVa0ZPSUZOdlpuUjMKWVhKbElFTnZiVzExYm1sMGVTOURUajFvWld4dE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQXhac0szaTN0R3Z5WWZrVUkyOFpDc0xWYmdCSi91T3hkeVh4a3VvNWtHUVFOTnIrUWpEMmVYNWdPCnFrMUVaU2J0SnUxTDJnQjh0RXlpZ0Y3aWNRbmRzNFZGRUQyeTNMQ0VydmhVdTlmTkQvN0NRMGc4OG9UMzV5bW0KR3JqeGc4ZkNYWUxYWE83a0VPa0tzbHQ2eTB3c1R3NUhOVjBiaVAzQWZjcXlGM25ZS1hiODdUMXdRZ3hQc3E2SgpzQlhIRmJtUXJCblZMV0JWTWNjRUpDYi81L0MyTDFUV1NyUWhoV0g4WW1HZ1lTbnlSaEsyNVhhcDRwcm1iRDBqCmppMCtxS1o4VjRMSDVRc25ZcFBuR2RvSk53UEFpNksyOVZnZEtaZ2twOHYwT0JLWTRCcVRUbDIwUEswSGU0N1YKTnhFN29abmExRExZTGo4bDJhTkhSd2dpK1hVaXRRSURBUUFCbzNZd2REQU9CZ05WSFE4QkFmOEVCQU1DQmFBdwpIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUF3R0ExVWRFd0VCL3dRQ01BQXdId1lEClZSMGpCQmd3Rm9BVVRlbERVZnJDbHFQMEtySnB2SnJ4RzVlNnl4UXdGQVlEVlIwUkJBMHdDNElKWVhWNExXVnUKZEhKNU1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQWNHeVVqQk14cWdXWHNpVjBjV3hJZGh2UHFNbjdORW5XKwo2NVlweUxTMS9HaVRCT1VrR1dCOFMwSVJOcXpUaFRUREtpVGdCaWVicWlzTjBkTk5QYVZOcjRjNjhRZk1oYTNlCm94aEhYeU92eDAwN0g1dzNMZm05d1ZMVzlHNElMV1c1cFF1eERpMm1kUzJkYVNHUDVhV3FWY0dNMDNraU95ekgKUzJlY2JOaFEzSDRUa1VwT1EzakxQVzNZRS80MGVhRm5KaUpxazRBWmc2SktGVy9lL01mejBJOFVVSkZKQ1g4bwpxL2dud0ZzZFNOOGNvdkM1VERBMkt0Mjl3UmtUbW1zU1BKaUhwNHN1eTl3ME9sWFI0d3MwMEg0N3E3QlZuVFhyCjBIcWRRTk9relYvb3lrT1lrVFViclBmQWV4clllUmdvWHdpWlI1MndZSFUrODY2VkZXOTIKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="), + "tls.key": getDataForSecret("LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBeFpzSzNpM3RHdnlZZmtVSTI4WkNzTFZiZ0JKL3VPeGR5WHhrdW81a0dRUU5OcitRCmpEMmVYNWdPcWsxRVpTYnRKdTFMMmdCOHRFeWlnRjdpY1FuZHM0VkZFRDJ5M0xDRXJ2aFV1OWZORC83Q1EwZzgKOG9UMzV5bW1Hcmp4ZzhmQ1hZTFhYTzdrRU9rS3NsdDZ5MHdzVHc1SE5WMGJpUDNBZmNxeUYzbllLWGI4N1QxdwpRZ3hQc3E2SnNCWEhGYm1RckJuVkxXQlZNY2NFSkNiLzUvQzJMMVRXU3JRaGhXSDhZbUdnWVNueVJoSzI1WGFwCjRwcm1iRDBqamkwK3FLWjhWNExINVFzbllwUG5HZG9KTndQQWk2SzI5VmdkS1pna3A4djBPQktZNEJxVFRsMjAKUEswSGU0N1ZOeEU3b1puYTFETFlMajhsMmFOSFJ3Z2krWFVpdFFJREFRQUJBb0lCQVFERW9uN1REb0oySzB1WAp3eHlJamlhSTd6OHBGNzl2Qmc1aDFGM3I0b3VxOVFRdEtiMHVRSmJiYTFXVWxDVHVQeWtZWm1QbmdEcVhzL2EwCnBUYlI0MDV4T0xtNzZwbVUwRGFJWW1iM01VeEdrVzFBUko4WmVjV3lpeGhXV1JsRDJFRUtpb3ZDVjVvdFZha20KU0svTm8zUW9DdjVERk82MGlFWEhKeS9HK3FGbXg5ZStlZUJQQm5ZbmR6UUVIZ1RhWldNT0ZvQ1Nwbkx1QmEyWAplT3cvaVJ4NTF0U0RtNzlzVzlXdDBDdlZORGpTRXJIMFQ1NTFmQmxBaE1XekVFTTI3RFc2anVMSCt3MVQ4bkdQCnZRZVcwdkhGOWsveWdxT3ZkU0trZ2k3TGpXMkFwRThESUVSQ0dCT1RkZmQzTSs1bGJ6azZOODdlcXpxRTB5aHoKaVRTT2EwWVZBb0dCQU95WjBpdUp0eXcwSjNGMytDRzNnVzBDMVZHQTBURDNCZE15dWNRN2dLOXVzclByVURtaApQTU4zQitYckdYOUpwVDVTbFZCSkRUUmFDMURGTno1eXpkOWlmRzg1NXg2RXNYREpvU2xYejRvT0hYYlJvQ3pmCk12YXNrbmNOTGdUVG5NcGU4YjhkeTlzbzNHY0padFRvd2t3VTZnd2tHUzFLa0lua2hTdlZxd3ZyQW9HQkFOWE8KdVVLNjc2SUpSYlhBVTJmT25OUjNmWXFFL1lFSXBzSXZaV3dveHBORDMyUFVCdVU3dE1IY2FpWm9Dcy9rb1IxTgpiYkROeTZVRE5BQk1NWmVuanNXM1hXcUJwQ280dFpPRnFrdkRveHp6bHpiQklMcDkxdDF1bEU2OThiNkFwNkhBCjIwcFdYMnYwODFhaisxeWoxWmlnT3RKdHJxM0tSRWs4TFQyT2RnUGZBb0dCQU1BVGtEK3dLWGhGVHRBYktPR1cKYkFmbmlPNEZ1YzRhZkN3Y3ZockVnNC9vT2tNK0FYOEhtcURFZlREMlQxaTZuTitmZzRBT0RoNDJDNEdpMlZwbApNU1RzZTBDQXJWUmxQUGZuZUdKcjJ4eWtvTjdaQjBQbVh5VktyQXppTWozUTNUU2RKM3lUMys4bm1PWTlCN0pJCjA1T1lWdmxNUlBRejJHdFpqWk1zZnhQSkFvR0FOSFdVWHhzZTBOTVZsNUtvNUQ5OW0yUDJHWmFuM0pFUzJYSm4Kb0RJaEJ1RVFYcDRYVXdkalFtMmlYZW9KUFJrTHJ2VGdoUkQ1ZG5OaXZ1L3kreExScFJGb2lrbGt6amM3MWdabAowbEVlSkd4Z0hiOGxHSnpucTAwR2RvdUVWUW1jRjhRS0NpTkhKbVhqanM2TlRoMmt1dDRWa0t2NHdBdHcxY2MrCkVteHg2R0VDZ1lFQWw5MGFCaUdyWURyeUJ0MTNmc3pmTlpTaS8ySjdzVFpsdjJFNGttbmlCUHpMYVlLZTU3ay8KK0dGM3NDYWtZcWRRb3RGSFMyOWNjWThaandrclZtQXRFWmNqR1REY0RvaTdFdWRKWEMwOVZjN2EweEFHbEdldwpadlhRc1N0T3hST211dUQvVGNuUWl6SXd3akZlNHJ5RE9oaDFvcDVrR2M3SnJha0FvVXdqNjB3PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo="), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricxapp", + Name: "secret-aux-ingress-cert", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Secret", + APIVersion: "v1", + }, + } + + secret14 := &corev1.Secret{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + Data: map[string][]uint8{ + ".dockercfg": getDataForSecret("eyJuZXh1czMuby1yYW4tc2Mub3JnOjEwMDAyIjp7InVzZXJuYW1lIjoiZG9ja2VyIiwicGFzc3dvcmQiOiJkb2NrZXIiLCJlbWFpbCI6IkAiLCJhdXRoIjoiWkc5amEyVnlPbVJ2WTJ0bGNnPT0ifX0="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-nexus3-o-ran-sc-org-10002", + Namespace: "ricplt", + }, + Type: corev1.SecretType("kubernetes.io/dockercfg"), + } + + secret15 := &corev1.Secret{ + Data: map[string][]uint8{ + ".dockercfg": getDataForSecret("eyJuZXh1czMuby1yYW4tc2Mub3JnOjEwMDA0Ijp7InVzZXJuYW1lIjoiZG9ja2VyIiwicGFzc3dvcmQiOiJkb2NrZXIiLCJlbWFpbCI6IkAiLCJhdXRoIjoiWkc5amEyVnlPbVJ2WTJ0bGNnPT0ifX0="), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Name: "secret-nexus3-o-ran-sc-org-10004", + }, + Type: corev1.SecretType("kubernetes.io/dockercfg"), + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret16 := &corev1.Secret{ + Data: map[string][]uint8{ + ".dockercfg": getDataForSecret("eyJuZXh1czMuby1yYW4tc2Mub3JnOjEwMDAyIjp7InVzZXJuYW1lIjoiZG9ja2VyIiwicGFzc3dvcmQiOiJkb2NrZXIiLCJlbWFpbCI6IkAiLCJhdXRoIjoiWkc5amEyVnlPbVJ2WTJ0bGNnPT0ifX0="), + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricxapp", + Name: "secret-nexus3-o-ran-sc-org-10002", + }, + Type: corev1.SecretType("kubernetes.io/dockercfg"), + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret17 := &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-nexus3-o-ran-sc-org-10004", + Namespace: "ricxapp", + }, + Type: corev1.SecretType("kubernetes.io/dockercfg"), + TypeMeta: metav1.TypeMeta{ + Kind: "Secret", + APIVersion: "v1", + }, + Data: map[string][]uint8{ + ".dockercfg": getDataForSecret("eyJuZXh1czMuby1yYW4tc2Mub3JnOjEwMDA0Ijp7InVzZXJuYW1lIjoiZG9ja2VyIiwicGFzc3dvcmQiOiJkb2NrZXIiLCJlbWFpbCI6IkAiLCJhdXRoIjoiWkc5amEyVnlPbVJ2WTJ0bGNnPT0ifX0="), + }, + } + + secret18 := &corev1.Secret{ + Data: map[string][]uint8{ + ".dockercfg": getDataForSecret("eyJuZXh1czMuby1yYW4tc2Mub3JnOjEwMDA0Ijp7InVzZXJuYW1lIjoiZG9ja2VyIiwicGFzc3dvcmQiOiJkb2NrZXIiLCJlbWFpbCI6IkAiLCJhdXRoIjoiWkc5amEyVnlPbVJ2WTJ0bGNnPT0ifX0="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-nexus3-o-ran-sc-org-10004", + Namespace: "ricinfra", + }, + Type: corev1.SecretType("kubernetes.io/dockercfg"), + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret19 := &corev1.Secret{ + Data: map[string][]uint8{ + ".dockercfg": getDataForSecret("eyJuZXh1czMuby1yYW4tc2Mub3JnOjEwMDAyIjp7InVzZXJuYW1lIjoiZG9ja2VyIiwicGFzc3dvcmQiOiJkb2NrZXIiLCJlbWFpbCI6IkAiLCJhdXRoIjoiWkc5amEyVnlPbVJ2WTJ0bGNnPT0ifX0="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "secret-nexus3-o-ran-sc-org-10002", + Namespace: "ricinfra", + }, + Type: corev1.SecretType("kubernetes.io/dockercfg"), + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + secret20 := &corev1.Secret{ + Data: map[string][]uint8{ + "VESMGR_PRICOLLECTOR_USER": getDataForSecret("c2FtcGxlMQo="), + "VESMGR_PRICOLLECTOR_PASSWORD": getDataForSecret("JDJhJDEwJDBidWguMldlWXdOODY4WU13bk5ORXVORUFNTllWVTkuRlNNSkd5SUtWM2RHRVQvN29HT2k2Cg=="), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "vespa-secrets", + }, + Type: corev1.SecretType("Opaque"), + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Secret", + }, + } + + return []*corev1.Secret{secret1, secret2, secret3, secret4, secret5, secret6, secret7, secret8, secret9, secret10, secret11, secret12, secret13, secret14, secret15, secret16, secret17, secret18, secret19, secret20} } \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getServiceAccount.go b/depRicKubernetesOperator/internal/controller/getServiceAccount.go index eab86dd..db75091 100644 --- a/depRicKubernetesOperator/internal/controller/getServiceAccount.go +++ b/depRicKubernetesOperator/internal/controller/getServiceAccount.go @@ -18,6 +18,7 @@ func GetServiceAccount() []*corev1.ServiceAccount { Kind: "ServiceAccount", }, } + serviceAccount2 := &corev1.ServiceAccount{ ObjectMeta: metav1.ObjectMeta{ Namespace: "ricplt", @@ -28,6 +29,161 @@ func GetServiceAccount() []*corev1.ServiceAccount { Kind: "ServiceAccount", }, } - - return []*corev1.ServiceAccount{serviceAccount1,serviceAccount2} + + serviceAccount3 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + } + + serviceAccount4 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + "helm.sh/hook": "pre-upgrade", + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded", + }, + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + } + + serviceAccount5 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Name: "svcacct-tiller-ricxapp", + Namespace: "ricinfra", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + } + + serviceAccount6 := &corev1.ServiceAccount{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "tiller-secret-creator-xzhjjg", + Namespace: "ricinfra", + }, + } + + serviceAccount7 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + } + + serviceAccount8 := &corev1.ServiceAccount{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + ObjectMeta: metav1.ObjectMeta{ + Annotations: map[string]string{ + "helm.sh/hook": "pre-upgrade", + "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded", + }, + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + Name: "release-name-kong", + }, + } + + serviceAccount9 := &corev1.ServiceAccount{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "svcacct-ricplt-o1mediator", + Namespace: "ricplt", + }, + } + + serviceAccount10 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Name: "release-name-prometheus-alertmanager", + Namespace: "ricplt", + Labels: map[string]string{ + "component": "alertmanager", + "heritage": "Helm", + "release": "release-name", + "app": "prometheus", + "chart": "prometheus-11.3.0", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + } + + serviceAccount11 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "prometheus", + "chart": "prometheus-11.3.0", + "component": "server", + "heritage": "Helm", + "release": "release-name", + }, + Name: "release-name-prometheus-server", + Namespace: "ricplt", + }, + TypeMeta: metav1.TypeMeta{ + Kind: "ServiceAccount", + APIVersion: "v1", + }, + } + + serviceAccount12 := &corev1.ServiceAccount{ + ObjectMeta: metav1.ObjectMeta{ + Name: "assigner-sa", + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "ServiceAccount", + }, + } + + return []*corev1.ServiceAccount{serviceAccount1, serviceAccount2, serviceAccount3, serviceAccount4, serviceAccount5, serviceAccount6, serviceAccount7, serviceAccount8, serviceAccount9, serviceAccount10, serviceAccount11, serviceAccount12} } \ No newline at end of file diff --git a/depRicKubernetesOperator/internal/controller/getServices.go b/depRicKubernetesOperator/internal/controller/getServices.go index 05247ef..639c7fe 100644 --- a/depRicKubernetesOperator/internal/controller/getServices.go +++ b/depRicKubernetesOperator/internal/controller/getServices.go @@ -90,6 +90,7 @@ func GetService() []*corev1.Service { Kind: "Service", }, } + service3 := &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ @@ -255,6 +256,42 @@ func GetService() []*corev1.Service { }, } + service7 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-dbaas", + "chart": "dbaas-2.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-dbaas-tcp", + }, + Spec: corev1.ServiceSpec{ + ClusterIP: "None", + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "server", + Port: 6379, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "redis", + Type: intstr.Type(1), + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-dbaas", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } service8 := &corev1.Service{ ObjectMeta: metav1.ObjectMeta{ @@ -464,5 +501,921 @@ func GetService() []*corev1.Service { }, } - return []*corev1.Service{service1, service2, service3, service4,service5,service6,service8,service9,service10,service11,service12} + service13 := &corev1.Service{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "aux-entry", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "aux-entry-http-ingress-port", + Port: 80, + Protocol: corev1.Protocol("TCP"), + }, + corev1.ServicePort{ + Name: "aux-entry-https-ingress-port", + Port: 443, + Protocol: corev1.Protocol("TCP"), + }, + }, + PublishNotReadyAddresses: false, + }, + } + + service14 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "aux-entry", + Namespace: "ricxapp", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "aux-entry-http-ingress-port", + Port: 80, + Protocol: corev1.Protocol("TCP"), + }, + corev1.ServicePort{ + Protocol: corev1.Protocol("TCP"), + Name: "aux-entry-https-ingress-port", + Port: 443, + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + } + + service15 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "aux-entry", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "aux-entry-http-ingress-port", + Port: 80, + Protocol: corev1.Protocol("TCP"), + }, + corev1.ServicePort{ + Name: "aux-entry-https-ingress-port", + Port: 443, + Protocol: corev1.Protocol("TCP"), + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + } + + service16 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "aux-entry", + Namespace: "ricxapp", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Port: 80, + Protocol: corev1.Protocol("TCP"), + Name: "aux-entry-http-ingress-port", + }, + corev1.ServicePort{ + Name: "aux-entry-https-ingress-port", + Port: 443, + Protocol: corev1.Protocol("TCP"), + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + } + + service17 := &corev1.Service{ + Spec: corev1.ServiceSpec{ + Selector: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/component": "app", + }, + Type: corev1.ServiceType("NodePort"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "kong-proxy", + NodePort: 32080, + Port: 32080, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 32080, + }, + }, + corev1.ServicePort{ + Port: 32443, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 32443, + }, + Name: "kong-proxy-tls", + NodePort: 32443, + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "release-name-kong-proxy", + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + }, + }, + } + + service18 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "helm", + "name": "tiller", + }, + Name: "service-tiller-ricxapp", + Namespace: "ricinfra", + }, + Spec: corev1.ServiceSpec{ + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "helm", + "name": "tiller", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "tiller", + Port: 44134, + TargetPort: intstr.IntOrString{ + StrVal: "tiller", + Type: intstr.Type(1), + }, + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service19 := &corev1.Service{ + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Port: 5775, + Protocol: corev1.Protocol("UDP"), + TargetPort: intstr.IntOrString{ + IntVal: 5775, + }, + Name: "zipkincompact", + }, + corev1.ServicePort{ + Name: "jaegercompact", + Port: 6831, + Protocol: corev1.Protocol("UDP"), + TargetPort: intstr.IntOrString{ + IntVal: 6831, + }, + }, + corev1.ServicePort{ + Name: "jaegerbinary", + Port: 6832, + Protocol: corev1.Protocol("UDP"), + TargetPort: intstr.IntOrString{ + IntVal: 6832, + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "release": "release-name", + "app": "ricplt-jaegeradapter", + }, + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-jaegeradapter", + "chart": "jaegeradapter-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-jaegeradapter-agent", + Namespace: "ricplt", + }, + } + + service20 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-jaegeradapter", + "chart": "jaegeradapter-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-jaegeradapter-collector", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "jaegerhttpt", + Port: 14267, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 14267, + }, + }, + corev1.ServicePort{ + Port: 14268, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 14268, + }, + Name: "jaegerhttp", + }, + corev1.ServicePort{ + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 9411, + }, + Name: "zipkinhttp", + Port: 9411, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-jaegeradapter", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service21 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-jaegeradapter", + "chart": "jaegeradapter-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-jaegeradapter-query", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Selector: map[string]string{ + "app": "ricplt-jaegeradapter", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "httpquery", + Port: 16686, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 16686, + }, + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + } + + service22 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/managed-by": "Helm", + "app.kubernetes.io/name": "kong", + "app.kubernetes.io/version": "1.4", + "helm.sh/chart": "kong-0.36.6", + "app.kubernetes.io/instance": "release-name", + }, + Name: "release-name-kong-proxy", + }, + Spec: corev1.ServiceSpec{ + Type: corev1.ServiceType("NodePort"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + NodePort: 32080, + Port: 32080, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 32080, + }, + Name: "kong-proxy", + }, + corev1.ServicePort{ + Port: 32443, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 32443, + }, + Name: "kong-proxy-tls", + NodePort: 32443, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app.kubernetes.io/component": "app", + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/name": "kong", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service23 := &corev1.Service{ + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + TargetPort: intstr.IntOrString{ + IntVal: 9001, + }, + Name: "http-supervise", + Port: 9001, + Protocol: corev1.Protocol("TCP"), + }, + corev1.ServicePort{ + Port: 8080, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 8080, + }, + Name: "http-mediation", + }, + corev1.ServicePort{ + Port: 3000, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 3000, + }, + Name: "http-event", + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-o1mediator", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "app": "ricplt-o1mediator", + "chart": "o1mediator-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-o1mediator-http", + }, + } + + service24 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "heritage": "Helm", + "release": "release-name", + "app": "ricplt-o1mediator", + "chart": "o1mediator-3.0.0", + }, + Name: "service-ricplt-o1mediator-tcp-netconf", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "tcp-netconf", + NodePort: 30830, + Port: 830, + Protocol: corev1.Protocol("TCP"), + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-o1mediator", + "release": "release-name", + }, + Type: corev1.ServiceType("NodePort"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service25 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "prometheus", + "chart": "prometheus-11.3.0", + "component": "alertmanager", + "heritage": "Helm", + "release": "release-name", + }, + Name: "release-name-prometheus-alertmanager", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "http", + Port: 80, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 9093, + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "prometheus", + "component": "alertmanager", + "release": "release-name", + }, + SessionAffinity: corev1.ServiceAffinity("None"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service26 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "prometheus", + "chart": "prometheus-11.3.0", + "component": "server", + "heritage": "Helm", + "release": "release-name", + }, + Name: "release-name-prometheus-server", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "http", + Port: 80, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + IntVal: 9090, + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "release": "release-name", + "app": "prometheus", + "component": "server", + }, + SessionAffinity: corev1.ServiceAffinity("None"), + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service27 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: "redis-cluster-svc", + }, + Spec: corev1.ServiceSpec{ + Selector: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/name": "redis-cluster", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "client", + Port: 6379, + TargetPort: intstr.IntOrString{ + IntVal: 6379, + }, + }, + corev1.ServicePort{ + Name: "gossip", + Port: 16379, + TargetPort: intstr.IntOrString{ + IntVal: 16379, + }, + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service28 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-rsm", + "chart": "rsm-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-rsm-http", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-rsm", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Port: 4800, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "http", + Type: intstr.Type(1), + }, + Name: "http", + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service29 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "app": "ricplt-rsm", + "chart": "rsm-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-rsm-rmr", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "rmrroute", + Port: 4561, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "rmrroute", + Type: intstr.Type(1), + }, + }, + corev1.ServicePort{ + Name: "rmrdata", + Port: 4801, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "rmrdata", + Type: intstr.Type(1), + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "release": "release-name", + "app": "ricplt-rsm", + }, + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service30 := &corev1.Service{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-rtmgr", + "chart": "rtmgr-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-rtmgr-http", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-rtmgr", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "http", + Port: 3800, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "http", + Type: intstr.Type(1), + }, + }, + }, + }, + } + + service31 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "app": "ricplt-rtmgr", + "chart": "rtmgr-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-rtmgr-rmr", + }, + Spec: corev1.ServiceSpec{ + Selector: map[string]string{ + "app": "ricplt-rtmgr", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + Type: intstr.Type(1), + StrVal: "rmrroute", + }, + Name: "rmrroute", + Port: 4561, + }, + corev1.ServicePort{ + Port: 4560, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "rmrdata", + Type: intstr.Type(1), + }, + Name: "rmrdata", + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service32 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-submgr", + "chart": "submgr-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-submgr-http", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + ClusterIP: "None", + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "http", + Port: 3800, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "http", + Type: intstr.Type(1), + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-submgr", + "release": "release-name", + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + service33 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-submgr", + "chart": "submgr-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-submgr-rmr", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + ClusterIP: "None", + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Port: 4560, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + Type: intstr.Type(1), + StrVal: "rmrdata", + }, + Name: "rmrdata", + }, + corev1.ServicePort{ + Name: "rmrroute", + Port: 4561, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "rmrroute", + Type: intstr.Type(1), + }, + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-submgr", + "release": "release-name", + }, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + } + + service34 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-vespamgr", + "chart": "vespamgr-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-vespamgr-http", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Selector: map[string]string{ + "app": "ricplt-vespamgr", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Name: "http", + Port: 8080, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "http", + Type: intstr.Type(1), + }, + }, + corev1.ServicePort{ + Name: "alert", + Port: 9095, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "alert", + Type: intstr.Type(1), + }, + }, + }, + PublishNotReadyAddresses: false, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "Service", + APIVersion: "v1", + }, + } + + service35 := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-xapp-onboarder", + "chart": "xapp-onboarder-3.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "service-ricplt-xapp-onboarder-http", + Namespace: "ricplt", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + + corev1.ServicePort{ + Port: 8888, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "server", + Type: intstr.Type(1), + }, + Name: "server", + }, + corev1.ServicePort{ + Port: 8080, + Protocol: corev1.Protocol("TCP"), + TargetPort: intstr.IntOrString{ + StrVal: "chartmuseum", + Type: intstr.Type(1), + }, + Name: "chartmuseum", + }, + }, + PublishNotReadyAddresses: false, + Selector: map[string]string{ + "app": "ricplt-xapp-onboarder", + "release": "release-name", + }, + Type: corev1.ServiceType("ClusterIP"), + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Service", + }, + } + + return []*corev1.Service{service1, service2, service3, service4, service5, service6, service7, service8, service9, service10, service11, service12, service13, service14, service15, service16, service17, service18, service19, service20, service21, service22, service23, service24, service25, service26, service27, service28, service29, service30, service31, service32, service33, service34, service35} } diff --git a/depRicKubernetesOperator/internal/controller/getStatefulSet.go b/depRicKubernetesOperator/internal/controller/getStatefulSet.go new file mode 100644 index 0000000..b18f627 --- /dev/null +++ b/depRicKubernetesOperator/internal/controller/getStatefulSet.go @@ -0,0 +1,284 @@ +package controller + +import ( + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + + + +func GetStatefulSet() []*appsv1.StatefulSet { + + statefulSet1 := &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ricplt", + Labels: map[string]string{ + "app": "ricplt-dbaas", + "chart": "dbaas-2.0.0", + "heritage": "Helm", + "release": "release-name", + }, + Name: "statefulset-ricplt-dbaas-server", + }, + Spec: appsv1.StatefulSetSpec{ + PodManagementPolicy: appsv1.PodManagementPolicyType("OrderedReady"), + Replicas: int32Ptr(1), + Selector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "ricplt-dbaas", + "release": "release-name", + }, + }, + ServiceName: "service-ricplt-dbaas-tcp", + Template: corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app": "ricplt-dbaas", + "release": "release-name", + }, + }, + Spec: corev1.PodSpec{ + ImagePullSecrets: []corev1.LocalObjectReference{ + + corev1.LocalObjectReference{ + Name: "secret-nexus3-o-ran-sc-org-10002-o-ran-sc", + }, + }, + ShareProcessNamespace: boolPtr(true), + TerminationGracePeriodSeconds: int64Ptr(5), + Volumes: []corev1.Volume{ + + corev1.Volume{ + Name: "config", + VolumeSource: corev1.VolumeSource{ + ConfigMap: &corev1.ConfigMapVolumeSource{ + LocalObjectReference: corev1.LocalObjectReference{ + Name: "configmap-ricplt-dbaas-config", + }, + }, + }, + }, + }, + Containers: []corev1.Container{ + + corev1.Container{ + Command: []string{ + + "redis-server", + }, + EnvFrom: []corev1.EnvFromSource{ + + corev1.EnvFromSource{ + ConfigMapRef: &corev1.ConfigMapEnvSource{ + LocalObjectReference: corev1.LocalObjectReference{ + Name: "configmap-ricplt-dbaas-appconfig", + }, + }, + }, + }, + LivenessProbe: &corev1.Probe{ + PeriodSeconds: 5, + ProbeHandler: corev1.ProbeHandler{ + Exec: &corev1.ExecAction{ + Command: []string{ + + "/bin/sh", + "-c", + "timeout 10 redis-cli -p 6379 ping", + }, + }, + }, + InitialDelaySeconds: 15, + }, + Stdin: false, + TTY: false, + VolumeMounts: []corev1.VolumeMount{ + + corev1.VolumeMount{ + MountPath: "/data", + Name: "config", + ReadOnly: false, + }, + }, + Args: []string{ + + "/data/redis.conf", + }, + Image: "nexus3.o-ran-sc.org:10002/o-ran-sc/ric-plt-dbaas:0.6.1", + Name: "container-ricplt-dbaas-redis", + Ports: []corev1.ContainerPort{ + + corev1.ContainerPort{ + ContainerPort: 6379, + Name: "redis", + }, + }, + ReadinessProbe: &corev1.Probe{ + InitialDelaySeconds: 15, + PeriodSeconds: 5, + ProbeHandler: corev1.ProbeHandler{ + Exec: &corev1.ExecAction{ + Command: []string{ + + "/bin/sh", + "-c", + "timeout 10 redis-cli -p 6379 ping", + }, + }, + }, + }, + StdinOnce: false, + }, + }, + HostIPC: false, + HostNetwork: false, + HostPID: false, + }, + }, + UpdateStrategy: appsv1.StatefulSetUpdateStrategy{ + Type: appsv1.StatefulSetUpdateStrategyType("RollingUpdate"), + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "apps/v1", + Kind: "StatefulSet", + }, + } + + statefulSet2 := &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "redis-cluster", + }, + Spec: appsv1.StatefulSetSpec{ + Replicas: int32Ptr(9), + Selector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/name": "redis-cluster", + }, + }, + Template: corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/name": "redis-cluster", + }, + }, + Spec: corev1.PodSpec{ + Volumes: []corev1.Volume{ + + corev1.Volume{ + Name: "conf", + VolumeSource: corev1.VolumeSource{ + ConfigMap: &corev1.ConfigMapVolumeSource{ + DefaultMode: int32Ptr(493), + LocalObjectReference: corev1.LocalObjectReference{ + Name: "redis-cluster-cm", + }, + }, + }, + }, + }, + Containers: []corev1.Container{ + + corev1.Container{ + Stdin: false, + StdinOnce: false, + TTY: false, + Command: []string{ + + "/conf/update-node.sh", + "redis-server", + "/conf/redis.conf", + }, + Name: "redis", + Ports: []corev1.ContainerPort{ + + corev1.ContainerPort{ + ContainerPort: 6379, + Name: "client", + }, + corev1.ContainerPort{ + Name: "gossip", + ContainerPort: 16379, + }, + }, + VolumeMounts: []corev1.VolumeMount{ + + corev1.VolumeMount{ + Name: "conf", + ReadOnly: false, + MountPath: "/conf", + }, + corev1.VolumeMount{ + MountPath: "/data", + Name: "data", + ReadOnly: false, + }, + }, + Env: []corev1.EnvVar{ + + corev1.EnvVar{ + Name: "POD_IP", + ValueFrom: &corev1.EnvVarSource{ + FieldRef: &corev1.ObjectFieldSelector{ + FieldPath: "status.podIP", + }, + }, + }, + }, + Image: "redis:5.0.1-alpine", + ImagePullPolicy: corev1.PullPolicy("IfNotPresent"), + }, + }, + HostIPC: false, + HostNetwork: false, + HostPID: false, + TopologySpreadConstraints: []corev1.TopologySpreadConstraint{ + + corev1.TopologySpreadConstraint{ + TopologyKey: "kubernetes.io/hostname", + WhenUnsatisfiable: corev1.UnsatisfiableConstraintAction("DoNotSchedule"), + LabelSelector: &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "app.kubernetes.io/instance": "release-name", + "app.kubernetes.io/name": "redis-cluster", + }, + }, + MaxSkew: 1, + }, + }, + }, + }, + VolumeClaimTemplates: []corev1.PersistentVolumeClaim{ + + corev1.PersistentVolumeClaim{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "app.kubernetes.io/name": "redis-cluster", + "app.kubernetes.io/instance": "release-name", + }, + Name: "data", + }, + Spec: corev1.PersistentVolumeClaimSpec{ + AccessModes: []corev1.PersistentVolumeAccessMode{ + + corev1.PersistentVolumeAccessMode("ReadWriteOnce"), + }, + Resources: corev1.ResourceRequirements{ + Requests: corev1.ResourceList{ + "storage": resource.MustParse("1Gi"), + }, + }, + }, + }, + }, + }, + TypeMeta: metav1.TypeMeta{ + APIVersion: "apps/v1", + Kind: "StatefulSet", + }, + } + + return []*appsv1.StatefulSet{statefulSet1, statefulSet2} +} \ No newline at end of file