public void init()

in ozhera-operator/ozhera-operator-service/src/main/java/org/apache/ozhera/operator/service/HeraBootstrapInitService.java [84:439]


    public void init() {
        try {
            HeraSpec heraSpec = new HeraSpec();
            HeraObjectMeta heraMeta = new HeraObjectMeta();
            heraMeta.setName(HoConstant.HERA_CR_NAME);
            heraMeta.setNamespace(HoConstant.HERA_NAMESPACE);

            List<HeraResource> resourceList = new ArrayList<>();
            heraSpec.setResourceList(resourceList);

            HeraResource mysql = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/mysql/ozhera_mysql.yaml")
                    .resourceType(ResourceTypeEnum.MYSQL.getTypeName())
                    .resourceName("hera-mysql")
                    .remark("local pv, Make sure the disk directory has been created in advance.")
                    .build();
            mysql.setDefaultYaml();
            List<Map<String, String>> mysqlConnectionMapList = new ArrayList<>();
            mysqlConnectionMapList.add(kvMap(HoConstant.KEY_DATASOURCE_URL, "mone-db-all:3306", "mysql address,host:port"));
            mysqlConnectionMapList.add(kvMap(HoConstant.KEY_DATASOURCE_USERNAME, "root", "user name"));
            mysqlConnectionMapList.add(kvMap(HoConstant.KEY_DATASOURCE_PASSWORD, "Mone_123456", "password"));
            mysql.setConnectionMapList(mysqlConnectionMapList);
            resourceList.add(mysql);

            HeraResource redis = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/redis/ozhera_redis.yaml")
                    .resourceType(ResourceTypeEnum.REDIS.getTypeName())
                    .resourceName("hera-redis")
                    .remark("local redis.")
                    .build();
            redis.setDefaultYaml();
            List<Map<String, String>> redisConnectionMapList = new ArrayList<>();
            redisConnectionMapList.add(kvMap(HoConstant.KEY_REDIS_URL, "redis-service:6379", "redis address, host:port"));
            redisConnectionMapList.add(kvMap(HoConstant.KEY_REDIS_PASSWORD, "", "redis pwd, optional", "0"));
            redis.setConnectionMapList(redisConnectionMapList);
            resourceList.add(redis);

            HeraResource es = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/es/ozhera_es.yaml")
                    .resourceType(ResourceTypeEnum.ES.getTypeName())
                    .resourceName("hera-es")
                    .remark("local es")
                    .build();
            es.setDefaultYaml();
            List<Map<String, String>> esConnectionMapList = new ArrayList<>();
            esConnectionMapList.add(kvMap(HoConstant.KEY_ES_URL, "elasticsearch:9200", "es address, host:port"));
            esConnectionMapList.add(kvMap(HoConstant.KEY_ES_USERNAME, "", "es user name, optional", "0"));
            esConnectionMapList.add(kvMap(HoConstant.KEY_ES_PASSWORD, "", "es password, optional", "0"));
            es.setConnectionMapList(esConnectionMapList);
            resourceList.add(es);

            HeraResource rocketMQ = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/rocketmq/ozhera_rocketmq.yaml")
                    .resourceType(ResourceTypeEnum.ROCKETMQ.getTypeName())
                    .resourceName("hera-rocketMQ")
                    .remark("local rocketMQ")
                    .build();
            rocketMQ.setDefaultYaml();
            List<Map<String, String>> rocketMQConnectionMapList = new ArrayList<>();
            rocketMQConnectionMapList.add(kvMap(HoConstant.KEY_ROCKETMQ_NAMESERVER, "rocketmq-name-server-service:9876", "rocketMQ address,host:port"));
            rocketMQConnectionMapList.add(kvMap(HoConstant.KEY_ROCKETMQ_AK, "", "rocketMQ accessKey,optional", "0"));
            rocketMQConnectionMapList.add(kvMap(HoConstant.KEY_ROCKETMQ_SK, "", "rocketMQ secretKey,optional", "0"));
            rocketMQ.setConnectionMapList(rocketMQConnectionMapList);
            resourceList.add(rocketMQ);

            HeraResource nacos = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/nacos/ozhera_nacos.yml")
                    .resourceType(ResourceTypeEnum.Nacos.getTypeName())
                    .resourceName("hera-nacos")
                    .remark("load nacos")
                    .defaultExtendConfigPath(new String[]{
                            "/ozhera_init/nacos/config/hera_app_config_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/hera_log_manager_open_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/hera_trace_config_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/log_stream_dataId_open_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/mi_tpc_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/mi_tpc_login_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/mimonitor_open_config_#_DEFAULT_GROUP.properties",
                            "/ozhera_init/nacos/config/prometheus_agent_open_config_#_DEFAULT_GROUP.properties"})
                    .build();

            nacos.setDefaultYaml();
            nacos.setDefaultExtendConfig();

            List<Map<String, String>> connectionMapList = new ArrayList<>();
            connectionMapList.add(kvMap(HoConstant.KEY_NACOS_ADDRESS, "nacos:80", "nacos address, host:ip"));
            connectionMapList.add(kvMap(HoConstant.KEY_NACOS_USERNAME, "nacos", "nacos user name, optional", "0"));
            connectionMapList.add(kvMap(HoConstant.KEY_NACOS_PASSWORD, "nacos", "nacos password, optional", "0"));
            nacos.setConnectionMapList(connectionMapList);

            resourceList.add(nacos);

            HeraResource tpcLoginFe = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/tpc-login-fe/ozhera_tpc_login_fe.yml")
                    .resourceType(ResourceTypeEnum.HERA_FE.getTypeName())
                    .resourceName("hera-tpc-login-fe")
                    .remark("load tpc-login-fe")
                    .build();
            tpcLoginFe.setDefaultYaml();
            List<Map<String, String>> tpcLoginFeConnectionMapList = new ArrayList<>();
            tpcLoginFe.setConnectionMapList(tpcLoginFeConnectionMapList);
            resourceList.add(tpcLoginFe);

            HeraResource grafana = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/grafana/ozhera_grafana.yaml")
                    .resourceType(ResourceTypeEnum.GRAFANA.getTypeName())
                    .resourceName("hera-grafana")
                    .remark("local pv, Make sure the disk directory has been created in advance.")
                    .build();
            grafana.setDefaultYaml();
            List<Map<String, String>> grafanaConnectionMapList = new ArrayList<>();
            grafana.setConnectionMapList(grafanaConnectionMapList);
            resourceList.add(grafana);

            HeraResource prometheus = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/prometheus/ozhera_prometheus.yaml")
                    .resourceType(ResourceTypeEnum.PROMETHEUS.getTypeName())
                    .resourceName("hera-prometheus")
                    .remark("local pv, Make sure the disk directory has been created in advance.")
                    .build();
            prometheus.setDefaultYaml();
            List<Map<String, String>> prometheusConnectionMapList = new ArrayList<>();
            prometheus.setConnectionMapList(prometheusConnectionMapList);
            resourceList.add(prometheus);

            HeraResource heraFe = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/hera-fe/ozhera_fe.yml")
                    .resourceType(ResourceTypeEnum.HERA_FE.getTypeName())
                    .resourceName("hera-fe")
                    .remark("load hera-fe")
                    .build();
            heraFe.setDefaultYaml();
            List<Map<String, String>> heraFeConnectionMapList = new ArrayList<>();
            heraFe.setConnectionMapList(heraFeConnectionMapList);
            resourceList.add(heraFe);

            HeraResource alertManager = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/alertManager/ozhera_alertmanager.yaml")
                    .resourceType(ResourceTypeEnum.ALERT_MANAGER.getTypeName())
                    .resourceName("hera-alertmanager")
                    .remark("local pv, Make sure the disk directory has been created in advance.")
                    .build();
            alertManager.setDefaultYaml();
            resourceList.add(alertManager);

            HeraResource tpcLogin = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/tpc-login/ozhera_tpc_login.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-tpc-login")
                    .remark("load tpc-login")
                    .build();
            tpcLogin.setDefaultYaml();
            resourceList.add(tpcLogin);


            HeraResource traceEtlEs = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/trace-etl-es/ozhera_trace_etl_es.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("trace-etl-es")
                    .remark("load trace-etl-es")
                    .build();
            traceEtlEs.setDefaultYaml();
            resourceList.add(traceEtlEs);

            HeraResource cadvisor = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/cadvisor/ozhera_cadvisor.yaml")
                    .resourceType(ResourceTypeEnum.CADVISOR.getTypeName())
                    .resourceName("hera-cadvisor")
                    .remark("local pv, Make sure the disk directory has been created in advance.")
                    .build();
            cadvisor.setDefaultYaml();
            List<Map<String, String>> cadvisorConnectionMapList = new ArrayList<>();
            cadvisor.setConnectionMapList(cadvisorConnectionMapList);
            resourceList.add(cadvisor);

            HeraResource node_exporter = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/node-exporter/ozhera_node-exporter.yaml")
                    .resourceType(ResourceTypeEnum.NODE_EXPORTER.getTypeName())
                    .resourceName("hera-node-exporter")
                    .remark("local pv, Make sure the disk directory has been created in advance.")
                    .build();
            node_exporter.setDefaultYaml();
            List<Map<String, String>> node_exporterConnectionMapList = new ArrayList<>();
            node_exporter.setConnectionMapList(node_exporterConnectionMapList);
            resourceList.add(node_exporter);

            HeraResource heraApp = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/hera-app/ozhera_app.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-app")
                    .remark("load hera-app")
                    .build();
            heraApp.setDefaultYaml();
            resourceList.add(heraApp);

            HeraResource logManager = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/log-manager/ozhera_log_manager.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-log-manager")
                    .remark("load log-manager")
                    .build();
            logManager.setDefaultYaml();
            resourceList.add(logManager);

            HeraResource logAgentServer = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/log-agent-server/ozhera_log_agent-server.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-log-agent-server")
                    .remark("load log-agent-server")
                    .build();
            logAgentServer.setDefaultYaml();
            resourceList.add(logAgentServer);

            HeraResource logStream = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/log-stream/ozhera_log_stream.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-log-stream")
                    .remark("load log-stream")
                    .build();
            logStream.setDefaultYaml();
            resourceList.add(logStream);

            HeraResource mimonitor = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/mimonitor/ozhera_mimonitor.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-mimonitor")
                    .remark("load mimonitor")
                    .build();
            mimonitor.setDefaultYaml();
            resourceList.add(mimonitor);

            HeraResource tpc = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/tpc/ozhera_tpc.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-tpc")
                    .remark("load tpc")
                    .build();
            tpc.setDefaultYaml();
            resourceList.add(tpc);

            HeraResource tpcFe = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/tpc-fe/ozhera_tpc_fe.yml")
                    .resourceType(ResourceTypeEnum.HERA_FE.getTypeName())
                    .resourceName("hera-tpc-fe")
                    .remark("load tpc-fe")
                    .build();
            tpcFe.setDefaultYaml();
            resourceList.add(tpcFe);

            HeraResource traceEtlManager = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/trace-etl-manager/ozhera_trace_etl_manager.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-trace_etl_manager")
                    .remark("load trace-etl-manager")
                    .build();
            traceEtlManager.setDefaultYaml();
            resourceList.add(traceEtlManager);

            HeraResource traceEtlServer = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/trace-etl-server/ozhera_trace_etl_server.yml")
                    .resourceType(ResourceTypeEnum.HERA_APP.getTypeName())
                    .resourceName("hera-trace-etl-server")
                    .remark("load trace-etl-server")
                    .build();
            traceEtlServer.setDefaultYaml();
            resourceList.add(traceEtlServer);

            HeraResource heraWebhook = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/webhook/ozhera_webhook_server.yaml")
                    .resourceType(ResourceTypeEnum.HERA_WEBHOOK.getTypeName())
                    .resourceName("hera-webhook")
                    .remark("load hera-webhook")
                    .build();
            heraWebhook.setDefaultYaml();
            resourceList.add(heraWebhook);

            HeraResource demoServer = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/demo/ozhera_demo_server.yml")
                    .resourceType(ResourceTypeEnum.OTHER.getTypeName())
                    .resourceName("hera-demo-server")
                    .remark("load hera-demo-server")
                    .build();
            demoServer.setDefaultYaml();
            resourceList.add(demoServer);

            HeraResource demoClient = HeraResource.builder()
                    .needCreate(true)
                    .required(true)
                    .defaultYamlPath("/ozhera_init/demo/ozhera_demo_client.yml")
                    .resourceType(ResourceTypeEnum.OTHER.getTypeName())
                    .resourceName("hera-demo-client")
                    .remark("load hera-demo-client")
                    .build();
            demoClient.setDefaultYaml();
            resourceList.add(demoClient);

            //todo other resource
            heraOperatorDefine.setHeraSpec(heraSpec);
            heraOperatorDefine.setHeraMeta(heraMeta);

            log.warn("##heraOperatorDefine load success##");
        } catch (Exception e) {
            log.error("HeraOperatorController init error:", e);
            throw new RuntimeException("HeraOperatorController init error");
        }
    }