├── .github └── workflows │ ├── build_unittest.yml │ ├── codeql.yml │ └── odimra_deployment.yml ├── .gitignore ├── LICENSE ├── Makefile ├── NOTICES.txt ├── README.md ├── build ├── DELLPlugin │ ├── Dockerfile.dell_plugin │ ├── command.sh │ ├── dell_plugin.service │ ├── dell_plugin_config │ │ └── .keep │ ├── edit_config.sh │ └── start_plugin.sh ├── Kafka │ ├── Dockerfiles │ │ ├── Dockerfile.kafka │ │ └── Dockerfile.zookeeper │ ├── kafka-persistence │ │ ├── .gitignore │ │ ├── config │ │ │ └── .gitignore │ │ └── data │ │ │ └── .gitignore │ └── scripts │ │ ├── setup_kafka.sh │ │ ├── setup_zookeeper.sh │ │ ├── start_kafka.sh │ │ └── start_zookeeper.sh ├── LenovoPlugin │ ├── Dockerfile.lenovo_plugin │ ├── command.sh │ ├── edit_config.sh │ ├── lenovo_plugin.service │ ├── lenovo_plugin_config │ │ └── .keep │ └── start_plugin.sh ├── RFPlugin │ ├── Dockerfile.plugin │ ├── command.sh │ ├── edit_config.sh │ ├── grf_plugin.service │ ├── plugin_config │ │ └── .keep │ └── start_plugin.sh ├── Redis │ ├── 6379.conf │ ├── 6380.conf │ ├── Dockerfile.redis │ ├── checkdb.sh │ ├── createschema.sh │ ├── redis-persistence │ │ └── .gitkeep │ └── start2db.sh ├── cert_generator │ ├── copy_certificate.sh │ ├── generate_client_crt.sh │ ├── generate_etcd_certs.sh │ ├── generate_kafka_certs.sh │ ├── generate_odimra_cert.sh │ └── generate_zookeeper_certs.sh ├── cleanupbuild.sh ├── deepcleanupbuild.sh ├── docker-compose.yml ├── etcd │ ├── Dockerfile.etcd │ ├── etcd.conf │ └── start_etcd.sh ├── odimra │ ├── Dockerfile.builddep │ ├── Dockerfile.odimra │ ├── account_session.service │ ├── aggregation.service │ ├── api.service │ ├── build.sh │ ├── builddep.sh │ ├── command.sh │ ├── edit_config.sh │ ├── event.service │ ├── fabrics.service │ ├── licenses.service │ ├── makedep.sh │ ├── managers.service │ ├── odimra_config │ │ ├── .keep │ │ └── registrystore │ │ │ └── .keep │ ├── start_odimra.sh │ ├── systems.service │ ├── task.service │ ├── telemetry.service │ └── update.service ├── plugin-unmanaged-racks │ └── Dockerfile └── run_pre_reqs.sh ├── build_images.sh ├── docker-images.sh ├── docs ├── README.md ├── Troubleshooting.md ├── fonts │ ├── slate.eot │ ├── slate.svg │ ├── slate.ttf │ ├── slate.woff │ └── slate.woff2 ├── images │ ├── all_services_verification.png │ ├── arch.png │ ├── check_1.png │ ├── check_2.png │ ├── check_3.png │ ├── kuberenetes_pods_verification.png │ ├── kubernetes_images.png │ ├── logo.png │ ├── navbar.png │ ├── odim_cluster.png │ ├── odim_deployment.png │ ├── odimra_images.png │ ├── redfish_data_model.png │ └── telco_bruce_arch.png ├── index.html ├── javascripts │ ├── all.js │ └── all_nosearch.js └── stylesheets │ ├── print.css │ └── screen.css ├── install ├── Docker │ └── dockerfiles │ │ ├── Dockerfile.accountSession │ │ ├── Dockerfile.aggregation │ │ ├── Dockerfile.api │ │ ├── Dockerfile.compositionService │ │ ├── Dockerfile.cs │ │ ├── Dockerfile.dellplugin │ │ ├── Dockerfile.etcd │ │ ├── Dockerfile.events │ │ ├── Dockerfile.fabrics │ │ ├── Dockerfile.grfplugin │ │ ├── Dockerfile.kafka │ │ ├── Dockerfile.lenovoplugin │ │ ├── Dockerfile.licenses │ │ ├── Dockerfile.managers │ │ ├── Dockerfile.odim │ │ ├── Dockerfile.redis │ │ ├── Dockerfile.systems │ │ ├── Dockerfile.task │ │ ├── Dockerfile.telemetry │ │ ├── Dockerfile.update │ │ ├── Dockerfile.urplugin │ │ ├── Dockerfile.zookeeper │ │ ├── build │ │ ├── accountSession.sh │ │ ├── aggregation.sh │ │ ├── api.sh │ │ ├── dellplugin.sh │ │ ├── events.sh │ │ ├── fabrics.sh │ │ ├── grfplugin.sh │ │ ├── lenovoplugin.sh │ │ ├── licenses.sh │ │ ├── managers.sh │ │ ├── systems.sh │ │ ├── task.sh │ │ ├── telemetry.sh │ │ ├── update.sh │ │ └── urplugin.sh │ │ └── scripts │ │ ├── add-hosts │ │ ├── add-hosts.go │ │ ├── go.mod │ │ └── go.sum │ │ ├── build_cs.sh │ │ ├── etcd.conf │ │ ├── fetch_odim_pkgs.sh │ │ ├── redis-checkdb.sh │ │ ├── redis-createschema.sh │ │ ├── redis-entrypointsetup.sh │ │ ├── redis-master.conf │ │ ├── redis-slave.conf │ │ ├── start_account_session.sh │ │ ├── start_aggregation.sh │ │ ├── start_api.sh │ │ ├── start_composition_service.sh │ │ ├── start_dellplugin.sh │ │ ├── start_etcd.sh │ │ ├── start_events.sh │ │ ├── start_fabrics.sh │ │ ├── start_grfplugin.sh │ │ ├── start_kafka.sh │ │ ├── start_lenovoplugin.sh │ │ ├── start_licenses.sh │ │ ├── start_managers.sh │ │ ├── start_systems.sh │ │ ├── start_task.sh │ │ ├── start_telemetry.sh │ │ ├── start_update.sh │ │ ├── start_urplugin.sh │ │ └── start_zookeeper.sh └── templates │ ├── dellplugin_proxy_server.conf.j2 │ ├── grfplugin_proxy_server.conf.j2 │ └── lenovoplugin_proxy_server.conf.j2 ├── lib-dmtf ├── README.md ├── go.mod ├── go.sum └── model │ ├── Chassis.go │ ├── Chassis_test.go │ ├── ComputerSystem.go │ ├── ComputerSystem_test.go │ ├── Links.go │ ├── accountService.go │ ├── addressPool.go │ ├── common.go │ ├── endpoint.go │ ├── events.go │ ├── fabric.go │ ├── licenses.go │ ├── manager.go │ ├── networkadapter.go │ ├── networkport.go │ ├── port.go │ ├── power.go │ ├── resourceCollection.go │ ├── serviceRoot.go │ ├── storage.go │ ├── switch.go │ ├── task.go │ ├── telemetry.go │ ├── thermal.go │ ├── update.go │ └── zones.go ├── lib-messagebus ├── LICENSE ├── README.md ├── datacommunicator │ ├── config.go │ ├── config_test.go │ ├── document.go │ ├── header.go │ ├── header_test.go │ ├── kafkacomm.go │ ├── kafkacomm_test.go │ └── redisstreamcomm.go ├── go.mod ├── go.sum └── platforms │ ├── kafka │ └── server.properties.ref │ └── platformconfig.toml ├── lib-persistence-manager ├── README.md ├── go.mod ├── go.sum └── persistencemgr │ ├── config.go │ ├── redis.go │ ├── redis_test.go │ ├── unit_test_db_confighelp.go │ └── unit_test_db_confighelp_test.go ├── lib-rest-client ├── README.md ├── go.mod ├── go.sum └── pmbhandle │ └── rest.go ├── lib-utilities ├── README.md ├── common │ ├── caseValidator.go │ ├── common.go │ ├── common_test.go │ ├── constants.go │ ├── crypto.go │ ├── crypto_test.go │ ├── dbconn.go │ ├── dbconn_test.go │ ├── generalerror.go │ ├── generalerror_test.go │ ├── intercomm.go │ ├── jobqueue.go │ ├── jobqueue_test.go │ ├── kubernetes.go │ ├── mockconfig.go │ ├── mockconfig_test.go │ ├── pluginstatus.go │ ├── pluginstatus_test.go │ ├── regexValidator.go │ ├── regexValidator_test.go │ ├── responses.go │ ├── trackconfig.go │ ├── workerpool.go │ └── workerpool_test.go ├── config │ ├── README.md │ ├── cli.go │ ├── config.go │ ├── config_test.go │ ├── constants.go │ ├── httpConfig.go │ ├── httpConfig_test.go │ ├── mockconfig.go │ ├── mockconfig_test.go │ ├── odimra_config.json │ └── schema.json ├── errors │ ├── constants.go │ ├── error.go │ └── error_test.go ├── etc │ ├── Base.1.13.0.json │ ├── Composition.1.1.1.json │ ├── EthernetFabric.1.0.0.json │ ├── Fabric.1.0.0.json │ ├── JobEvent.1.0.0.json │ ├── License.1.0.1.json │ ├── LogService.1.0.0.json │ ├── NetworkDevice.1.0.1.json │ ├── Redfish_1.3.0_PrivilegeRegistry.json │ ├── ResourceEvent.1.2.1.json │ ├── StorageDevice.1.1.0.json │ ├── TaskEvent.1.0.3.json │ └── Update.1.0.1.json ├── go.mod ├── go.sum ├── logs │ ├── logger.go │ └── logging.go ├── logservice │ └── common.go ├── proto │ ├── account │ │ └── account.proto │ ├── aggregator │ │ └── aggregator.proto │ ├── auth │ │ └── odim_auth.proto │ ├── chassis │ │ └── chassis.proto │ ├── compositionservice │ │ └── composition_service.proto │ ├── events │ │ └── events.proto │ ├── fabrics │ │ └── fabrics.proto │ ├── licenses │ │ └── licenses.proto │ ├── managers │ │ └── managers.proto │ ├── role │ │ └── role.proto │ ├── session │ │ └── session.proto │ ├── systems │ │ └── systems.proto │ ├── task │ │ └── task.proto │ ├── telemetry │ │ └── telemetry.proto │ └── update │ │ └── update.proto ├── response │ ├── errorresponse.go │ ├── errorresponse_test.go │ ├── response.go │ ├── successresponse.go │ └── successresponse_test.go └── services │ ├── auth.go │ ├── eventsubscription.go │ ├── name.go │ ├── pluginTask.go │ ├── rpcService.go │ └── task.go ├── odim-controller ├── .gitignore ├── helmcharts │ ├── account-session │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── aggregation │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── api │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── composition-service │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── configure-hosts │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ └── configmaps.yaml │ │ └── values.yaml │ ├── create_helm_packages.sh │ ├── dellplugin │ │ ├── dellplugin-config.yaml │ │ ├── dellplugin.sh │ │ └── dellplugin │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── configmaps.yaml │ │ │ ├── deployment.yaml │ │ │ ├── pv.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ │ └── values.yaml │ ├── etcd-ha │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── etcd-ha-deployment.yaml │ │ │ └── etcd-ha-service.yaml │ │ └── values.yaml │ ├── etcd │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── etcd-service.yaml │ │ │ └── etcd-statefulset.yaml │ │ └── values.yaml │ ├── events │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── fabrics │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── grfplugin │ │ ├── grfplugin-config.yaml │ │ ├── grfplugin.sh │ │ └── grfplugin │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── configmaps.yaml │ │ │ ├── deployment.yaml │ │ │ ├── pv.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ │ └── values.yaml │ ├── kafka-ha │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── kafka-ha-deployment.yaml │ │ │ └── kafka-ha-service.yaml │ │ └── values.yaml │ ├── kafka-secret │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ └── secret.yaml │ │ └── values.yaml │ ├── kafka │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── kafka-deployment.yaml │ │ │ └── kafka-service.yaml │ │ └── values.yaml │ ├── lenovoplugin │ │ ├── lenovoplugin-config.yaml │ │ ├── lenovoplugin.sh │ │ └── lenovoplugin │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── configmaps.yaml │ │ │ ├── deployment.yaml │ │ │ ├── pv.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ │ └── values.yaml │ ├── licenses │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── managers │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── odimra-config │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ └── configmaps.yaml │ │ └── values.yaml │ ├── odimra-k8s-access-config │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── role.yaml │ │ │ ├── rolebinding.yaml │ │ │ └── serviceaccount.yaml │ │ └── values.yaml │ ├── odimra-platformconfig │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ └── configmaps.yaml │ │ └── values.yaml │ ├── odimra-pv-pvc │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── odimra-pv.yaml │ │ │ └── odimra-pvc.yaml │ │ └── values.yaml │ ├── odimra-secret │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ └── secret.yaml │ │ └── values.yaml │ ├── redis-ha │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── redis-ha-inmemory-headless-service.yaml │ │ │ ├── redis-ha-inmemory-primary-statefulset.yaml │ │ │ ├── redis-ha-inmemory-secondary-statefulset.yaml │ │ │ ├── redis-ha-inmemory-sentinel-headless-service.yaml │ │ │ ├── redis-ha-inmemory-sentinel-primary-statefulset.yaml │ │ │ ├── redis-ha-inmemory-sentinel-secondary-statefulset.yaml │ │ │ ├── redis-ha-inmemory-sentinel-service.yaml │ │ │ ├── redis-ha-inmemory-service.yaml │ │ │ ├── redis-ha-ondisk-headless-service.yaml │ │ │ ├── redis-ha-ondisk-primary-statefulset.yaml │ │ │ ├── redis-ha-ondisk-secondary-statefulset.yaml │ │ │ ├── redis-ha-ondisk-sentinel-headless-service.yaml │ │ │ ├── redis-ha-ondisk-sentinel-primary-statefulset.yaml │ │ │ ├── redis-ha-ondisk-sentinel-secondary-statefulset.yaml │ │ │ ├── redis-ha-ondisk-sentinel-service.yaml │ │ │ ├── redis-ha-ondisk-service.yaml │ │ │ └── redis-ha-pv-pvc.yaml │ │ └── values.yaml │ ├── redis │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── redis-inmemory-service.yaml │ │ │ ├── redis-inmemory-statefulset.yaml │ │ │ ├── redis-ondisk-service.yaml │ │ │ └── redis-ondisk-statefulset.yaml │ │ └── values.yaml │ ├── reloader │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── clusterrole.yaml │ │ │ ├── clusterrolebinding.yaml │ │ │ ├── deployment.yaml │ │ │ ├── role.yaml │ │ │ ├── rolebinding.yaml │ │ │ ├── service.yaml │ │ │ ├── serviceaccount.yaml │ │ │ └── servicemonitor.yaml │ │ └── values.yaml │ ├── systems │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── task │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── telemetry │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── update │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── urplugin │ │ ├── urplugin-config.yaml │ │ ├── urplugin.sh │ │ └── urplugin │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── configmaps.yaml │ │ │ ├── deployment.yaml │ │ │ ├── pv.yaml │ │ │ ├── pvc.yaml │ │ │ └── service.yaml │ │ │ └── values.yaml │ ├── zookeeper-ha │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── zookeeper-ha-deployment.yaml │ │ │ └── zookeeper-ha-service.yaml │ │ └── values.yaml │ ├── zookeeper-secret │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ └── secret.yaml │ │ └── values.yaml │ └── zookeeper │ │ ├── Chart.yaml │ │ ├── templates │ │ ├── _helpers.tpl │ │ ├── zookeeper-deployment.yaml │ │ └── zookeeper-service.yaml │ │ └── values.yaml ├── kubespray │ ├── configure-kubespray.sh │ └── kubespray-2.20.0.tar.gz ├── odimra │ ├── ansible.cfg │ ├── deploy_plugin.yaml │ ├── group_vars │ │ └── all │ │ │ ├── all.yaml │ │ │ └── requirements.yaml │ ├── install.yaml │ ├── k8_copy_image.yaml │ ├── k8_delete_image.yaml │ ├── post_uninstall.yaml │ ├── pre_install.yaml │ ├── pre_upgrade.yaml │ ├── remove_plugin.yaml │ ├── roles │ │ ├── configure-keepalived │ │ │ ├── tasks │ │ │ │ └── main.yaml │ │ │ └── templates │ │ │ │ ├── action_script.sh.j2 │ │ │ │ └── keepalived.conf.j2 │ │ ├── configure-proxy │ │ │ ├── tasks │ │ │ │ ├── main.yaml │ │ │ │ └── plugins.yaml │ │ │ └── templates │ │ │ │ ├── api_proxy_server.conf.j2 │ │ │ │ └── nginx.conf.j2 │ │ ├── deploy-plugin │ │ │ └── tasks │ │ │ │ ├── main.yaml │ │ │ │ ├── plugins.yaml │ │ │ │ └── proxy.yaml │ │ ├── install │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── k8-copy-image │ │ │ ├── files │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── k8-delete-image │ │ │ ├── files │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── odimra-copy-image │ │ │ ├── files │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── odimra-delete-image │ │ │ ├── files │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── plugin-delete-image │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── post-uninstall │ │ │ ├── files │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ ├── main.yaml │ │ │ │ └── plugins.yaml │ │ ├── pre-install │ │ │ ├── files │ │ │ │ ├── docker_images │ │ │ │ │ └── .gitignore │ │ │ │ └── helmcharts │ │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ ├── main.yaml │ │ │ │ └── plugins.yaml │ │ ├── pre-upgrade │ │ │ ├── files │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── remove-keepalived │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── remove-plugin │ │ │ └── tasks │ │ │ │ ├── main.yaml │ │ │ │ └── plugins.yaml │ │ ├── remove-proxy │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── rollback │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── scale-plugin │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── scale-svc │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── uninstall │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ ├── update-proxy-conf │ │ │ └── tasks │ │ │ │ ├── main.yaml │ │ │ │ └── plugins.yaml │ │ ├── upgrade-config │ │ │ ├── files │ │ │ │ └── helmcharts │ │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ │ └── main.yaml │ │ └── upgrade-thirdparty │ │ │ ├── files │ │ │ └── helmcharts │ │ │ │ └── .gitignore │ │ │ └── tasks │ │ │ └── main.yaml │ ├── rollback.yaml │ ├── scale_plugin.yaml │ ├── scale_svc.yaml │ ├── uninstall.yaml │ ├── upgrade-config.yaml │ └── upgrade_thirdparty.yaml └── scripts │ ├── gen_client_certs.sh │ ├── gen_odimra_certs.sh │ ├── go.mod │ ├── go.sum │ ├── kube_deploy_nodes.yaml.tmpl │ ├── odim-controller.py │ ├── odim-vault.go │ └── setup_deployment_node.sh ├── odim-profiles ├── ODIMBaselineHardwareManagement.v1_0_0.json ├── ODIMFabricManagement.v1_0_0.json └── ODIMServerHardwareManagement.v1_0_0.json ├── plugin-dell ├── README.md ├── config │ ├── README.md │ ├── config.go │ ├── config_test.go │ ├── dell_config.json │ ├── mockconfig.go │ └── mockconfig_test.go ├── dphandler │ ├── basicAuth.go │ ├── basicAuth_test.go │ ├── biosSettings.go │ ├── biosSettings_test.go │ ├── bootorder.go │ ├── bootorder_test.go │ ├── common.go │ ├── common_test.go │ ├── createSession.go │ ├── createSession_test.go │ ├── getResource.go │ ├── getResource_test.go │ ├── managers.go │ ├── managers_test.go │ ├── pluginStatus.go │ ├── pluginStatus_test.go │ ├── redfishEvents.go │ ├── redfishEvents_test.go │ ├── reset.go │ ├── reset_test.go │ ├── storage.go │ ├── storage_test.go │ ├── subscribeEvents.go │ ├── subscribeEvents_test.go │ ├── update.go │ └── update_test.go ├── dpmessagebus │ ├── publish.go │ └── publish_test.go ├── dpmiddleware │ ├── basicAuthenticate.go │ └── basicAuthenticate_test.go ├── dpmodel │ ├── Chassis.go │ ├── ComputerSystem.go │ ├── Config.go │ ├── ConfigAuth.go │ ├── Device.go │ ├── Events.go │ ├── Links.go │ ├── Reset.go │ ├── ServiceRoot.go │ ├── storage.go │ └── users.go ├── dpresponse │ ├── authResponse.go │ ├── errorResponse.go │ ├── errorResponse_test.go │ ├── loginResponse.go │ ├── managersResponse.go │ └── pluginStatus.go ├── dputilities │ ├── redfishClient.go │ ├── redfishClient_test.go │ ├── utility.go │ └── utility_test.go ├── go.mod ├── go.sum └── main.go ├── plugin-lenovo ├── README.md ├── config │ ├── README.md │ ├── config.go │ ├── lenovo_config.json │ ├── mockconfig.go │ └── mockconfig_test.go ├── go.mod ├── go.sum ├── lphandler │ ├── basicAuth.go │ ├── basicAuth_test.go │ ├── biosSettings.go │ ├── biosSettings_test.go │ ├── bootorder.go │ ├── common.go │ ├── createSession.go │ ├── getResource.go │ ├── handler.go │ ├── managers.go │ ├── managers_test.go │ ├── pluginStatus.go │ ├── redfishEvents.go │ ├── reset.go │ ├── subscribeEvents.go │ ├── update.go │ └── update_test.go ├── lpmessagebus │ └── publish.go ├── lpmiddleware │ └── basicAuthenticate.go ├── lpmodel │ ├── Config.go │ ├── ConfigAuth.go │ ├── Device.go │ ├── Reset.go │ ├── managers.go │ └── users.go ├── lpresponse │ ├── authResponse.go │ ├── errorResponse.go │ ├── loginResponse.go │ └── pluginStatus.go ├── lputilities │ ├── redfishClient.go │ └── utility.go └── main.go ├── plugin-redfish ├── README.md ├── config │ ├── README.md │ ├── config.go │ ├── config.json │ ├── mockconfig.go │ └── mockconfig_test.go ├── go.mod ├── go.sum ├── main.go ├── rfphandler │ ├── basicAuth.go │ ├── basicAuth_test.go │ ├── biosSettings.go │ ├── biosSettings_test.go │ ├── bootorder.go │ ├── common.go │ ├── createSession.go │ ├── getResource.go │ ├── managers.go │ ├── managers_test.go │ ├── metricreport.go │ ├── metricreport_test.go │ ├── pluginStatus.go │ ├── redfishEvents.go │ ├── reset.go │ ├── storage.go │ ├── storage_test.go │ ├── subscribeEvents.go │ ├── update.go │ └── update_test.go ├── rfpmessagebus │ └── publish.go ├── rfpmiddleware │ └── basicAuthenticate.go ├── rfpmodel │ ├── Config.go │ ├── ConfigAuth.go │ ├── Device.go │ ├── Reset.go │ └── users.go ├── rfpresponse │ ├── authResponse.go │ ├── errorResponse.go │ ├── loginResponse.go │ └── pluginStatus.go └── rfputilities │ ├── redfishClient.go │ └── utility.go ├── plugin-unmanaged-racks ├── Makefile ├── README.md ├── config │ ├── config.go │ └── config.yml ├── db │ └── persistence.go ├── go.mod ├── go.sum ├── logging │ └── logger.go ├── main.go ├── redfish │ ├── chassis.go │ ├── client.go │ ├── collection.go │ ├── error.go │ ├── events.go │ ├── links.go │ ├── manager.go │ ├── subscription.go │ ├── translator.go │ └── validator.go ├── rest │ ├── basicauth_handler.go │ ├── basicauth_handler_test.go │ ├── delete_chassis_handler.go │ ├── events_listener.go │ ├── get_chassis_collection_handler.go │ ├── get_chassis_collection_handler_test.go │ ├── get_chassis_handler.go │ ├── get_manager_handler.go │ ├── get_manager_handler_test.go │ ├── get_managers_handler.go │ ├── get_managers_handler_test.go │ ├── get_status_handler.go │ ├── module.go │ ├── module_test.go │ ├── patch_chassis_handler.go │ ├── post_chassis_handler.go │ └── post_startup_handler.go └── utils │ ├── enigma.go │ ├── enigma_test.go │ └── strings.go ├── svc-account-session ├── README.md ├── account │ ├── common.go │ ├── common_test.go │ ├── create.go │ ├── create_test.go │ ├── delete.go │ ├── delete_test.go │ ├── getaccounts.go │ ├── getaccounts_test.go │ ├── update.go │ └── update_test.go ├── asmodel │ ├── account.go │ ├── account_test.go │ ├── privilege.go │ ├── privilege_test.go │ ├── redfishroles.go │ ├── redfishroles_test.go │ ├── sessions.go │ ├── sessions_test.go │ ├── userRole.go │ └── userRole_test.go ├── asresponse │ ├── accounts.go │ ├── error.go │ ├── list.go │ ├── privilege.go │ ├── role.go │ └── session.go ├── auth │ ├── auth.go │ ├── auth_test.go │ ├── session.go │ └── session_test.go ├── go.mod ├── go.sum ├── main.go ├── role │ ├── checkprivilege.go │ ├── create.go │ ├── create_test.go │ ├── delete.go │ ├── delete_test.go │ ├── getroles.go │ ├── getroles_test.go │ ├── update.go │ └── update_test.go ├── rpc │ ├── account.go │ ├── account_test.go │ ├── auth.go │ ├── auth_test.go │ ├── role.go │ ├── role_test.go │ ├── sessions.go │ └── sessions_test.go └── session │ ├── create.go │ ├── create_test.go │ ├── delete.go │ ├── delete_test.go │ ├── getsession.go │ ├── getsession_test.go │ ├── update.go │ └── update_test.go ├── svc-aggregation ├── README.md ├── agcommon │ ├── common.go │ └── common_test.go ├── agmessagebus │ ├── publish.go │ └── publish_test.go ├── agmodel │ ├── system.go │ └── system_test.go ├── agresponse │ ├── aggregationsource.go │ ├── list.go │ └── rpc.go ├── go.mod ├── go.sum ├── main.go ├── rpc │ ├── aggregator.go │ ├── aggregator_test.go │ ├── common.go │ └── common_test.go └── system │ ├── addaggregationsource.go │ ├── addaggregationsource_test.go │ ├── addcompute.go │ ├── addcompute_test.go │ ├── addplugin.go │ ├── addplugin_test.go │ ├── aggregate.go │ ├── aggregate_test.go │ ├── bootorder.go │ ├── bootorder_test.go │ ├── common.go │ ├── connectionmethods.go │ ├── connectionmethods_test.go │ ├── deleteaggregationsource.go │ ├── deleteaggregationsource_test.go │ ├── get_resource.go │ ├── get_resource_test.go │ ├── pluginHealthCheck.go │ ├── pluginHealthCheck_test.go │ ├── rediscoverinventory.go │ ├── rediscoverinventory_test.go │ ├── reset.go │ ├── reset_test.go │ ├── systemstate.go │ ├── systemstate_test.go │ ├── update.go │ └── update_test.go ├── svc-api ├── README.md ├── apicommon │ └── common.go ├── go.mod ├── go.sum ├── handle │ ├── account.go │ ├── account_test.go │ ├── aggregator.go │ ├── aggregator_test.go │ ├── chassis.go │ ├── chassis_test.go │ ├── compositionservice.go │ ├── compositionservice_test.go │ ├── events.go │ ├── events_test.go │ ├── fabrics.go │ ├── fabrics_test.go │ ├── handlers.go │ ├── handlers_test.go │ ├── licenses.go │ ├── licenses_test.go │ ├── managers.go │ ├── managers_test.go │ ├── role.go │ ├── role_test.go │ ├── sessions.go │ ├── sessions_test.go │ ├── systems.go │ ├── systems_test.go │ ├── task.go │ ├── task_test.go │ ├── telemetry.go │ ├── telemetry_test.go │ ├── update.go │ └── update_test.go ├── main.go ├── messages │ └── sessions.go ├── middleware │ └── middleware.go ├── models │ ├── metadata.go │ ├── odata.go │ ├── registries.go │ ├── serviceroot.go │ └── version.go ├── ratelimiter │ └── ratelimiter.go ├── response │ ├── accounts.go │ ├── error.go │ ├── list.go │ ├── registries.go │ └── session.go ├── router │ └── router.go └── rpc │ ├── account.go │ ├── account_test.go │ ├── aggregator.go │ ├── aggregator_test.go │ ├── chassis.go │ ├── chassis_test.go │ ├── composition_service.go │ ├── events.go │ ├── events_test.go │ ├── fabrics.go │ ├── fabrics_test.go │ ├── fakeStruct_testfile.go │ ├── licenses.go │ ├── managers.go │ ├── managers_test.go │ ├── role.go │ ├── role_test.go │ ├── sessions.go │ ├── sessions_test.go │ ├── system.go │ ├── system_test.go │ ├── task.go │ ├── task_test.go │ ├── telemetry.go │ ├── telemetry_test.go │ ├── update.go │ └── update_test.go ├── svc-composition-service ├── README.md ├── __init__.py ├── app │ ├── __init__.py │ ├── config │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── config.py │ │ ├── config_test.py │ │ └── constants.py │ ├── db │ │ ├── __init__.py │ │ └── persistant.py │ ├── log │ │ ├── __init__.py │ │ └── logging.py │ ├── main.py │ ├── proto │ │ ├── __init__.py │ │ ├── auth │ │ │ └── __init__.py │ │ └── compositionservice │ │ │ └── __init__.py │ ├── rest │ │ ├── __init__.py │ │ ├── composition_service.py │ │ ├── event_subscription.py │ │ ├── pool.py │ │ ├── pool_test.py │ │ ├── resource_blocks.py │ │ ├── resource_blocks_test.py │ │ ├── resource_zones.py │ │ └── resource_zones_test.py │ ├── rpc │ │ ├── __init__.py │ │ ├── composition_service.py │ │ └── composition_service_test.py │ └── utilities │ │ ├── __init__.py │ │ ├── auth.py │ │ ├── client.py │ │ ├── client_service.py │ │ ├── connection.py │ │ ├── crypt.py │ │ └── services.py ├── build.sh └── requirements.txt ├── svc-events ├── README.md ├── consumer │ ├── consumer.go │ └── consumer_test.go ├── evcommon │ ├── common.go │ ├── common_test.go │ ├── mock.go │ └── mock_test.go ├── events │ ├── common.go │ ├── common_test.go │ ├── deletesubscription.go │ ├── deletesubscription_test.go │ ├── evtsubscription.go │ ├── evtsubscription_test.go │ ├── getevtsubscription.go │ ├── getevtsubscription_test.go │ ├── publishevttosubscriber.go │ ├── publishevttosubscriber_test.go │ ├── submittestevent.go │ ├── submittestevent_test.go │ ├── subscriptionCache.go │ └── subscriptionCache_test.go ├── evmodel │ ├── events.go │ └── events_test.go ├── evresponse │ ├── errorResponse.go │ ├── errorResponse_test.go │ ├── events.go │ ├── events_test.go │ └── rpc.go ├── go.mod ├── go.sum ├── main.go └── rpc │ ├── events.go │ └── events_test.go ├── svc-fabrics ├── README.md ├── fabmodel │ ├── fabrics.go │ └── fabrics_test.go ├── fabresponse │ └── fabrics.go ├── fabrics │ ├── addfabric.go │ ├── addfabric_test.go │ ├── common.go │ ├── common_test.go │ ├── createresource.go │ ├── createresource_test.go │ ├── deleteresource.go │ ├── deleteresource_test.go │ ├── getresource.go │ ├── getresource_test.go │ ├── removefabric.go │ └── removefabric_test.go ├── go.mod ├── go.sum ├── main.go └── rpc │ ├── fabrics.go │ └── fabrics_test.go ├── svc-licenses ├── README.md ├── go.mod ├── go.sum ├── lcommon │ └── common.go ├── licenses │ ├── common.go │ ├── common_test.go │ ├── licenses.go │ └── licenses_test.go ├── main.go ├── model │ └── licenses.go └── rpc │ ├── common.go │ ├── licenses.go │ └── licenses_test.go ├── svc-managers ├── README.md ├── go.mod ├── go.sum ├── main.go ├── managers │ ├── common.go │ ├── common_test.go │ ├── managers.go │ └── managers_test.go ├── mgrcommon │ ├── common.go │ └── common_test.go ├── mgrmodel │ ├── device.go │ ├── device_test.go │ ├── manager.go │ └── manager_test.go ├── mgrresponse │ ├── managers.go │ └── rpc.go └── rpc │ ├── manager.go │ └── manager_test.go ├── svc-systems ├── README.md ├── chassis │ ├── create.go │ ├── create_test.go │ ├── delete.go │ ├── delete_test.go │ ├── fabric.go │ ├── fabric_test.go │ ├── fabricresource.go │ ├── fabricresource_test.go │ ├── get.go │ ├── get_collection.go │ ├── get_collection_test.go │ ├── get_test.go │ ├── getresource.go │ ├── getresource_test.go │ ├── update.go │ ├── update_test.go │ ├── updatefabricresource.go │ └── updatefabricresource_test.go ├── go.mod ├── go.sum ├── main.go ├── plugin │ ├── client.go │ ├── client_mock.go │ └── client_test.go ├── rpc │ ├── chassis.go │ ├── chassis_test.go │ ├── systems.go │ ├── systems_test.go │ ├── wrapers.go │ └── wrapers_test.go ├── scommon │ ├── common.go │ └── common_test.go ├── sconstant │ └── constant.go ├── smodel │ ├── fabrics.go │ ├── fabrics_test.go │ ├── systems.go │ └── systems_test.go ├── sresponse │ ├── Collection.go │ ├── error.go │ └── rpc.go └── systems │ ├── bootorder.go │ ├── bootorder_test.go │ ├── common.go │ ├── getresource.go │ ├── getresource_test.go │ ├── reset.go │ ├── reset_test.go │ ├── secureBoot.go │ ├── secureBoot_test.go │ ├── storage.go │ └── storage_test.go ├── svc-task ├── README.md ├── go.mod ├── go.sum ├── main.go ├── tauth │ └── tauth.go ├── tcommon │ └── common.go ├── thandle │ ├── thandle.go │ ├── thandle_test.go │ ├── tmonitor.go │ ├── tmonitor_test.go │ └── tpolling.go ├── tmessagebus │ ├── consume.go │ ├── consume_test.go │ └── publish.go ├── tmodel │ ├── plugin.go │ ├── tmodel.go │ └── tmodel_test.go ├── tqueue │ ├── queue.go │ └── queue_test.go └── tresponse │ ├── error.go │ └── task.go ├── svc-telemetry ├── README.md ├── go.mod ├── go.sum ├── main.go ├── rpc │ ├── common.go │ ├── common_test.go │ ├── telemetry.go │ └── telemetry_test.go ├── tcommon │ ├── common.go │ └── common_test.go ├── telemetry │ ├── common.go │ ├── common_test.go │ ├── mockTelemetry.go │ ├── telemetry.go │ └── telemetry_test.go ├── tlresponse │ ├── list.go │ └── telemetryservice.go └── tmodel │ ├── model.go │ └── model_test.go └── svc-update ├── README.md ├── go.mod ├── go.sum ├── main.go ├── rpc ├── common.go ├── update.go └── update_test.go ├── ucommon ├── common.go └── common_test.go ├── umodel └── update.go ├── update ├── common.go ├── common_test.go ├── getresources.go ├── getresources_test.go ├── simpleUpdate.go ├── simpleUpdate_test.go ├── startUpdate.go └── startUpdate_test.go └── uresponse ├── list.go └── updateservice.go /.gitignore: -------------------------------------------------------------------------------- 1 | build/odimra/odimra_config/* 2 | build/odimra/odimra 3 | build/DELLPlugin/dell_plugin_config 4 | build/RFPlugin/plugin_config 5 | build/Redis/redis-persistence 6 | build/cert_generator/*.crt 7 | build/cert_generator/*.key 8 | build/cert_generator/*.jks 9 | build/cert_generator/*.private 10 | build/cert_generator/*.public 11 | *.pb.go 12 | -------------------------------------------------------------------------------- /build/DELLPlugin/command.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | cp -r /var/dell_plugin_config/ /etc && /var/tmp/dell_plugin-edit_config.sh && rm -rf /var/dell_plugin_config/* && /bin/start_plugin.sh 20 | -------------------------------------------------------------------------------- /build/DELLPlugin/dell_plugin.service: -------------------------------------------------------------------------------- 1 | #(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | # 3 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | #not use this file except in compliance with the License. You may obtain 5 | #a copy of the License at 6 | # 7 | # http:#www.apache.org/licenses/LICENSE-2.0 8 | # 9 | #Unless required by applicable law or agreed to in writing, software 10 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | #License for the specific language governing permissions and limitations 13 | # under the License. 14 | [Unit] 15 | Description=Dell Plugin 16 | Requires=network-online.target 17 | After=network-online.target 18 | [Service] 19 | Type=forking 20 | Restart=always 21 | ExecStart=/bin/sh -c 'cd bin ; export PLUGIN_CONFIG_FILE_PATH=/etc/dell_plugin_config/config_dell_plugin.json ; sudo -E -u plugin nohup ./plugin-dell >> /var/log/dell_plugin_logs/dell_plugin.log 2>&1 &' 22 | KillMode=process 23 | KillSignal=SIGTERM 24 | User=root 25 | StartLimitBurst=3 26 | RestartSec=3 27 | StartLimitInterval=300 28 | [Install] 29 | WantedBy=multi-user.target 30 | 31 | -------------------------------------------------------------------------------- /build/DELLPlugin/dell_plugin_config/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/build/DELLPlugin/dell_plugin_config/.keep -------------------------------------------------------------------------------- /build/DELLPlugin/start_plugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | systemctl enable dell_plugin 20 | 21 | while [ $? -ne 0 ] 22 | do 23 | systemctl enable dell_plugin 24 | done 25 | 26 | while true; do 27 | sleep 5s 28 | done 29 | -------------------------------------------------------------------------------- /build/Kafka/kafka-persistence/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /build/Kafka/kafka-persistence/config/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /build/Kafka/kafka-persistence/data/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /build/LenovoPlugin/command.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | cp -r /var/lenovo_plugin_config/ /etc && /var/tmp/lenovo_plugin-edit_config.sh && rm -rf /var/lenovo_plugin_config/* && /bin/start_plugin.sh 20 | -------------------------------------------------------------------------------- /build/LenovoPlugin/lenovo_plugin.service: -------------------------------------------------------------------------------- 1 | #(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | # 3 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | #not use this file except in compliance with the License. You may obtain 5 | #a copy of the License at 6 | # 7 | # http:#www.apache.org/licenses/LICENSE-2.0 8 | # 9 | #Unless required by applicable law or agreed to in writing, software 10 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | #License for the specific language governing permissions and limitations 13 | # under the License. 14 | [Unit] 15 | Description=Lenovo Plugin 16 | Requires=network-online.target 17 | After=network-online.target 18 | [Service] 19 | Type=forking 20 | Restart=always 21 | ExecStart=/bin/sh -c 'cd bin ; export PLUGIN_CONFIG_FILE_PATH=/etc/lenovo_plugin_config/config_lenovo_plugin.json ; sudo -E -u plugin nohup ./plugin-lenovo >> /var/log/lenovo_plugin_logs/lenovo_plugin.log 2>&1 &' 22 | KillMode=process 23 | KillSignal=SIGTERM 24 | User=root 25 | StartLimitBurst=3 26 | RestartSec=3 27 | StartLimitInterval=300 28 | [Install] 29 | WantedBy=multi-user.target 30 | 31 | -------------------------------------------------------------------------------- /build/LenovoPlugin/lenovo_plugin_config/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/build/LenovoPlugin/lenovo_plugin_config/.keep -------------------------------------------------------------------------------- /build/LenovoPlugin/start_plugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | systemctl enable lenovo_plugin 20 | 21 | while [ $? -ne 0 ] 22 | do 23 | systemctl enable lenovo_plugin 24 | done 25 | 26 | while true; do 27 | sleep 5s 28 | done 29 | -------------------------------------------------------------------------------- /build/RFPlugin/command.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | cp -r /var/plugin_config/ /etc && /var/tmp/edit_config.sh && rm -rf /var/plugin_config/* && /bin/start_plugin.sh 20 | -------------------------------------------------------------------------------- /build/RFPlugin/grf_plugin.service: -------------------------------------------------------------------------------- 1 | #(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | # 3 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | #not use this file except in compliance with the License. You may obtain 5 | #a copy of the License at 6 | # 7 | # http:#www.apache.org/licenses/LICENSE-2.0 8 | # 9 | #Unless required by applicable law or agreed to in writing, software 10 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | #License for the specific language governing permissions and limitations 13 | # under the License. 14 | [Unit] 15 | Description=ILO Plugin 16 | Requires=network-online.target 17 | After=network-online.target 18 | [Service] 19 | Type=forking 20 | Restart=always 21 | ExecStart=/bin/sh -c 'cd bin ; export PLUGIN_CONFIG_FILE_PATH=/etc/plugin_config/config_redfish_plugin.json ; sudo -E -u plugin nohup ./plugin-redfish >> /var/log/plugin_logs/plugin.log 2>&1 &' 22 | KillMode=process 23 | KillSignal=SIGTERM 24 | User=root 25 | StartLimitBurst=3 26 | RestartSec=3 27 | StartLimitInterval=300 28 | [Install] 29 | WantedBy=multi-user.target 30 | 31 | -------------------------------------------------------------------------------- /build/RFPlugin/plugin_config/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/build/RFPlugin/plugin_config/.keep -------------------------------------------------------------------------------- /build/RFPlugin/start_plugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | systemctl enable grf_plugin 20 | 21 | while [ $? -ne 0 ] 22 | do 23 | systemctl enable grf_plugin 24 | done 25 | 26 | while true; do 27 | sleep 5s 28 | done 29 | -------------------------------------------------------------------------------- /build/Redis/Dockerfile.redis: -------------------------------------------------------------------------------- 1 | #(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | # 3 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | #not use this file except in compliance with the License. You may obtain 5 | #a copy of the License at 6 | # 7 | # http:#www.apache.org/licenses/LICENSE-2.0 8 | # 9 | #Unless required by applicable law or agreed to in writing, software 10 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | #License for the specific language governing permissions and limitations 13 | # under the License. 14 | FROM redis:7.0.11 15 | 16 | COPY Redis/start2db.sh /usr/local/bin/ 17 | COPY Redis/createschema.sh /usr/local/bin/ 18 | COPY Redis/checkdb.sh /usr/local/bin/ 19 | 20 | RUN apt update 21 | RUN apt-get -y install vim 22 | RUN apt-get -y install procps 23 | 24 | ENTRYPOINT ["/usr/local/bin/start2db.sh"]  25 | -------------------------------------------------------------------------------- /build/Redis/checkdb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | redis-cli -p 6380 <> /var/log/odimra_logs/account_session.log 2>&1 &' 22 | KillMode=process 23 | KillSignal=SIGTERM 24 | User=root 25 | StartLimitBurst=3 26 | RestartSec=3 27 | StartLimitInterval=100 28 | [Install] 29 | WantedBy=multi-user.target 30 | 31 | -------------------------------------------------------------------------------- /build/odimra/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | LIST=`ls | grep -v 'lib-rest-client' | grep -E '^svc-|^plugin|^odimra'` 20 | for i in $LIST; do 21 | cd $i 22 | if [[ "$i" == "plugin-unmanaged-racks" ]]; then 23 | make build 24 | else 25 | go build -i -race . 26 | fi 27 | if [ $? -eq 0 ]; then 28 | echo Build for odimra service/lib $i is Successful !!!! 29 | arr1+=$i; 30 | else 31 | echo Build for odimra service/lib $i is Failed !!!! 32 | arr2+=$i; 33 | flag=0 34 | fi 35 | cd ../ 36 | done 37 | -------------------------------------------------------------------------------- /build/odimra/command.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | cp -r /var/odimra_config/ /etc/ && /var/tmp/edit_config.sh && rm -rf /var/odimra_config/* && /bin/start_odimra.sh 20 | -------------------------------------------------------------------------------- /build/odimra/odimra_config/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/build/odimra/odimra_config/.keep -------------------------------------------------------------------------------- /build/odimra/odimra_config/registrystore/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/build/odimra/odimra_config/registrystore/.keep -------------------------------------------------------------------------------- /build/odimra/start_odimra.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | 19 | 20 | export configFolder="/etc/odimra_config" 21 | export logFolder="/var/log/odimra_logs" 22 | 23 | cd /bin 24 | 25 | for i in api account_session aggregation event systems task fabrics telemetry managers update licenses 26 | do 27 | systemctl enable $i 28 | while [ $? -ne 0 ] 29 | do 30 | systemctl enable $i 31 | done 32 | done 33 | 34 | while true; do 35 | sleep 5s 36 | done 37 | -------------------------------------------------------------------------------- /build/plugin-unmanaged-racks/Dockerfile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | FROM odimra_builddep:tst as build-stage 15 | FROM scratch 16 | 17 | COPY --from=build-stage /odimra/plugin-unmanaged-racks/tmp/* / 18 | 19 | CMD ["/urp"] 20 | 21 | -------------------------------------------------------------------------------- /docs/fonts/slate.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/fonts/slate.eot -------------------------------------------------------------------------------- /docs/fonts/slate.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/fonts/slate.ttf -------------------------------------------------------------------------------- /docs/fonts/slate.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/fonts/slate.woff -------------------------------------------------------------------------------- /docs/fonts/slate.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/fonts/slate.woff2 -------------------------------------------------------------------------------- /docs/images/all_services_verification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/all_services_verification.png -------------------------------------------------------------------------------- /docs/images/arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/arch.png -------------------------------------------------------------------------------- /docs/images/check_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/check_1.png -------------------------------------------------------------------------------- /docs/images/check_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/check_2.png -------------------------------------------------------------------------------- /docs/images/check_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/check_3.png -------------------------------------------------------------------------------- /docs/images/kuberenetes_pods_verification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/kuberenetes_pods_verification.png -------------------------------------------------------------------------------- /docs/images/kubernetes_images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/kubernetes_images.png -------------------------------------------------------------------------------- /docs/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/logo.png -------------------------------------------------------------------------------- /docs/images/navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/navbar.png -------------------------------------------------------------------------------- /docs/images/odim_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/odim_cluster.png -------------------------------------------------------------------------------- /docs/images/odim_deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/odim_deployment.png -------------------------------------------------------------------------------- /docs/images/odimra_images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/odimra_images.png -------------------------------------------------------------------------------- /docs/images/redfish_data_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/redfish_data_model.png -------------------------------------------------------------------------------- /docs/images/telco_bruce_arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/docs/images/telco_bruce_arch.png -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/accountSession.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | 15 | LIST=("svc-account-session") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/aggregation.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-aggregation") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/api.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-api") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/dellplugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("plugin-dell") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/events.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-events") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/fabrics.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-fabrics") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/grfplugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("plugin-redfish") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/lenovoplugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("plugin-lenovo") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/licenses.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-licenses") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/managers.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-managers") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/systems.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-systems") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/task.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-task") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/telemetry.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-telemetry") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("svc-update") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | 26 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/build/urplugin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | # (C) Copyright [2022] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | LIST=("plugin-unmanaged-racks") 16 | echo $LIST 17 | cd $LIST 18 | go build -i . 19 | if [ $? -eq 0 ]; then 20 | echo Successfully build $LIST service 21 | else 22 | echo Failed to build $LIST service 23 | fi 24 | cd ../ 25 | -------------------------------------------------------------------------------- /install/Docker/dockerfiles/scripts/redis-checkdb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # (C) Copyright [2020] Hewlett Packard Enterprise Development LP 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Script is for generating certificate and private key 17 | # for Client mode connection usage only 18 | sleep 3 19 | echo "Checking if default entries already present" 20 | redis_password=$(openssl pkeyutl -decrypt -in cipher -inkey ${ODIMRA_RSA_PRIVATE_FILE} -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha512) 21 | redis-cli -a ${redis_password} -h ${master} -p ${REDIS_HA_REDIS_SERVICE_PORT} --tls --cert ${TLS_CERT_FILE} --key ${TLS_KEY_FILE} --cacert ${TLS_CA_CERT_FILE} < ../lib-dmtf 21 | github.com/ODIM-Project/ODIM/lib-messagebus => ../lib-messagebus 22 | github.com/ODIM-Project/ODIM/lib-persistence-manager => ../lib-persistence-manager 23 | github.com/ODIM-Project/ODIM/lib-rest-client => ../lib-rest-client 24 | github.com/ODIM-Project/ODIM/lib-utilities => ../lib-utilities 25 | ) 26 | -------------------------------------------------------------------------------- /lib-persistence-manager/README.md: -------------------------------------------------------------------------------- 1 | # lib-persistence-manager 2 | 3 | lib-persistence-manager is a library that provides an interface for Redis communication. 4 | Connection interface creates a connection pool, which will be used to interact with the Redis to perform CRUD operation. 5 | ## Indexing 6 | lib-persistence-manager uses the Redis secondary index for indexing the resources to support search and filter capability. Currently in Resource Aggregator for ODIM, BMC subordinate resources, Events, and Device subscriptions are indexed. 7 | -------------------------------------------------------------------------------- /lib-persistence-manager/persistencemgr/unit_test_db_confighelp_test.go: -------------------------------------------------------------------------------- 1 | // (C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | // not use this file except in compliance with the License. You may obtain 5 | // a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | // License for the specific language governing permissions and limitations 13 | // under the License. 14 | package persistencemgr 15 | 16 | import ( 17 | "testing" 18 | ) 19 | 20 | func TestGetMockDBConfig(t *testing.T) { 21 | mockConnect, err := GetMockDBConfig() 22 | if err != nil { 23 | t.Errorf("error while trying to initiate mock db: %v", err) 24 | } 25 | if (mockConnect.Port == "") || (mockConnect.Host == "") { 26 | t.Errorf("error in populating config parameters") 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /lib-rest-client/README.md: -------------------------------------------------------------------------------- 1 | # lib-rest-client 2 | lib-rest-client is a library that acts as a bridge between ODIM and plugins. 3 | This library holds the interfaces and functions to establish a REST connection with the plugin. 4 | The library contacts the plugin through REST calls and collects back the response and passes it to the user. 5 | -------------------------------------------------------------------------------- /lib-utilities/README.md: -------------------------------------------------------------------------------- 1 | # lib-utilities 2 | 3 | lib-utilities is a library containing all the common models and functions. It also contains the common configuration file for Resource Aggregator for ODIM (ODIMRA). 4 | 5 | Packages in this library are as follows: 6 | 1. config—Contains the ODIMRA configuration file, functions, and models for processing and validating configuration file. 7 | 2. common—Contains miscellaneous models and functions which can be used across multiple ODIMRA services and other libraries. 8 | 3. errors—Contains the definition and operations of ODIMRA custom errors especially for database related operations. 9 | 4. proto—Holds the proto files and the auto-generated supporting files for enabling RPC communication between ODIMRA services. 10 | 5. response—Defines the common responses of ODIMRA. This also contains functions for creating error responses that matches the Redfish standards. 11 | 6. services—Acts as the backbone for the ODIMRA micro services. The package contains the functions for creating microservice clients and servers. 12 | -------------------------------------------------------------------------------- /lib-utilities/proto/auth/odim_auth.proto: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http:#www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License 14 | 15 | syntax = "proto3"; 16 | 17 | service Authorization { 18 | rpc IsAuthorized(AuthRequest) returns (AuthResponse){} 19 | } 20 | 21 | message AuthRequest{ 22 | string sessionToken = 1; 23 | repeated string privileges = 2; 24 | repeated string oemprivileges = 3; 25 | } 26 | 27 | message AuthResponse{ 28 | int32 statusCode = 1; 29 | string statusMessage = 2; 30 | } -------------------------------------------------------------------------------- /odim-controller/.gitignore: -------------------------------------------------------------------------------- 1 | !kubespray/configure-kubespray.sh 2 | !kubespray/kubespray-2.14.0.tar.gz 3 | kubespray/* 4 | scripts/certs 5 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/account-session/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: account-session 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or 6 | # a 'library' chart. 7 | # 8 | # Application charts are a collection of templates 9 | # that can be packaged into versioned archives to be deployed. 10 | # 11 | # Library charts provide useful utilities or functions for 12 | # the chart developer. They're included as 13 | # a dependency of application charts to inject those utilities 14 | # and functions into the rendering pipeline. Library 15 | # charts do not define any templates and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should 19 | # be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 5.0.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be 26 | # incremented each time you make changes to the application. 27 | # Versions are not expected to follow Semantic Versioning. 28 | # They should reflect the version the application is using. 29 | appVersion: 5.0.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/account-session/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: account-session 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: account-session 8 | spec: 9 | ports: 10 | - port: 45101 11 | selector: 12 | app: account-session 13 | 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/account-session/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | accountSessionImageTag: "5.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/aggregation/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: aggregation 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or 6 | # a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for 11 | # the chart developer. They're included as 12 | # a dependency of application charts to inject those utilities 13 | # and functions into the rendering pipeline. Library charts do 14 | # not define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 6.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version the 27 | # application is using. 28 | appVersion: 6.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/aggregation/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: aggregation 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: aggregation 8 | spec: 9 | ports: 10 | - port: 45102 11 | selector: 12 | app: aggregation 13 | 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/aggregation/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | aggregationImageTag: "6.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/api/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: api 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the 11 | # chart developer. They're included as a dependency of 12 | # application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts do not 14 | # define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number 18 | # should be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 7.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 7.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/api/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: api 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: api 8 | spec: 9 | {{ if eq .Values.nwPreference "dualStack" }} 10 | ipFamilies: 11 | - IPv4 12 | - IPv6 13 | ipFamilyPolicy: PreferDualStack 14 | {{ end }} 15 | ports: 16 | - nodePort: {{ .Values.odimra.apiNodePort }} 17 | port: 45000 18 | selector: 19 | app: api 20 | type: NodePort 21 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/api/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | apiNodePort: 5 | haDeploymentEnabled: 6 | apiImageTag: "7.0" 7 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/composition-service/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: composition-service 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for 11 | # the chart developer. They're included as a dependency 12 | # of application charts to inject those utilities 13 | # and functions into the rendering pipeline. Library 14 | # charts do not define any templates and therefore 15 | # cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should be 19 | # incremented each time you make changes to the chart 20 | # and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 1.0.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be incremented each time 26 | # you make changes to the application. Versions are not expected to 27 | # follow Semantic Versioning. They should reflect the version 28 | # the application is using. 29 | appVersion: 1.0.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/composition-service/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: composition-service 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: composition-service 8 | spec: 9 | ports: 10 | - port: 45112 11 | selector: 12 | app: composition-service 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/composition-service/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: odim 3 | groupID: 4 | haDeploymentEnabled: false 5 | compositionservice: 6 | imageTag: "1.0" 7 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/configure-hosts/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: configure-hosts 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that can 8 | # be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the 11 | # chart developer. They're included as a dependency of application 12 | # charts to inject those utilities and functions into the rendering 13 | # pipeline. Library charts do not define any templates and therefore 14 | # cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 0.1.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time you make 25 | # changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 1.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/configure-hosts/templates/configmaps.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: configure-hosts 6 | namespace: {{ .Values.odimra.namespace }} 7 | data: 8 | hosts: {{ .Values.odimra.etcHostsEntries | quote }} 9 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/configure-hosts/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | etcHostsEntries: 4 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/dellplugin/dellplugin-config.yaml: -------------------------------------------------------------------------------- 1 | dellplugin: 2 | eventListenerNodePort: 30084 3 | dellPluginRootServiceUUID: 4 | username: admin 5 | password: sTfTyTZFvNj5zU5Tt0TfyDYU-ye3_ZqTMnMIj-LAeXaa8vCnBqq8Ga7zV6ZdfqQCdSAzmaO5AJxccD99UHLVlQ== 6 | lbHost: 7 | lbPort: 8 | logPath: /var/log/dellplugin_logs 9 | logsOnConsole: false 10 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/dellplugin/dellplugin/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: dellplugin 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that can 8 | # be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the 11 | # chart developer. They're included as a dependency of application 12 | # charts to inject those utilities and functions into the rendering 13 | # pipeline. Library charts do not define any templates and therefore 14 | # cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 3.1.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version the 27 | # application is using. 28 | appVersion: 3.1.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/dellplugin/dellplugin/templates/pv.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.dellplugin.logsOnConsole }} 3 | kind: PersistentVolume 4 | apiVersion: v1 5 | metadata: 6 | name: dellplugin-log 7 | namespace: {{ .Values.odimra.namespace }} 8 | labels: 9 | type: local 10 | spec: 11 | storageClassName: manual 12 | capacity: 13 | storage: 100Mi 14 | accessModes: 15 | - ReadWriteOnce 16 | claimRef: 17 | namespace: {{ .Values.odimra.namespace }} 18 | name: dellplugin-log-claim 19 | hostPath: 20 | path: {{ .Values.dellplugin.logPath }} 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/dellplugin/dellplugin/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.dellplugin.logsOnConsole }} 3 | kind: PersistentVolumeClaim 4 | apiVersion: v1 5 | metadata: 6 | name: dellplugin-log-claim 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | storageClassName: manual 10 | accessModes: 11 | - ReadWriteOnce 12 | resources: 13 | requests: 14 | storage: 100Mi 15 | {{- end }} -------------------------------------------------------------------------------- /odim-controller/helmcharts/dellplugin/dellplugin/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: dellplugin 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: dellplugin 8 | spec: 9 | ports: 10 | - port: 45005 11 | selector: 12 | app: dellplugin 13 | --- 14 | apiVersion: v1 15 | kind: Service 16 | metadata: 17 | name: dellplugin-events 18 | namespace: {{ .Values.odimra.namespace }} 19 | labels: 20 | app: dellplugin 21 | spec: 22 | type: NodePort 23 | ports: 24 | - port: 45006 25 | nodePort: {{ .Values.dellplugin.eventListenerNodePort }} 26 | protocol: TCP 27 | {{ if eq .Values.odimra.haDeploymentEnabled false }} 28 | externalTrafficPolicy: Local 29 | {{ end }} 30 | selector: 31 | app: dellplugin 32 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/dellplugin/dellplugin/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | dellplugin: 6 | eventListenerNodePort: 7 | imageTag: "3.1" 8 | dellPluginRootServiceUUID: 9 | username: 10 | password: 11 | host: dellplugin 12 | eventHost: dellplugin 13 | lbHost: 14 | lbPort: 15 | logPath: 16 | logLevel: warn 17 | logFormat: syslog 18 | logsOnConsole: true 19 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/etcd-ha/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: etcd-ha 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for 11 | # the chart developer. They're included as a dependency 12 | # of application charts to inject those utilities and 13 | # functions into the rendering pipeline. Library charts 14 | # do not define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 1.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version the 27 | # application is using.It is recommended to use it with quotes. 28 | appVersion: 3.4.15 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/etcd-ha/templates/etcd-ha-service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: etcd 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: etcd 9 | deployment: odim-ra 10 | spec: 11 | type: ClusterIP 12 | selector: 13 | app: etcd 14 | parentdeployment: odim-ra 15 | ports: 16 | - name: etcd-server 17 | port: 2379 18 | - name: etcd-quorum 19 | port: 2380 20 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/etcd-ha/values.yaml: -------------------------------------------------------------------------------- 1 | hostname: 2 | odimra: 3 | namespace: 4 | groupID: 5 | etcdDirPath: 6 | etcdImageTag: "1.16" 7 | etcdConfPath: 8 | etcdDataPath: -------------------------------------------------------------------------------- /odim-controller/helmcharts/etcd/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: etcd 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that can 8 | # be packaged into versioned archives to be deployed. 9 | 10 | # 11 | # Library charts provide useful utilities or functions 12 | # for the chart developer. They're included as 13 | # a dependency of application charts to inject those 14 | # utilities and functions into the rendering 15 | # pipeline. Library charts do not define any templates 16 | # and therefore cannot be deployed. 17 | type: application 18 | 19 | # This is the chart version. This version number should 20 | # be incremented each time you make changes 21 | # to the chart and its templates, including the app version. 22 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 23 | version: 1.0.0 24 | 25 | # This is the version number of the application being 26 | # deployed. This version number should be 27 | # incremented each time you make changes to the application. 28 | # Versions are not expected to follow Semantic Versioning. 29 | # They should reflect the version the application is using. 30 | # It is recommended to use it with quotes. 31 | appVersion: 3.4.15 32 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/etcd/templates/etcd-service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: etcd 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: etcd 9 | deployment: odim-ra 10 | spec: 11 | type: ClusterIP 12 | selector: 13 | app: etcd 14 | parentdeployment: odim-ra 15 | ports: 16 | - name: etcd-server 17 | port: 2379 18 | - name: etcd-quorum 19 | port: 2380 20 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/etcd/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | etcdImageTag: "1.16" 5 | etcdConfPath: 6 | etcdDataPath: -------------------------------------------------------------------------------- /odim-controller/helmcharts/events/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: events 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the 11 | # chart developer. They're included as a dependency of application 12 | # charts to inject those utilities and functions into the rendering 13 | # pipeline. Library charts do not define any templates and therefore 14 | # cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 7.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version the 27 | # application is using. 28 | appVersion: 7.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/events/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: events 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: events 8 | spec: 9 | ports: 10 | - port: 45103 11 | selector: 12 | app: events 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/events/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | eventImageTag: "7.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/fabrics/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: fabrics 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for 11 | # the chart developer. They're included as a dependency of 12 | # application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts do 14 | # not define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 5.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 5.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/fabrics/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: fabrics 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: fabrics 8 | spec: 9 | ports: 10 | - port: 45106 11 | selector: 12 | app: fabrics 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/fabrics/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | fabricsImageTag: "5.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/grfplugin/grfplugin-config.yaml: -------------------------------------------------------------------------------- 1 | grfplugin: 2 | eventListenerNodePort: 30081 3 | logPath: /var/log/grfplugin_logs 4 | rootServiceUUID: 5 | username: admin 6 | password: "UUFCYFpBoHh6UdvytPzm65SkHj5zyl73EYVNJNbrFeAPWYrkpTijGB9zrVQSbbLv052HK7-7chqDQQcjgWf7YA==" 7 | lbHost: 8 | lbPort: 9 | logsOnConsole: false 10 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/grfplugin/grfplugin/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: grfplugin 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for 11 | # the chart developer. They're included as a dependency of 12 | # application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts 14 | # do not define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 4.1.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 4.1.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/grfplugin/grfplugin/templates/pv.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.grfplugin.logsOnConsole }} 3 | kind: PersistentVolume 4 | apiVersion: v1 5 | metadata: 6 | name: grfplugin-log 7 | namespace: {{ .Values.odimra.namespace }} 8 | labels: 9 | type: local 10 | spec: 11 | storageClassName: manual 12 | capacity: 13 | storage: 100Mi 14 | accessModes: 15 | - ReadWriteOnce 16 | claimRef: 17 | namespace: {{ .Values.odimra.namespace }} 18 | name: grfplugin-log-claim 19 | hostPath: 20 | path: {{ .Values.grfplugin.logPath }} 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/grfplugin/grfplugin/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.grfplugin.logsOnConsole }} 3 | kind: PersistentVolumeClaim 4 | apiVersion: v1 5 | metadata: 6 | name: grfplugin-log-claim 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | storageClassName: manual 10 | accessModes: 11 | - ReadWriteOnce 12 | resources: 13 | requests: 14 | storage: 100Mi 15 | {{- end}} 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/grfplugin/grfplugin/templates/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: grfplugin 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: grfplugin 9 | spec: 10 | ports: 11 | - port: 45001 12 | selector: 13 | app: grfplugin 14 | --- 15 | apiVersion: v1 16 | kind: Service 17 | metadata: 18 | name: grfplugin-events 19 | namespace: {{ .Values.odimra.namespace }} 20 | labels: 21 | app: grfplugin 22 | spec: 23 | type: NodePort 24 | ports: 25 | - port: 45002 26 | nodePort: {{ .Values.grfplugin.eventListenerNodePort }} 27 | protocol: TCP 28 | {{ if eq .Values.odimra.haDeploymentEnabled false }} 29 | externalTrafficPolicy: Local 30 | {{ end }} 31 | selector: 32 | app: grfplugin 33 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/grfplugin/grfplugin/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | grfplugin: 6 | eventListenerNodePort: 7 | imageTag: "4.1" 8 | logPath: 9 | rootServiceUUID: 10 | username: 11 | password: 12 | host: grfplugin 13 | eventHost: grfplugin 14 | lbHost: 15 | lbPort: 16 | logsOnConsole: false -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka-ha/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kafka-ha-3.4.0 3 | description: A Helm chart for kafka 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject those 13 | # utilities and functions into the rendering 14 | # pipeline. Library charts do not define any 15 | # templates and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number 19 | # should be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 0.3.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be incremented each time 26 | # you make changes to the application. Versions are not 27 | # expected to follow Semantic Versioning. They should reflect 28 | # the version the application is using. 29 | appVersion: 1.16.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka-ha/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | kafkaDirPath: 5 | kafkaImageTag: "3.0" 6 | kafkaNodePort: 7 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka-secret/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kafka-secret 3 | description: A Helm chart for kafka secrets 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject those 13 | # utilities and functions into the rendering 14 | # pipeline. Library charts do not define any templates 15 | # and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number 19 | # should be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 0.3.0 23 | 24 | 25 | # This is the version number of the application being deployed. This version number should be 26 | # incremented each time you make changes to the application. Versions are not expected to 27 | # follow Semantic Versioning. They should reflect the version the application is using. 28 | appVersion: 3.0.0 29 | 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka-secret/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: kafka-secret 6 | namespace: {{ .Values.odimra.namespace }} 7 | type: Opaque 8 | stringData: 9 | jkskey: {{ .Values.odimra.kafkaJKSPassword }} 10 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka-secret/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | kafkaJKSPassword: 4 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kafka-3.4.0 3 | description: A Helm chart for kafka 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as a dependency 12 | # of application charts to inject those utilities and 13 | # functions into the rendering pipeline. Library charts do not 14 | # define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should be 18 | # incremented each time you make changes to the chart 19 | # and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 0.3.0 22 | 23 | 24 | # This is the version number of the application being deployed. This version number should be 25 | # incremented each time you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version the application is using. 27 | appVersion: 0.3.0 28 | 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka/templates/kafka-service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: kafka 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: kafka 9 | deployment: odim-ra 10 | spec: 11 | selector: 12 | app: kafka 13 | parentdeployment: odim-ra 14 | ports: 15 | - name: kafka 16 | port: 9092 17 | protocol: TCP 18 | type: ClusterIP 19 | --- 20 | apiVersion: v1 21 | kind: Service 22 | metadata: 23 | name: kafka-ext 24 | namespace: {{ .Values.odimra.namespace }} 25 | labels: 26 | app: kafka 27 | deployment: odim-ra 28 | spec: 29 | selector: 30 | app: kafka 31 | parentdeployment: odim-ra 32 | ports: 33 | - name: kafka-ext 34 | port: 30092 35 | nodePort: {{ .Values.odimra.kafkaNodePort }} 36 | protocol: TCP 37 | type: NodePort 38 | --- 39 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/kafka/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | kafkaImageTag: "3.0" 5 | kafkaNodePort: 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/lenovoplugin/lenovoplugin-config.yaml: -------------------------------------------------------------------------------- 1 | lenovoplugin: 2 | eventListenerNodePort: 30089 3 | logPath: /var/log/lenovoplugin_logs 4 | lenovoPluginRootServiceUUID: 5 | username: admin 6 | password: sTfTyTZFvNj5zU5Tt0TfyDYU-ye3_ZqTMnMIj-LAeXaa8vCnBqq8Ga7zV6ZdfqQCdSAzmaO5AJxccD99UHLVlQ== 7 | lbHost: 8 | lbPort: 9 | logsOnConsole: false 10 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/lenovoplugin/lenovoplugin/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: lenovoplugin 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application 6 | # ' or a 'library' chart. 7 | # Application charts are a collection of templates that can 8 | # be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as a dependency 12 | # of application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts do not 14 | # define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should be 18 | # incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 1.3.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time you 25 | # make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 1.3.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/lenovoplugin/lenovoplugin/templates/pv.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.lenovoplugin.logsOnConsole }} 3 | kind: PersistentVolume 4 | apiVersion: v1 5 | metadata: 6 | name: lenovoplugin-log 7 | namespace: {{ .Values.odimra.namespace }} 8 | labels: 9 | type: local 10 | spec: 11 | storageClassName: manual 12 | capacity: 13 | storage: 100Mi 14 | accessModes: 15 | - ReadWriteOnce 16 | claimRef: 17 | namespace: {{ .Values.odimra.namespace }} 18 | name: lenovoplugin-log-claim 19 | hostPath: 20 | path: {{ .Values.lenovoplugin.logPath }} 21 | {{- end}} 22 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/lenovoplugin/lenovoplugin/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.lenovoplugin.logsOnConsole }} 3 | kind: PersistentVolumeClaim 4 | apiVersion: v1 5 | metadata: 6 | name: lenovoplugin-log-claim 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | storageClassName: manual 10 | accessModes: 11 | - ReadWriteOnce 12 | resources: 13 | requests: 14 | storage: 100Mi 15 | {{- end}} 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/lenovoplugin/lenovoplugin/templates/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: lenovoplugin 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: lenovoplugin 9 | spec: 10 | ports: 11 | - port: 45009 12 | selector: 13 | app: lenovoplugin 14 | --- 15 | apiVersion: v1 16 | kind: Service 17 | metadata: 18 | name: lenovoplugin-events 19 | namespace: {{ .Values.odimra.namespace }} 20 | labels: 21 | app: lenovoplugin 22 | spec: 23 | type: NodePort 24 | ports: 25 | - port: 45010 26 | nodePort: {{ .Values.lenovoplugin.eventListenerNodePort }} 27 | protocol: TCP 28 | {{ if eq .Values.odimra.haDeploymentEnabled false }} 29 | externalTrafficPolicy: Local 30 | {{ end }} 31 | selector: 32 | app: lenovoplugin 33 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/lenovoplugin/lenovoplugin/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | lenovoplugin: 6 | hostname: 7 | eventListenerNodePort: 8 | imageTag: "1.3" 9 | logPath: 10 | lenovoPluginRootServiceUUID: 11 | username: 12 | password: 13 | host: lenovoplugin 14 | eventHost: lenovoplugin 15 | lbHost: 16 | lbPort: 17 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/licenses/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: licenses 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for 11 | # the chart developer. They're included as a dependency of 12 | # application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts do not 14 | # define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should be 18 | # incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 4.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not 26 | # expected to follow Semantic Versioning. 27 | # They should reflect the version the application is using. 28 | appVersion: 4.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/licenses/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: licenses 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: licenses 8 | spec: 9 | ports: 10 | - port: 45113 11 | selector: 12 | app: licenses -------------------------------------------------------------------------------- /odim-controller/helmcharts/licenses/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | licensesImageTag: "4.0" -------------------------------------------------------------------------------- /odim-controller/helmcharts/managers/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: managers 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as a dependency 12 | # of application charts to inject those utilities and 13 | # functions into the rendering pipeline. Library charts do 14 | # not define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should be 18 | # incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 7.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time you 25 | # make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 7.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/managers/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: managers 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: managers 8 | spec: 9 | ports: 10 | - port: 45107 11 | selector: 12 | app: managers 13 | 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/managers/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | managersImageTag: "7.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-config/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: odimra-config 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as a dependency of 12 | # application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts do not define 14 | # any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 2.0.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time you make 25 | # changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 2.0.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-config/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | rootServiceUUID: 4 | fqdn: 5 | apiGatewayHost: 6 | connectionMethodConf: 7 | haDeploymentEnabled: 8 | logLevel: 9 | logFormat: 10 | keyExpiryInterval: 11 | eventForwardingWorkerPoolCount: 12 | eventSaveWorkerPoolCount: 13 | logsOnConsole: -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-k8s-access-config/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: odimra-k8s-access-config 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 1.0.0 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | appVersion: 1.0.0 24 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-k8s-access-config/templates/role.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: Role 3 | metadata: 4 | name: odimra-role 5 | namespace: {{ .Values.odimra.namespace }} 6 | rules: 7 | - apiGroups: [""] 8 | resources: ["endpoints"] 9 | verbs: ["get", "list"] 10 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-k8s-access-config/templates/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: RoleBinding 3 | metadata: 4 | name: odimra-rolebinding 5 | namespace: {{ .Values.odimra.namespace }} 6 | subjects: 7 | - kind: ServiceAccount 8 | name: odimra 9 | roleRef: 10 | kind: Role 11 | name: odimra-role 12 | apiGroup: rbac.authorization.k8s.io 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-k8s-access-config/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: odimra 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | deployment: odimra 8 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-k8s-access-config/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-platformconfig/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: odimra-platformconfig 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 0.1.0 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | appVersion: 1.0.0 24 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-platformconfig/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | haDeploymentEnabled: 4 | redisInMemoryPassword: -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-pv-pvc/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: odimra-pv-pvc 3 | description: A Helm chart for creating PV, PVCs required by ODIM-RA application 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 2.0.0 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | appVersion: 2.0.0 24 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-pv-pvc/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | appsLogPath: 3 | etcdConfPath: 4 | etcdDataPath: 5 | redisOndiskDataPath: 6 | redisInmemoryDataPath: 7 | kafkaConfPath: 8 | kafkaDataPath: 9 | zookeeperConfPath: 10 | zookeeperDataPath: 11 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-secret/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: odimra-secret 3 | description: A Helm chart for odimra secrets 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 2.0.0 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | appVersion: 2.0.0 24 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-secret/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: odimra-secret 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: odimra-secret 9 | type: Opaque 10 | data: 11 | rootCAcrt: {{ .Values.odimra.rootCACert | b64enc }} 12 | odimra_servercrt: {{ .Values.odimra.odimraServerCert | b64enc }} 13 | redis_inmemory_password: {{ .Values.odimra.redisInMemoryPassword | b64enc }} 14 | redis_ondisk_password: {{ .Values.odimra.redisOnDiskPassword | b64enc }} 15 | odimra_serverkey: {{ .Values.odimra.odimraServerKey | b64enc }} 16 | odimra_rsapublic: {{ .Values.odimra.odimraRSAPublicKey | b64enc }} 17 | odimra_rsaprivate: {{ .Values.odimra.odimraRSAPrivateKey | b64enc }} 18 | {{- if eq .Values.odimra.messageBusType "Kafka" }} 19 | odimra_kafka_clientcrt: {{ .Values.odimra.odimraKafkaClientCert | b64enc }} 20 | odimra_kafka_clientkey: {{ .Values.odimra.odimraKafkaClientKey | b64enc }} 21 | {{- end }} 22 | odimra_etcd_servercrt: {{ .Values.odimra.odimraEtcdServerCert | b64enc }} 23 | odimra_etcd_serverkey: {{ .Values.odimra.odimraEtcdServerKey | b64enc }} 24 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/odimra-secret/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | rootCACert: 4 | odimraServerCert: 5 | odimraServerKey: 6 | odimraRSAPublicKey: 7 | odimraRSAPrivateKey: 8 | odimraKafkaClientCert: 9 | odimraKafkaClientKey: 10 | odimraEtcdServerCert: 11 | odimraEtcdServerKey: 12 | redisInMemoryPassword: 13 | redisOnDiskPassword: 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: redis-ha-7.0.11 3 | description: A Helm chart for redis 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as a dependency 12 | # of application charts to inject those utilities and functions 13 | # into the rendering pipeline. Library charts do not define 14 | # any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should be 18 | # incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 5.0.0 22 | 23 | 24 | # This is the version number of the application being deployed. This version number should be 25 | # incremented each time you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version the application is using. 27 | appVersion: 7.0.11 28 | 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-inmemory-headless-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-inmemory 6 | name: redis-ha-inmemory-headless 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | type: ClusterIP 10 | clusterIP: None 11 | ports: 12 | - name: redis 13 | port: 6379 14 | selector: 15 | app: redis-ha-inmemory 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-inmemory-sentinel-headless-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-inmemory-sentinel 6 | name: redis-ha-inmemory-sentinel-headless 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | type: ClusterIP 10 | clusterIP: None 11 | ports: 12 | - name: redis-sentinel 13 | port: 26379 14 | selector: 15 | app: redis-ha-inmemory-sentinel 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-inmemory-sentinel-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-inmemory-sentinel 6 | name: redis-ha-inmemory-sentinel 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | ports: 10 | - name: redis-sentinel 11 | port: 26379 12 | selector: 13 | app: redis-ha-inmemory-sentinel 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-inmemory-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-inmemory 6 | name: redis-ha-inmemory 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | ports: 10 | - name: redis 11 | port: 6379 12 | selector: 13 | app: redis-ha-inmemory 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-ondisk-headless-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-ondisk 6 | name: redis-ha-ondisk-headless 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | type: ClusterIP 10 | clusterIP: None 11 | ports: 12 | - name: redis 13 | port: 6379 14 | selector: 15 | app: redis-ha-ondisk 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-ondisk-sentinel-headless-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-ondisk-sentinel 6 | name: redis-ha-ondisk-sentinel-headless 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | type: ClusterIP 10 | clusterIP: None 11 | ports: 12 | - name: redis-sentinel 13 | port: 26379 14 | selector: 15 | app: redis-ha-ondisk-sentinel 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-ondisk-sentinel-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-ondisk-sentinel 6 | name: redis-ha-ondisk-sentinel 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | ports: 10 | - name: redis-sentinel 11 | port: 26379 12 | selector: 13 | app: redis-ha-ondisk-sentinel 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/templates/redis-ha-ondisk-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ha-ondisk 6 | name: redis-ha-ondisk 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | ports: 10 | - name: redis 11 | port: 6379 12 | selector: 13 | app: redis-ha-ondisk 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis-ha/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | redisImageTag: "5.0" 3 | namespace: 4 | groupID: 5 | redisOndiskDataPath: 6 | redisInmemoryDataPath: 7 | redisSecondayReplicaCount: 2 8 | redisMasterSet: primaryset 9 | redisQuorum: 2 10 | redisDownAfterMilliseconds: 1000 11 | redisFailoverTimeout: 3000 12 | redisParallelSyncs: 1 13 | redisInMemoryPassword: 14 | redisOnDiskPassword: 15 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: redis-7.0.11 3 | description: A Helm chart for redis 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 5.0.0 19 | 20 | # This is the version number of the application being deployed. This version number should be 21 | # incremented each time you make changes to the application. Versions are not expected to 22 | # follow Semantic Versioning. They should reflect the version the application is using. 23 | appVersion: 7.0.11 24 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis/templates/redis-inmemory-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-inmemory 6 | name: redis-inmemory 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | ports: 10 | - name: redis 11 | port: 6379 12 | selector: 13 | app: redis-inmemory 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis/templates/redis-ondisk-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: redis-ondisk 6 | name: redis-ondisk 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | ports: 10 | - name: redis 11 | port: 6379 12 | selector: 13 | app: redis-ondisk 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/redis/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | redisImageTag: "5.0" 5 | redisInMemoryPassword: 6 | redisOnDiskPassword: 7 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/reloader/templates/clusterrolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if and .Values.reloader.watchGlobally (.Values.reloader.rbac.enabled) }} 2 | {{- if and .Values.reloader.legacy.rbac }} 3 | apiVersion: rbac.authorization.k8s.io/v1beta1 4 | {{ else }} 5 | apiVersion: rbac.authorization.k8s.io/v1 6 | {{- end }} 7 | kind: ClusterRoleBinding 8 | metadata: 9 | annotations: 10 | {{ include "reloader-helm3.annotations" . | indent 4 }} 11 | labels: 12 | {{ include "reloader-labels.chart" . | indent 4 }} 13 | {{- if .Values.reloader.rbac.labels }} 14 | {{ toYaml .Values.reloader.rbac.labels | indent 4 }} 15 | {{- end }} 16 | {{- if .Values.reloader.matchLabels }} 17 | {{ toYaml .Values.reloader.matchLabels | indent 4 }} 18 | {{- end }} 19 | name: {{ template "reloader-fullname" . }}-role-binding 20 | namespace: {{ .Release.Namespace }} 21 | roleRef: 22 | apiGroup: rbac.authorization.k8s.io 23 | kind: ClusterRole 24 | name: {{ template "reloader-fullname" . }}-role 25 | subjects: 26 | - kind: ServiceAccount 27 | name: {{ template "reloader-serviceAccountName" . }} 28 | namespace: {{ .Release.Namespace }} 29 | {{- end }} 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/reloader/templates/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if and (not (.Values.reloader.watchGlobally)) (.Values.reloader.rbac.enabled) }} 2 | {{- if and .Values.reloader.legacy.rbac }} 3 | apiVersion: rbac.authorization.k8s.io/v1beta1 4 | {{ else }} 5 | apiVersion: rbac.authorization.k8s.io/v1 6 | {{- end }} 7 | kind: RoleBinding 8 | metadata: 9 | annotations: 10 | {{ include "reloader-helm3.annotations" . | indent 4 }} 11 | labels: 12 | {{ include "reloader-labels.chart" . | indent 4 }} 13 | {{- if .Values.reloader.rbac.labels }} 14 | {{ toYaml .Values.reloader.rbac.labels | indent 4 }} 15 | {{- end }} 16 | {{- if .Values.reloader.matchLabels }} 17 | {{ toYaml .Values.reloader.matchLabels | indent 4 }} 18 | {{- end }} 19 | name: {{ template "reloader-fullname" . }}-role-binding 20 | namespace: {{ .Release.Namespace }} 21 | roleRef: 22 | apiGroup: rbac.authorization.k8s.io 23 | kind: Role 24 | name: {{ template "reloader-fullname" . }}-role 25 | subjects: 26 | - kind: ServiceAccount 27 | name: {{ template "reloader-serviceAccountName" . }} 28 | namespace: {{ .Release.Namespace }} 29 | {{- end }} 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/reloader/templates/service.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.reloader.service }} 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | annotations: 6 | {{ include "reloader-helm3.annotations" . | indent 4 }} 7 | {{- if .Values.reloader.service.annotations }} 8 | {{ toYaml .Values.reloader.service.annotations | indent 4 }} 9 | {{- end }} 10 | labels: 11 | {{ include "reloader-labels.chart" . | indent 4 }} 12 | {{- if .Values.reloader.service.labels }} 13 | {{ toYaml .Values.reloader.service.labels | indent 4 }} 14 | {{- end }} 15 | name: {{ template "reloader-fullname" . }} 16 | spec: 17 | selector: 18 | {{- if .Values.reloader.deployment.labels }} 19 | {{ toYaml .Values.reloader.deployment.labels | indent 4 }} 20 | {{- end }} 21 | {{- if .Values.reloader.matchLabels }} 22 | {{ toYaml .Values.reloader.matchLabels | indent 4 }} 23 | {{- end }} 24 | ports: 25 | - port: {{ .Values.reloader.service.port }} 26 | name: http 27 | protocol: TCP 28 | targetPort: http 29 | {{- end }} 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/reloader/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.reloader.serviceAccount.create }} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | {{- if .Values.global.imagePullSecrets }} 5 | imagePullSecrets: {{ toYaml .Values.global.imagePullSecrets | nindent 2 }} 6 | {{- end }} 7 | metadata: 8 | annotations: 9 | {{ include "reloader-helm3.annotations" . | indent 4 }} 10 | labels: 11 | {{ include "reloader-labels.chart" . | indent 4 }} 12 | {{- if .Values.reloader.serviceAccount.labels }} 13 | {{ toYaml .Values.reloader.serviceAccount.labels | indent 4 }} 14 | {{- end }} 15 | {{- if .Values.reloader.matchLabels }} 16 | {{ toYaml .Values.reloader.matchLabels | indent 4 }} 17 | {{- end }} 18 | name: {{ template "reloader-serviceAccountName" . }} 19 | {{- end }} 20 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/reloader/templates/servicemonitor.yaml: -------------------------------------------------------------------------------- 1 | {{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.reloader.serviceMonitor.enabled ) }} 2 | apiVersion: monitoring.coreos.com/v1 3 | kind: ServiceMonitor 4 | metadata: 5 | labels: 6 | {{ include "reloader-labels.chart" . | indent 4 }} 7 | {{- if .Values.reloader.serviceMonitor.labels }} 8 | {{ toYaml .Values.reloader.serviceMonitor.labels | indent 4}} 9 | {{- end }} 10 | name: {{ template "reloader-fullname" . }} 11 | {{- if .Values.reloader.serviceMonitor.namespace }} 12 | namespace: {{ .Values.reloader.serviceMonitor.namespace }} 13 | {{- end }} 14 | spec: 15 | endpoints: 16 | - targetPort: http 17 | path: "/metrics" 18 | {{- if .Values.reloader.serviceMonitor.interval }} 19 | interval: {{ .Values.reloader.serviceMonitor.interval }} 20 | {{- end }} 21 | {{- if .Values.reloader.serviceMonitor.timeout }} 22 | scrapeTimeout: {{ .Values.reloader.serviceMonitor.timeout }} 23 | {{- end }} 24 | jobLabel: {{ template "reloader-fullname" . }} 25 | namespaceSelector: 26 | matchNames: 27 | - {{ .Release.Namespace }} 28 | selector: 29 | matchLabels: 30 | {{ include "reloader-labels.chart" . | nindent 6 }} 31 | {{- end }} 32 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/systems/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: systems 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject those 13 | # utilities and functions into the rendering 14 | # pipeline. Library charts do not define any templates 15 | # and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should 19 | # be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 7.0.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be incremented each time 26 | # you make changes to the application. Versions are 27 | # not expected to follow Semantic Versioning. 28 | # They should reflect the version the application is using. 29 | appVersion: 7.0.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/systems/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: systems 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: systems 8 | spec: 9 | ports: 10 | - port: 45104 11 | selector: 12 | app: systems 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/systems/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | systemsImageTag: "7.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/task/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: task 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject 13 | # those utilities and functions into the rendering 14 | # pipeline. Library charts do not define any templates 15 | # and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should 19 | # be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 6.0.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be incremented each time you 26 | # make changes to the application. Versions are not expected to 27 | # follow Semantic Versioning. They should reflect the version 28 | # the application is using. 29 | appVersion: 6.0.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/task/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: task 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: task 8 | spec: 9 | ports: 10 | - port: 45105 11 | selector: 12 | app: task 13 | 14 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/task/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | taskImageTag: "6.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/telemetry/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: telemetry 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject 13 | # those utilities and functions into the rendering 14 | # pipeline. Library charts do not define any templates 15 | # and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should be 19 | # incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 4.0.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be incremented each time you 26 | # make changes to the application. Versions are not expected to 27 | # follow Semantic Versioning. They should reflect the version 28 | # the application is using. 29 | appVersion: 4.0.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/telemetry/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: telemetry 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: telemetry 8 | spec: 9 | ports: 10 | - port: 45111 11 | selector: 12 | app: telemetry 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/telemetry/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | telemetryImageTag: "4.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/update/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: update 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # 8 | # Application charts are a collection of templates that 9 | # can be packaged into versioned archives to be deployed. 10 | # 11 | # Library charts provide useful utilities or functions for 12 | # the chart developer. They're included as 13 | # a dependency of application charts to inject those 14 | # utilities and functions into the rendering 15 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should be 19 | # incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 6.0.0 23 | 24 | # This is the version number of the application being deployed. 25 | # This version number should be incremented each time 26 | # you make changes to the application. Versions are not 27 | # expected to follow Semantic Versioning. They should reflect the 28 | # version the application is using. 29 | appVersion: 6.0.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/update/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: update 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: update 8 | spec: 9 | ports: 10 | - port: 45108 11 | selector: 12 | app: update 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/update/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | updateImageTag: "6.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/urplugin/urplugin-config.yaml: -------------------------------------------------------------------------------- 1 | urplugin: 2 | urPluginRootServiceUUID: 3 | username: admin 4 | password: sTfTyTZFvNj5zU5Tt0TfyDYU-ye3_ZqTMnMIj-LAeXaa8vCnBqq8Ga7zV6ZdfqQCdSAzmaO5AJxccD99UHLVlQ== 5 | odimUsername: admin 6 | odimPassword: 7 | logPath: /var/log/urplugin_logs 8 | logsOnConsole: false 9 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/urplugin/urplugin/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: urplugin 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as a 12 | # dependency of application charts to inject those utilities 13 | # and functions into the rendering pipeline. Library charts 14 | # do not define any templates and therefore cannot be deployed. 15 | type: application 16 | 17 | # This is the chart version. This version number should 18 | # be incremented each time you make changes 19 | # to the chart and its templates, including the app version. 20 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 21 | version: 3.4.0 22 | 23 | # This is the version number of the application being deployed. 24 | # This version number should be incremented each time 25 | # you make changes to the application. Versions are not expected to 26 | # follow Semantic Versioning. They should reflect the version 27 | # the application is using. 28 | appVersion: 3.4.0 29 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/urplugin/urplugin/templates/pv.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.urplugin.logsOnConsole }} 3 | kind: PersistentVolume 4 | apiVersion: v1 5 | metadata: 6 | name: urplugin-log 7 | namespace: {{ .Values.odimra.namespace }} 8 | labels: 9 | type: local 10 | spec: 11 | storageClassName: manual 12 | capacity: 13 | storage: 100Mi 14 | accessModes: 15 | - ReadWriteOnce 16 | claimRef: 17 | namespace: {{ .Values.odimra.namespace }} 18 | name: urplugin-log-claim 19 | hostPath: 20 | path: {{ .Values.urplugin.logPath }} 21 | {{- end}} 22 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/urplugin/urplugin/templates/pvc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if not .Values.urplugin.logsOnConsole }} 3 | kind: PersistentVolumeClaim 4 | apiVersion: v1 5 | metadata: 6 | name: urplugin-log-claim 7 | namespace: {{ .Values.odimra.namespace }} 8 | spec: 9 | storageClassName: manual 10 | accessModes: 11 | - ReadWriteOnce 12 | resources: 13 | requests: 14 | storage: 100Mi 15 | {{- end}} 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/urplugin/urplugin/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: urplugin 5 | namespace: {{ .Values.odimra.namespace }} 6 | labels: 7 | app: urplugin 8 | spec: 9 | ports: 10 | - port: 45007 11 | selector: 12 | app: urplugin 13 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/urplugin/urplugin/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | haDeploymentEnabled: 5 | urplugin: 6 | imageTag: "3.4" 7 | urPluginRootServiceUUID: 8 | username: 9 | password: 10 | host: urplugin 11 | odimUsername: 12 | odimPassword: 13 | sentinelMasterName: primaryset 14 | logPath: 15 | logsOnConsole: true 16 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper-ha/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: zookeeper-ha-3.8.1 3 | description: A Helm chart for zookeeper 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates 8 | # that can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject those 13 | # utilities and functions into the rendering 14 | # pipeline. Library charts do not define any templates 15 | # and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should 19 | # be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 0.3.0 23 | 24 | # This is the version number of the application being 25 | # deployed. This version number should be incremented each 26 | # time you make changes to the application. Versions are not 27 | # expected to follow Semantic Versioning. They 28 | # should reflect the version the application is using. 29 | appVersion: 1.16.0 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper-ha/templates/zookeeper-ha-service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: zookeeper 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: zookeeper 9 | deployment: odim-ra 10 | spec: 11 | type: ClusterIP 12 | clusterIP: None 13 | selector: 14 | app: zookeeper 15 | parentdeployment: odim-ra 16 | ports: 17 | - name: zookeeper 18 | port: 2181 19 | - name: zookeeper-leader 20 | port: 2888 21 | - name: zookeeper-follower 22 | port: 3888 23 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper-ha/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | zookeeperDirPath: 5 | zookeeperImageTag: "3.0" 6 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper-secret/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: zookeeper-secret 3 | description: A Helm chart for zookeeper secret 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that can 8 | # be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject those 13 | # utilities and functions into the rendering 14 | # pipeline. Library charts do not define any 15 | # templates and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number 19 | # should be incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 0.3.0 23 | 24 | 25 | # This is the version number of the application being deployed. This version number should be 26 | # incremented each time you make changes to the application. Versions are not expected to 27 | # follow Semantic Versioning. They should reflect the version the application is using. 28 | appVersion: 3.0.0 29 | 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper-secret/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: zookeeper-secret 6 | namespace: {{ .Values.odimra.namespace }} 7 | type: Opaque 8 | stringData: 9 | jkskey: {{ .Values.odimra.zookeeperJKSPassword }} 10 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper-secret/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | zookeeperJKSPassword: 4 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: zookeeper-3.8.1 3 | description: A Helm chart for zookeeper 4 | 5 | # A chart can be either an 'application' 6 | # or a 'library' chart. 7 | # Application charts are a collection of templates that 8 | # can be packaged into versioned archives to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions 11 | # for the chart developer. They're included as 12 | # a dependency of application charts to inject those 13 | # utilities and functions into the rendering 14 | # pipeline. Library charts do not define any 15 | # templates and therefore cannot be deployed. 16 | type: application 17 | 18 | # This is the chart version. This version number should be 19 | # incremented each time you make changes 20 | # to the chart and its templates, including the app version. 21 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 22 | version: 0.3.0 23 | 24 | 25 | # This is the version number of the application being deployed. This version number should be 26 | # incremented each time you make changes to the application. Versions are not expected to 27 | # follow Semantic Versioning. They should reflect the version the application is using. 28 | appVersion: 0.3.0 29 | 30 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper/templates/zookeeper-service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | name: zookeeper 6 | namespace: {{ .Values.odimra.namespace }} 7 | labels: 8 | app: zookeeper 9 | deployment: odim-ra 10 | spec: 11 | type: ClusterIP 12 | selector: 13 | app: zookeeper 14 | parentdeployment: odim-ra 15 | ports: 16 | - name: zookeeper 17 | port: 2281 18 | --- 19 | -------------------------------------------------------------------------------- /odim-controller/helmcharts/zookeeper/values.yaml: -------------------------------------------------------------------------------- 1 | odimra: 2 | namespace: 3 | groupID: 4 | zookeeperImageTag: "3.0" 5 | -------------------------------------------------------------------------------- /odim-controller/kubespray/kubespray-2.20.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/odim-controller/kubespray/kubespray-2.20.0.tar.gz -------------------------------------------------------------------------------- /odim-controller/odimra/ansible.cfg: -------------------------------------------------------------------------------- 1 | [ssh_connection] 2 | pipelining=True 3 | ssh_args = -o ControlMaster=auto -o ControlPersist=30m -o ConnectionAttempts=100 -o UserKnownHostsFile=/dev/null 4 | 5 | [defaults] 6 | force_valid_group_names = ignore 7 | host_key_checking=False 8 | gathering = smart 9 | fact_caching = jsonfile 10 | fact_caching_connection = /tmp 11 | fact_caching_timeout = 7200 12 | stdout_callback = default 13 | display_skipped_hosts = no 14 | library = ./library 15 | callback_whitelist = profile_tasks 16 | roles_path = roles:$VIRTUAL_ENV/usr/local/share/ansible/roles 17 | deprecation_warnings=False 18 | inventory_ignore_extensions = ~, .orig, .bak, .ini, .cfg, .retry, .pyc, .pyo, .creds, .gpg 19 | 20 | [inventory] 21 | ignore_patterns = artifacts, credentials 22 | -------------------------------------------------------------------------------- /odim-controller/odimra/deploy_plugin.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Deploy {{ release_name }} plugin 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - deploy-plugin 7 | -------------------------------------------------------------------------------- /odim-controller/odimra/install.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform pre-install steps required for ODIM-RA deployment 3 | hosts: kube_node 4 | 5 | roles: 6 | - odimra-copy-image 7 | - pre-install 8 | 9 | - name: Deploy ODIM-RA and Third Party services 10 | hosts: '{{ host }}' 11 | 12 | roles: 13 | - install 14 | -------------------------------------------------------------------------------- /odim-controller/odimra/k8_copy_image.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Installing docker and copying kubernetes images required for K8 deployment 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - k8-copy-image 7 | 8 | -------------------------------------------------------------------------------- /odim-controller/odimra/k8_delete_image.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Deleteing kubernetes images 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - k8-delete-image 7 | 8 | -------------------------------------------------------------------------------- /odim-controller/odimra/post_uninstall.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform post-uninstall steps to clean up ODIM-RA data 3 | hosts: '{{ host }}' 4 | vars: 5 | scenario: 'rm-node' 6 | roles: 7 | - plugin-delete-image 8 | - odimra-delete-image 9 | - post-uninstall 10 | -------------------------------------------------------------------------------- /odim-controller/odimra/pre_install.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform pre-install steps required for ODIM-RA deployment 3 | hosts: '{{ host }}' 4 | vars: 5 | scenario: 'add-node' 6 | roles: 7 | - odimra-copy-image 8 | - pre-install 9 | -------------------------------------------------------------------------------- /odim-controller/odimra/pre_upgrade.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: copying the docker files required upgrade 3 | hosts: kube_node 4 | 5 | roles: 6 | - pre-upgrade 7 | -------------------------------------------------------------------------------- /odim-controller/odimra/remove_plugin.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove {{ release_name }} plugin deployment 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - remove-plugin 7 | 8 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/configure-keepalived/templates/keepalived.conf.j2: -------------------------------------------------------------------------------- 1 | ! Configuration File for keepalived 2 | 3 | global_defs { 4 | router_id {{ item.routerID }} 5 | script_user root 6 | enable_script_security 7 | } 8 | 9 | vrrp_instance ODIM_VI { 10 | state MASTER 11 | interface {{ item.interfaceName }} 12 | virtual_router_id {{ item.virtualRouterID }} 13 | priority {{ item.priority }} 14 | advert_int 1 15 | authentication { 16 | auth_type PASS 17 | auth_pass odim-ra 18 | } 19 | virtual_ipaddress { 20 | {{ item.virtualIP }} 21 | } 22 | 23 | {% if item.dualStack == "True" %} 24 | virtual_ipaddress_excluded { 25 | {{ item.virtualIPv6 }}/64 26 | } 27 | {% endif %} 28 | notify /opt/keepalived/bin/action_script.sh 29 | } 30 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/configure-proxy/templates/api_proxy_server.conf.j2: -------------------------------------------------------------------------------- 1 | upstream api_server { 2 | {{ item.apiServerList }} 3 | } 4 | 5 | server { 6 | listen {{ item.selfNodeIP }}:{{ item.apiProxyPort }} ssl; 7 | listen {{ item.virtualIP }}:{{ item.apiProxyPort }} ssl; 8 | {% if item.dualStack == "True"%} 9 | listen [{{ item.selfNodeIPv6 }}]:{{ item.apiNodePort }} ssl; 10 | listen [{{ item.virtualIPv6 }}]:{{ item.apiNodePort }} ssl; 11 | {% endif %} 12 | 13 | server_name odimra.proxy.net; 14 | ssl_session_timeout 5m; 15 | ssl_prefer_server_ciphers on; 16 | ssl_protocols TLSv1.2 TLSv1.3; 17 | ssl_certificate /opt/nginx/certs/server.crt; 18 | ssl_certificate_key /opt/nginx/certs/server.key; 19 | ssl_trusted_certificate /opt/nginx/certs/rootCA.crt; 20 | 21 | location / { 22 | proxy_pass https://api_server; 23 | proxy_http_version 1.1; 24 | proxy_set_header X-Forwarded-For $remote_addr; 25 | proxy_pass_header Server; 26 | proxy_ssl_protocols TLSv1.2 TLSv1.3; 27 | proxy_ssl_certificate /opt/nginx/certs/server.crt; 28 | proxy_ssl_certificate_key /opt/nginx/certs/server.key; 29 | proxy_ssl_trusted_certificate /opt/nginx/certs/rootCA.crt; 30 | proxy_connect_timeout 300; 31 | proxy_send_timeout 300; 32 | proxy_read_timeout 300; 33 | send_timeout 300; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/configure-proxy/templates/nginx.conf.j2: -------------------------------------------------------------------------------- 1 | user {{ item.user }} {{ item.group }}; 2 | worker_processes auto; 3 | pid /run/nginx.pid; 4 | include /etc/nginx/modules-enabled/*.conf; 5 | 6 | events { 7 | worker_connections 768; 8 | } 9 | 10 | http { 11 | ## 12 | # Basic Settings 13 | ## 14 | 15 | sendfile on; 16 | tcp_nopush on; 17 | tcp_nodelay on; 18 | keepalive_timeout 65; 19 | types_hash_max_size 2048; 20 | 21 | include /etc/nginx/mime.types; 22 | default_type application/octet-stream; 23 | 24 | ## 25 | # SSL Settings 26 | ## 27 | 28 | ssl_protocols TLSv1.2 TLSv1.3; 29 | ssl_prefer_server_ciphers on; 30 | ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305; 31 | 32 | ## 33 | # Logging Settings 34 | ## 35 | 36 | access_log {{ item.logPath }}/access.log; 37 | error_log {{ item.logPath }}/error.log; 38 | 39 | ## 40 | # Gzip Settings 41 | ## 42 | 43 | gzip on; 44 | 45 | ## 46 | # Virtual Host Configs 47 | ## 48 | 49 | include /etc/nginx/conf.d/*.conf; 50 | include /etc/nginx/sites-enabled/*; 51 | include /opt/nginx/servers/*.conf; 52 | } 53 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/deploy-plugin/tasks/plugins.yaml: -------------------------------------------------------------------------------- 1 | - name: Check if "{{ release_name }}.sh" exists 2 | stat: 3 | path: "{{ helm_charts_path }}/{{ release_name }}/{{ release_name }}.sh" 4 | register: stat_result 5 | delegate_to: "{{ item }}" 6 | 7 | - name: Invoking {{ release_name }}.sh for install operation 8 | command: "/bin/bash {{ helm_charts_path }}/{{ release_name }}/{{ release_name }}.sh install" 9 | when: stat_result.stat.exists and stat_result.stat.isreg 10 | delegate_to: "{{ item }}" 11 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/k8-copy-image/files/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/odim-controller/odimra/roles/k8-copy-image/files/.gitignore -------------------------------------------------------------------------------- /odim-controller/odimra/roles/k8-delete-image/files/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/odim-controller/odimra/roles/k8-delete-image/files/.gitignore -------------------------------------------------------------------------------- /odim-controller/odimra/roles/k8-delete-image/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Include user defined configurations 3 | include_vars: "files/helm_config_values.yaml" 4 | 5 | - name: Get the current user 6 | local_action: command whoami 7 | become: false 8 | register: get_user 9 | 10 | - name: Set current_user fact 11 | set_fact: 12 | current_user: "{{ get_user.stdout }}" 13 | 14 | #- name: Delete Kubernetes Images 15 | #shell: "{{ docker_bin_path }} rmi $({{ docker_bin_path }} images '{{ item.key }}' -q | sort -u) -f" 16 | #loop: "{{ kubernetes_images | dict2items }}" 17 | # ignore_errors: "{{ ignore_err }}" 18 | 19 | - name: Delete Kubernetes Images 20 | shell: "{{ docker_bin_path }} -n=k8s.io image remove $({{ docker_bin_path }} -n=k8s.io image ls -q | grep -E {{ item.key }})" 21 | loop: "{{ kubernetes_images | dict2items }}" 22 | ignore_errors: "{{ ignore_err }}" 23 | 24 | 25 | - name: Delete Dangling Images 26 | shell: "{{ docker_bin_path }} rmi $({{ docker_bin_path }} images -f 'dangling=true' -q) || /bin/true" 27 | 28 | - name: Clean-up data in odim-controller directory 29 | file: 30 | path: "{{ odim_controller_path }}" 31 | state: absent 32 | ignore_errors: "{{ ignore_err }}" 33 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/odimra-copy-image/files/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/odim-controller/odimra/roles/odimra-copy-image/files/.gitignore -------------------------------------------------------------------------------- /odim-controller/odimra/roles/odimra-delete-image/files/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/odim-controller/odimra/roles/odimra-delete-image/files/.gitignore -------------------------------------------------------------------------------- /odim-controller/odimra/roles/plugin-delete-image/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Get the current user 4 | local_action: command whoami 5 | become: false 6 | register: get_user 7 | 8 | - name: Set current_user fact 9 | set_fact: 10 | current_user: "{{ get_user.stdout }}" 11 | 12 | - name: Include user defined configurations 13 | include_vars: "{{ helm_config_file }}" 14 | 15 | - name: Get list of plugins under plugin helm charts path 16 | find: 17 | paths: "{{ odimPluginPath }}" 18 | file_type: "directory" 19 | register: plugin_packages 20 | delegate_to: localhost 21 | 22 | #- name: Removing plugin docker image under the helm charts path 23 | #shell: "{{ docker_bin_path }} rmi $({{ docker_bin_path }} images {{ item.path.split('/')[-1] }} -q | sort -u) -f" 24 | #loop: "{{ plugin_packages.files }}" 25 | #ignore_errors: "{{ ignore_err }}" 26 | 27 | - name: Removing plugin docker image under the helm charts path 28 | shell: "{{ docker_bin_path }} -n=k8s.io image remove $({{ docker_bin_path }} -n=k8s.io image ls -q | grep -E {{ item.path.split('/')[-1] }} )" 29 | loop: "{{ plugin_packages.files }}" 30 | ignore_errors: "{{ ignore_err }}" 31 | 32 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/post-uninstall/files/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/odim-controller/odimra/roles/post-uninstall/files/.gitignore -------------------------------------------------------------------------------- /odim-controller/odimra/roles/post-uninstall/tasks/plugins.yaml: -------------------------------------------------------------------------------- 1 | - set_fact: 2 | plugin_name: "{{ item.path.split('/')[-1] }}" 3 | 4 | - name: Check if {{ plugin_name }}.sh exists 5 | stat: 6 | path: "{{ helm_charts_path }}/{{ plugin_name }}/{{ plugin_name }}.sh" 7 | register: stat_result 8 | ignore_errors: "{{ ignore_err }}" 9 | 10 | - name: Invoking {{ plugin_name }}.sh for uninstall operation 11 | command: "/bin/bash {{ helm_charts_path }}/{{ plugin_name }}/{{ plugin_name }}.sh uninstall" 12 | when: stat_result.stat.exists and stat_result.stat.isreg 13 | ignore_errors: "{{ ignore_err }}" 14 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/pre-install/files/docker_images/.gitignore: -------------------------------------------------------------------------------- 1 | *.tar 2 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/pre-install/files/helmcharts/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/pre-install/tasks/plugins.yaml: -------------------------------------------------------------------------------- 1 | - name: Check if {{ item.path.split('/')[-1] }}.sh exists 2 | stat: 3 | path: "{{ helm_charts_path }}/{{ item.path.split('/')[-1] }}/{{ item.path.split('/')[-1] }}.sh" 4 | register: stat_result 5 | 6 | - name: Invoking {{ item.path.split('/')[-1] }}.sh for install operation 7 | command: "/bin/bash {{ helm_charts_path }}/{{ item.path.split('/')[-1] }}/{{ item.path.split('/')[-1] }}.sh install" 8 | when: stat_result.stat.exists and stat_result.stat.isreg 9 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/pre-upgrade/files/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | *.tar 3 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/remove-keepalived/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Stop keepalived service 3 | systemd: 4 | name: keepalived 5 | state: stopped 6 | ignore_errors: true 7 | 8 | - name: Remove keepalived and dependent packages 9 | apt: 10 | pkg: 11 | - keepalived 12 | force_apt_get: yes 13 | autoremove: yes 14 | purge: yes 15 | state: absent 16 | 17 | - name: Clean up keepalived data 18 | file: 19 | path: "{{ item }}" 20 | state: absent 21 | loop: 22 | - /opt/keepalived 23 | - /etc/keepalived 24 | 25 | - name: reload systemd daemon 26 | systemd: 27 | daemon_reload: yes 28 | 29 | - name: Remove unused packages from the cache 30 | apt: 31 | autoclean: yes 32 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/remove-plugin/tasks/plugins.yaml: -------------------------------------------------------------------------------- 1 | - name: Check if "{{ release_name }}.sh" exists 2 | stat: 3 | path: "{{ helm_charts_path }}/{{ release_name }}/{{ release_name }}.sh" 4 | register: stat_result 5 | delegate_to: "{{ item }}" 6 | 7 | - name: Invoking {{ release_name }}.sh for uninstall operation 8 | command: "/bin/bash {{ helm_charts_path }}/{{ release_name }}/{{ release_name }}.sh uninstall" 9 | when: stat_result.stat.exists and stat_result.stat.isreg 10 | delegate_to: "{{ item }}" 11 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/remove-proxy/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Stop nginx service 3 | systemd: 4 | name: nginx 5 | state: stopped 6 | ignore_errors: true 7 | 8 | - name: Remove nginx and dependent packages 9 | apt: 10 | pkg: 11 | - nginx 12 | - nginx-common 13 | - nginx-core 14 | force_apt_get: yes 15 | autoremove: yes 16 | purge: yes 17 | state: absent 18 | 19 | - name: Clean up nginx data 20 | file: 21 | path: "{{ item }}" 22 | state: absent 23 | loop: 24 | - /var/www/html 25 | - /opt/nginx 26 | - "{{ odimra.nginxLogPath }}" 27 | 28 | - name: reload systemd daemon 29 | systemd: 30 | daemon_reload: yes 31 | 32 | - name: Remove unused packages from the cache 33 | apt: 34 | autoclean: yes 35 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/rollback/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Rollback {{ release }} deployment to revision {{ revision }} 3 | command: "{{ helm_bin_path }} rollback {{ release }} {{ revision }} -n {{ helm_name_space }} --cleanup-on-fail --recreate-pods" 4 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/scale-plugin/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get the current user 3 | local_action: command whoami 4 | become: false 5 | register: get_user 6 | 7 | - name: Set current_user fact 8 | set_fact: 9 | current_user: "{{ get_user.stdout }}" 10 | 11 | - name: Copying helm config file 12 | copy: 13 | src: "{{ helm_config_file }}" 14 | dest: "{{ values_file_path }}" 15 | owner: "{{ current_user }}" 16 | group: "{{ current_user }}" 17 | mode: 0640 18 | 19 | - name: Include user defined configurations 20 | include_vars: "{{ helm_config_file }}" 21 | 22 | - name: Get release name of {{ helm_chart_name }} plugin 23 | shell: "{{ helm_bin_path }} list -q -n {{ helm_name_space }} | grep {{ helm_chart_name }}" 24 | register: plugin_name 25 | 26 | - name: Set release_name fact 27 | set_fact: 28 | release_name: "{{ plugin_name.stdout }}" 29 | 30 | - name: Verify the count of releases in query result 31 | fail: 32 | msg: "{{ helm_chart_name }} plugin has multiple deployment [{{ release_name }}], not expected for plugin" 33 | when: " '\n' in release_name " 34 | 35 | - name: Scaling {{ release_name }} plugin deployment 36 | shell: "/usr/local/bin/kubectl scale -n {{ helm_name_space }} deployment {{ release_name }} --replicas={{ replicas }}" 37 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/scale-svc/tasks/main.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get the current user 3 | local_action: command whoami 4 | become: false 5 | register: get_user 6 | 7 | - name: Set current_user fact 8 | set_fact: 9 | current_user: "{{ get_user.stdout }}" 10 | 11 | - name: Copying helm config file 12 | copy: 13 | src: "{{ helm_config_file }}" 14 | dest: "{{ values_file_path }}" 15 | owner: "{{ current_user }}" 16 | group: "{{ current_user }}" 17 | mode: 0640 18 | 19 | - name: Get release name of {{ helm_chart_name }} svc 20 | shell: "{{ helm_bin_path }} list -q -n {{ helm_name_space }} | grep {{ helm_chart_name }}" 21 | register: svc_name 22 | 23 | - name: Set release_name fact 24 | set_fact: 25 | release_name: "{{ svc_name.stdout }}" 26 | 27 | - name: Scaling svc {{helm_chart_name}} deployment 28 | shell: "/usr/local/bin/kubectl scale -n {{ helm_name_space }} deployment {{ release_name }} --replicas={{ replicas }}" 29 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/upgrade-config/files/helmcharts/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /odim-controller/odimra/roles/upgrade-thirdparty/files/helmcharts/.gitignore: -------------------------------------------------------------------------------- 1 | *.tgz 2 | -------------------------------------------------------------------------------- /odim-controller/odimra/rollback.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform rollback of {{ release }} deployment to revision {{ revision }} 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - rollback 7 | -------------------------------------------------------------------------------- /odim-controller/odimra/scale_plugin.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Scale plugin deployment to desired replica count 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - scale-plugin 7 | -------------------------------------------------------------------------------- /odim-controller/odimra/scale_svc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Scale svc deployment to desired replica count 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - scale-svc -------------------------------------------------------------------------------- /odim-controller/odimra/uninstall.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Remove ODIM-RA and Third Party services 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - uninstall 7 | 8 | - name: Perform post-uninstall steps to clean up ODIM-RA data 9 | hosts: kube_node 10 | 11 | roles: 12 | - plugin-delete-image 13 | - odimra-delete-image 14 | - post-uninstall 15 | -------------------------------------------------------------------------------- /odim-controller/odimra/upgrade-config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform upgrade operation required for ODIM-RA deployment 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - upgrade-config 7 | 8 | -------------------------------------------------------------------------------- /odim-controller/odimra/upgrade_thirdparty.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform upgrade operation thrid party required for ODIM-RA deployment 3 | hosts: '{{ host }}' 4 | 5 | roles: 6 | - upgrade-thirdparty 7 | 8 | -------------------------------------------------------------------------------- /odim-controller/scripts/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/ODIM-Project/ODIM/odim-controller/scripts 2 | 3 | go 1.19 4 | 5 | require golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b 6 | -------------------------------------------------------------------------------- /odim-controller/scripts/go.sum: -------------------------------------------------------------------------------- 1 | golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b h1:Qwe1rC8PSniVfAFPFJeyUkB+zcysC3RgJBAGk7eqBEU= 2 | golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 3 | -------------------------------------------------------------------------------- /plugin-dell/README.md: -------------------------------------------------------------------------------- 1 | # Dell-plugin 2 | 3 | Dell plugin communicates with Redfish compliant BMC. 4 | This is an independent module that provides two primary communication channels: 5 | - An API mechanism that is used to exchange control data 6 | - An Event Message Bus (EMB) that is used to exchange event and notifications. 7 | 8 | 9 | This guide provides a set of guidelines for developing API and EMB functions to work within the Resource Aggregator for ODIM™ environment. It ensures consistency around API semantics for all plugins. 10 | 11 | 12 | 13 | ## Dell plugin deployment instructions 14 | 15 | For deploying the Dell plugin and adding the plugin to the Resource Aggregator for ODIM framework, see *Deploying the Dell plugin* section in *[Resource Aggregator for Open Distributed Infrastructure Management™ Readme](https://github.com/ODIM-Project/ODIM/blob/main/README.md)*. 16 | 17 | -------------------------------------------------------------------------------- /plugin-dell/dpmodel/Config.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpmodel ... 16 | package dpmodel 17 | 18 | // PluginPrivateKey will contains base64encoded private key of plugin 19 | // this key will be used to decrypt the data. 20 | var PluginPrivateKey []byte 21 | -------------------------------------------------------------------------------- /plugin-dell/dpmodel/ConfigAuth.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpmodel ... 16 | package dpmodel 17 | 18 | //PrivateKey struct is used to define the private key used to decrypt the resouece passwords 19 | type PrivateKey struct { 20 | PrivateKey string 21 | } 22 | -------------------------------------------------------------------------------- /plugin-dell/dpmodel/Events.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpmodel ... 16 | package dpmodel 17 | 18 | // Event stores Published Event request and IP of source 19 | type Event struct { 20 | IP string 21 | Request []byte 22 | } 23 | -------------------------------------------------------------------------------- /plugin-dell/dpmodel/Reset.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpmodel ... 16 | package dpmodel 17 | 18 | // ResetPostRequest stores the reset type 19 | type ResetPostRequest struct { 20 | ResetType string `json:"ResetType"` 21 | } 22 | -------------------------------------------------------------------------------- /plugin-dell/dpmodel/users.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpmodel ... 16 | package dpmodel 17 | 18 | //Users struct definition 19 | type Users struct { 20 | Username string `json:"Username"` 21 | Password string `json:"Password"` 22 | } 23 | -------------------------------------------------------------------------------- /plugin-dell/dpresponse/authResponse.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpresponse ... 16 | package dpresponse 17 | 18 | //Device struct definition 19 | type Device struct { 20 | ServerIP string `json:"ServerIP"` 21 | Username string `json:"Username"` 22 | DeviceUUID string `json:"device_UUID"` 23 | } 24 | -------------------------------------------------------------------------------- /plugin-dell/dpresponse/loginResponse.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package dpresponse ... 16 | package dpresponse 17 | 18 | //Login struct definition 19 | type Login struct { 20 | Token string `json:"Token"` 21 | } 22 | 23 | // PluginResponse struct definition 24 | type PluginResponse struct { 25 | PublicKey []byte `json:"publicKey"` 26 | Token string `json:"token"` 27 | } 28 | 29 | var ( 30 | // ServerToken is the token generated by odimra 31 | ServerToken string 32 | // PluginToken is the token generated by Plugin 33 | PluginToken string 34 | ) 35 | -------------------------------------------------------------------------------- /plugin-lenovo/README.md: -------------------------------------------------------------------------------- 1 | # Lenovo-plugin 2 | 3 | Lenovo plugin communicates with Redfish compliant BMC. 4 | This is an independent module that provides two primary communication channels: 5 | 6 | - An API mechanism that is used to exchange control data 7 | - An Event Message Bus (EMB) that is used to exchange event and notifications. 8 | 9 | 10 | This guide provides a set of guidelines for developing API and EMB functions to work within the Resource Aggregator for ODIM™ environment. It ensures consistency around API semantics for all plugins. 11 | 12 | 13 | 14 | ## Lenovo plugin deployment instructions 15 | 16 | For deploying the Lenovo plugin and adding the plugin to the Resource Aggregator for ODIM framework, see *Deploying the Lenovo plugin* section in *[Resource Aggregator for Open Distributed Infrastructure Management™ Readme](https://github.com/ODIM-Project/ODIM/blob/main/README.md)*. 17 | 18 | -------------------------------------------------------------------------------- /plugin-lenovo/lpmodel/Config.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpmodel ... 16 | package lpmodel 17 | 18 | // PluginPrivateKey will contains base64encoded private key of plugin 19 | // this key will be used to decrypt the data. 20 | var PluginPrivateKey []byte 21 | -------------------------------------------------------------------------------- /plugin-lenovo/lpmodel/ConfigAuth.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpmodel ... 16 | package lpmodel 17 | 18 | //PrivateKey struct is used to define the private key used to decrypt the resouece passwords 19 | type PrivateKey struct { 20 | PrivateKey string 21 | } 22 | -------------------------------------------------------------------------------- /plugin-lenovo/lpmodel/Reset.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpmodel ... 16 | package lpmodel 17 | 18 | // ResetPostRequest stores the reset type 19 | type ResetPostRequest struct { 20 | ResetType string `json:"ResetType"` 21 | } 22 | -------------------------------------------------------------------------------- /plugin-lenovo/lpmodel/managers.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpmodel ... 16 | package lpmodel 17 | 18 | // VirtualMediaEject struct is used for device request payload 19 | type VirtualMediaEject struct { 20 | Image string `json:"Image"` 21 | Inserted bool `json:"Inserted"` 22 | } 23 | -------------------------------------------------------------------------------- /plugin-lenovo/lpmodel/users.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpmodel ... 16 | package lpmodel 17 | 18 | //Users struct definition 19 | type Users struct { 20 | Username string `json:"Username"` 21 | Password string `json:"Password"` 22 | } 23 | -------------------------------------------------------------------------------- /plugin-lenovo/lpresponse/authResponse.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpresponse ... 16 | package lpresponse 17 | 18 | //Device struct definition 19 | type Device struct { 20 | ServerIP string `json:"ServerIP"` 21 | Username string `json:"Username"` 22 | DeviceUUID string `json:"device_UUID"` 23 | } 24 | -------------------------------------------------------------------------------- /plugin-lenovo/lpresponse/loginResponse.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package lpresponse ... 16 | package lpresponse 17 | 18 | //Login struct definition 19 | type Login struct { 20 | Token string `json:"Token"` 21 | } 22 | 23 | // PluginResponse struct definition 24 | type PluginResponse struct { 25 | PublicKey []byte `json:"publicKey"` 26 | Token string `json:"token"` 27 | } 28 | 29 | var ( 30 | // ServerToken is the token generated by odimra 31 | ServerToken string 32 | // PluginToken is the token generated by Plugin 33 | PluginToken string 34 | ) 35 | -------------------------------------------------------------------------------- /plugin-redfish/rfpmodel/Config.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package rfpmodel ... 16 | package rfpmodel 17 | 18 | // PluginPrivateKey will contains base64encoded private key of plugin 19 | // this key will be used to decrypt the data. 20 | var PluginPrivateKey []byte 21 | 22 | // MetricPropertyData is map to store metric property 23 | var MetricPropertyData = make(map[string]string) 24 | -------------------------------------------------------------------------------- /plugin-redfish/rfpmodel/ConfigAuth.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package rfpmodel ... 16 | package rfpmodel 17 | 18 | //PrivateKey struct is used to define the private key used to decrypt the resouece passwords 19 | type PrivateKey struct { 20 | PrivateKey string 21 | } 22 | -------------------------------------------------------------------------------- /plugin-redfish/rfpmodel/Reset.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package rfpmodel ... 16 | package rfpmodel 17 | 18 | // ResetPostRequest stores the reset type 19 | type ResetPostRequest struct { 20 | ResetType string `json:"ResetType"` 21 | } 22 | -------------------------------------------------------------------------------- /plugin-redfish/rfpmodel/users.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package rfpmodel ... 16 | package rfpmodel 17 | 18 | //Users struct definition 19 | type Users struct { 20 | Username string `json:"Username"` 21 | Password string `json:"Password"` 22 | } 23 | -------------------------------------------------------------------------------- /plugin-redfish/rfpresponse/authResponse.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package rfpresponse ... 16 | package rfpresponse 17 | 18 | //Device struct definition 19 | type Device struct { 20 | ServerIP string `json:"ServerIP"` 21 | Username string `json:"Username"` 22 | DeviceUUID string `json:"device_UUID"` 23 | } 24 | -------------------------------------------------------------------------------- /plugin-redfish/rfpresponse/loginResponse.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package rfpresponse ... 16 | package rfpresponse 17 | 18 | //Login struct definition 19 | type Login struct { 20 | Token string `json:"Token"` 21 | } 22 | 23 | // PluginResponse struct definition 24 | type PluginResponse struct { 25 | PublicKey []byte `json:"publicKey"` 26 | Token string `json:"token"` 27 | } 28 | 29 | var ( 30 | // ServerToken is the token generated by odimra 31 | ServerToken string 32 | // PluginToken is the token generated by Plugin 33 | PluginToken string 34 | ) 35 | -------------------------------------------------------------------------------- /plugin-unmanaged-racks/redfish/links.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Intel Corporation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package redfish 18 | 19 | // Link structs represents entity of Redfish link 20 | type Link struct { 21 | Oid string `json:"@odata.id"` 22 | } 23 | -------------------------------------------------------------------------------- /plugin-unmanaged-racks/redfish/manager.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Intel Corporation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package redfish 18 | 19 | // Manager represents entity of Redfish manager 20 | type Manager struct { 21 | OdataContext string `json:"@odata.context"` 22 | Etag string `json:"@odata.etag,omitempty"` 23 | OdataID string `json:"@odata.id"` 24 | OdataType string `json:"@odata.type"` 25 | Name string `json:"Name"` 26 | ManagerType string `json:"ManagerType"` 27 | ID string `json:"Id"` 28 | UUID string `json:"UUID"` 29 | FirmwareVersion string `json:"FirmwareVersion"` 30 | Status *Status `json:"Status,omitempty"` 31 | } 32 | -------------------------------------------------------------------------------- /plugin-unmanaged-racks/rest/get_managers_handler_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Intel Corporation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package rest 18 | 19 | import ( 20 | "net/http" 21 | "testing" 22 | 23 | "github.com/kataras/iris/v12/httptest" 24 | ) 25 | 26 | func Test_get_manager_collection(t *testing.T) { 27 | testApp, _ := createTestApplication() 28 | httptest.New(t, testApp). 29 | GET("/ODIM/v1/Managers"). 30 | WithBasicAuth("admin", "Od!m12$4"). 31 | Expect(). 32 | Status(http.StatusOK). 33 | ContentType("application/json", "UTF-8"). 34 | JSON().Object(). 35 | ValueEqual("Members@odata.count", 1). 36 | Path("$.Members").Array().Length().Equal(1) 37 | } 38 | -------------------------------------------------------------------------------- /plugin-unmanaged-racks/rest/post_startup_handler.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Intel Corporation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package rest 18 | 19 | import ( 20 | "net/http" 21 | 22 | "github.com/ODIM-Project/ODIM/plugin-unmanaged-racks/config" 23 | "github.com/ODIM-Project/ODIM/plugin-unmanaged-racks/redfish" 24 | "github.com/kataras/iris/v12" 25 | "github.com/kataras/iris/v12/context" 26 | ) 27 | 28 | func newStartupHandler(c *config.PluginConfig, httpClient *redfish.HTTPClient) context.Handler { 29 | return (&startup{}).handle 30 | } 31 | 32 | type startup struct{} 33 | 34 | func (s *startup) handle(c iris.Context) { 35 | c.StatusCode(http.StatusOK) 36 | } 37 | -------------------------------------------------------------------------------- /plugin-unmanaged-racks/utils/strings.go: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 Intel Corporation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package utils 18 | 19 | // Collection is alias for array of strings([]string) 20 | type Collection []string 21 | 22 | // Contains checks whether requested string `v` is contained in collection `c` 23 | func (c Collection) Contains(v string) bool { 24 | for _, e := range c { 25 | if e == v { 26 | return true 27 | } 28 | } 29 | 30 | return false 31 | } 32 | -------------------------------------------------------------------------------- /svc-account-session/README.md: -------------------------------------------------------------------------------- 1 | # Sessions and Accounts Services 2 | 3 | For information on the supported `SessionService` APIs, see *[Sessions](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#sessions)*. 4 | 5 | For information on the supported `AccountService` APIs, see *[User accounts](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#user-accounts)* and *[User roles and privileges](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#user-roles-and-privileges)*. -------------------------------------------------------------------------------- /svc-account-session/asresponse/privilege.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package asresponse ... 16 | package asresponse 17 | 18 | import ( 19 | "github.com/ODIM-Project/ODIM/lib-utilities/response" 20 | ) 21 | 22 | // Privileges strcut definition used to build response 23 | type Privileges struct { 24 | response.Response 25 | PrivilegesUsed []string `json:"PrivilegesUsed"` 26 | } 27 | -------------------------------------------------------------------------------- /svc-account-session/asresponse/role.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package asresponse ... 16 | package asresponse 17 | 18 | import ( 19 | "github.com/ODIM-Project/ODIM/lib-utilities/response" 20 | ) 21 | 22 | // UserRole defines the response given back to the user regarding roles 23 | type UserRole struct { 24 | response.Response 25 | IsPredefined bool `json:"IsPredefined"` 26 | AssignedPrivileges []string `json:"AssignedPrivileges"` 27 | OEMPrivileges []string `json:"OemPrivileges,omitempty"` 28 | } 29 | -------------------------------------------------------------------------------- /svc-aggregation/README.md: -------------------------------------------------------------------------------- 1 | # Aggregation Service 2 | 3 | For information on the supported `AggregationService` APIs, see *[Resource aggregation and management](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#resource-aggregation-and-management)*. 4 | -------------------------------------------------------------------------------- /svc-aggregation/agresponse/list.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | package agresponse 16 | 17 | import ( 18 | "github.com/ODIM-Project/ODIM/lib-utilities/response" 19 | ) 20 | 21 | // ListMember define the links for each account present in odimra 22 | type ListMember struct { 23 | OdataID string `json:"@odata.id"` 24 | } 25 | 26 | // List defines the collection of resources like accounts, sessions, roles etc in svc-aggregation 27 | type List struct { 28 | response.Response 29 | MembersCount int `json:"Members@odata.count"` 30 | Members []ListMember `json:"Members"` 31 | } 32 | -------------------------------------------------------------------------------- /svc-api/README.md: -------------------------------------------------------------------------------- 1 | # api 2 | REST entry point, hosting Redfish compliant model and schemas, and conducting validation of payloads in traffic going through it. 3 | 4 | 5 | -------------------------------------------------------------------------------- /svc-api/apicommon/common.go: -------------------------------------------------------------------------------- 1 | package apicommon 2 | 3 | import ( 4 | "github.com/ODIM-Project/ODIM/lib-utilities/common" 5 | "github.com/ODIM-Project/ODIM/lib-utilities/config" 6 | l "github.com/ODIM-Project/ODIM/lib-utilities/logs" 7 | ) 8 | 9 | var ( 10 | // ConfigFilePath holds the value of odim config file path 11 | ConfigFilePath string 12 | ) 13 | 14 | // TrackConfigFileChanges monitors the config changes using fsnotfiy 15 | func TrackConfigFileChanges(errChan chan error) { 16 | eventChan := make(chan interface{}) 17 | format := config.Data.LogFormat 18 | go common.TrackConfigFileChanges(ConfigFilePath, eventChan, errChan) 19 | for { 20 | select { 21 | case info := <-eventChan: 22 | l.Log.Info(info) // new data arrives through eventChan channel 23 | if l.Log.Level != config.Data.LogLevel { 24 | l.Log.Info("Log level is updated, new log level is ", config.Data.LogLevel) 25 | l.Log.Logger.SetLevel(config.Data.LogLevel) 26 | } 27 | if format != config.Data.LogFormat { 28 | l.SetFormatter(config.Data.LogFormat) 29 | format = config.Data.LogFormat 30 | l.Log.Info("Log format is updated, new log format is ", config.Data.LogFormat) 31 | } 32 | case err := <-errChan: 33 | l.Log.Error(err) 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /svc-api/messages/sessions.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package messages ... 16 | package messages 17 | 18 | // SessionCreateRequest ... 19 | type SessionCreateRequest struct { 20 | UserName string `json:"UserName"` 21 | Password string `json:"Password"` 22 | } 23 | 24 | // SessionCreateResponse ... 25 | type SessionCreateResponse struct { 26 | StatusCode int 27 | Message string 28 | SessionID string 29 | SessionToken string 30 | Header map[string]string 31 | } 32 | 33 | // SessionResponse ... 34 | type SessionResponse struct { 35 | StatusCode int 36 | Message string 37 | Header map[string]string 38 | Body string 39 | } 40 | -------------------------------------------------------------------------------- /svc-api/models/odata.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package models ... 16 | package models 17 | 18 | // Odata struct definition 19 | type Odata struct { 20 | RedfishCopyright string `json:"@Redfish.Copyright"` 21 | OdataContext string `json:"@odata.context"` 22 | Value []*Value `json:"value"` 23 | } 24 | 25 | // Value struct definition 26 | type Value struct { 27 | Name string `json:"name"` 28 | Kind string `json:"kind"` 29 | URL string `json:"url"` 30 | } 31 | -------------------------------------------------------------------------------- /svc-api/models/version.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package models ... 16 | package models 17 | 18 | // Version struct definition 19 | type Version struct { 20 | V1 string `json:"v1"` 21 | } 22 | -------------------------------------------------------------------------------- /svc-composition-service/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/config/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/config/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/db/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/db/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/log/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/log/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/proto/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/proto/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/proto/auth/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/proto/auth/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/proto/compositionservice/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/proto/compositionservice/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/rest/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/rest/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/rest/pool_test.py: -------------------------------------------------------------------------------- 1 | #(C) Copyright [2022] American Megatrends International LLC 2 | # 3 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | #not use this file except in compliance with the License. You may obtain 5 | #a copy of the License at 6 | # 7 | # http:#www.apache.org/licenses/LICENSE-2.0 8 | # 9 | #Unless required by applicable law or agreed to in writing, software 10 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | #License for the specific language governing permissions and limitations 13 | # under the License. 14 | 15 | import unittest 16 | 17 | from db.persistant import RedisClient 18 | import logging 19 | 20 | 21 | class TestResourcePool(unittest.TestCase): 22 | 23 | def test_update_free_pool(self): 24 | 25 | self.redis = RedisClient() 26 | 27 | self.redis.sadd( 28 | "FreePool", "/redfish/v1/CompositionService/ResourceBlocks/7cf65cda-a143-11ec-a8a0-be78894f3ea6") 29 | 30 | def test_update_active_pool(self): 31 | 32 | self.redis = RedisClient() 33 | 34 | 35 | self.redis.sadd( 36 | "ActivePool", "/redfish/v1/CompositionService/ResourceBlocks/7cf65cda-a143-11ec-a8a0-be78894f3ea6") 37 | -------------------------------------------------------------------------------- /svc-composition-service/app/rest/resource_blocks_test.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | #(C) Copyright [2022] American Megatrends International LLC 3 | # 4 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | #not use this file except in compliance with the License. You may obtain 6 | #a copy of the License at 7 | # 8 | # http:#www.apache.org/licenses/LICENSE-2.0 9 | # 10 | #Unless required by applicable law or agreed to in writing, software 11 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | #License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | import json 17 | 18 | from db.persistant import RedisClient 19 | 20 | 21 | class TestResourcePool(unittest.TestCase): 22 | 23 | def test_update_resource_block(self): 24 | 25 | self.redis = RedisClient() 26 | 27 | block_uri = "/redfish/v1/CompositionService/ResourceBlocks/7cf65cda-a143-11ec-a8a0-be78894f3ea6" 28 | 29 | request_body = { 30 | "@odata.id": block_uri 31 | } 32 | 33 | self.redis.set("ResourceBlocks:{url}".format( 34 | url=block_uri), str(json.dumps(request_body))) 35 | -------------------------------------------------------------------------------- /svc-composition-service/app/rest/resource_zones_test.py: -------------------------------------------------------------------------------- 1 | #(C) Copyright [2022] American Megatrends International LLC 2 | # 3 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | #not use this file except in compliance with the License. You may obtain 5 | #a copy of the License at 6 | # 7 | # http:#www.apache.org/licenses/LICENSE-2.0 8 | # 9 | #Unless required by applicable law or agreed to in writing, software 10 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | #License for the specific language governing permissions and limitations 13 | # under the License. 14 | 15 | import unittest 16 | import json 17 | 18 | from db.persistant import RedisClient 19 | 20 | 21 | class TestResourcePool(unittest.TestCase): 22 | 23 | def test_update_resource_block(self): 24 | 25 | self.redis = RedisClient() 26 | 27 | zone_uri = "/redfish/v1/CompositionService/ResourceZones/d1bf2f54-6c8b-11ec-b071-ce46db785eee" 28 | 29 | request_body = { 30 | "@odata.id": zone_uri 31 | } 32 | 33 | self.redis.set("ResourceZones:{url}".format( 34 | url=zone_uri), str(json.dumps(request_body))) 35 | -------------------------------------------------------------------------------- /svc-composition-service/app/rpc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/rpc/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/app/utilities/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ODIM-Project/ODIM/81c02da794c25446817e363da87956d18b0c28dd/svc-composition-service/app/utilities/__init__.py -------------------------------------------------------------------------------- /svc-composition-service/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | #(C) Copyright [2022] American Megatrends International LLC 3 | # 4 | #Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | #not use this file except in compliance with the License. You may obtain 6 | #a copy of the License at 7 | # 8 | # http:#www.apache.org/licenses/LICENSE-2.0 9 | # 10 | #Unless required by applicable law or agreed to in writing, software 11 | #distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | #WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | #License for the specific language governing permissions and limitations 14 | # under the License. 15 | 16 | # Install pre requisite tools 17 | 18 | rm -rf ./env 19 | python3 -m venv env 20 | source env/bin/activate 21 | 22 | cd env/bin 23 | ./python3 -m pip install --upgrade pip 24 | 25 | ./python3 pip3 install --no-cache-dir -r ../../requirements.txt 26 | 27 | cd ../../ 28 | 29 | cd app 30 | # Pre-build configuration 31 | 32 | rm -rf ./dist 33 | rm -rf ./build 34 | rm -f ./svc-composition-service.spec 35 | 36 | ../env/bin/python3 ../env/bin/pyinstaller --onefile --name svc-composition-service main.py 37 | cd .. 38 | -------------------------------------------------------------------------------- /svc-composition-service/requirements.txt: -------------------------------------------------------------------------------- 1 | requests==2.22.0 2 | six==1.16.0 3 | pyinstaller==4.1 4 | redis==3.3.8 5 | setuptools==41.4.0 6 | grpcio==1.42.0 7 | grpcio-tools==1.42.0 8 | protobuf==3.19.1 9 | tenacity==8.0.1 10 | etcd3==0.12.0 11 | pycryptodome==3.9.4 12 | -------------------------------------------------------------------------------- /svc-events/README.md: -------------------------------------------------------------------------------- 1 | # Event Service 2 | 3 | For information on the supported `EventService` APIs, see *[Events](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#events)*. -------------------------------------------------------------------------------- /svc-events/evresponse/rpc.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package evresponse have error and response struct 16 | // and also have functionality to create error response 17 | package evresponse 18 | 19 | // EventResponse is response struct 20 | type EventResponse struct { 21 | StatusCode int `json:"StatusCode"` 22 | Location string `json:"Location"` 23 | Response interface{} `json:"Response"` 24 | } 25 | -------------------------------------------------------------------------------- /svc-fabrics/README.md: -------------------------------------------------------------------------------- 1 | # Fabrics Service 2 | 3 | For information on the supported `FabcricsService` APIs, see *[Host to fabric networking](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#host-to-fabric-networking)*. -------------------------------------------------------------------------------- /svc-licenses/README.md: -------------------------------------------------------------------------------- 1 | # License Service 2 | 3 | For information on the supported `LicenseService` APIs, see *[License Service](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#license-service)*. -------------------------------------------------------------------------------- /svc-managers/README.md: -------------------------------------------------------------------------------- 1 | # Managers 2 | 3 | For information on the supported `Managers` APIs, see *[Managers](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#managers)*. -------------------------------------------------------------------------------- /svc-managers/mgrresponse/rpc.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | // Package mgrresponse ... 16 | package mgrresponse 17 | 18 | // RPC defines the reponse which account-session service returns back as 19 | // part of the RPC call. 20 | // 21 | // StatusCode defines the status code of the requested service operation. 22 | // StatusMessage defines the message regarding the status of the requested operation. 23 | // Header defines the headers required to create a proper response from the api gate way. 24 | // Body defines the actual response of the requested service operation. 25 | type RPC struct { 26 | Header map[string]string 27 | StatusCode int32 28 | StatusMessage string 29 | Body interface{} 30 | } 31 | -------------------------------------------------------------------------------- /svc-systems/README.md: -------------------------------------------------------------------------------- 1 | # Resource inventory 2 | 3 | For information on the supported `Resource Inventory` APIs, see *[Resource Inventory](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#resource-inventory)*. -------------------------------------------------------------------------------- /svc-systems/sconstant/constant.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http:#www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License 14 | 15 | package sconstant 16 | 17 | //Add new constants here 18 | -------------------------------------------------------------------------------- /svc-systems/sresponse/rpc.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | //Package sresponse ... 16 | package sresponse 17 | 18 | // RPC defines the reponse which account-session service returns back as 19 | // part of the RPC call. 20 | // 21 | // StatusCode defines the status code of the requested service operation. 22 | // StatusMessage defines the message regarding the status of the requested operation. 23 | // Header defines the headers required to create a proper response from the api gate way. 24 | // Body defines the actual response of the requested service operation. 25 | type RPC struct { 26 | Header map[string]string 27 | StatusCode int32 28 | StatusMessage string 29 | Body interface{} 30 | } 31 | -------------------------------------------------------------------------------- /svc-task/README.md: -------------------------------------------------------------------------------- 1 | # Task Service 2 | 3 | For information on the supported `TaskService` APIs, see *[Tasks](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#tasks)*. 4 | -------------------------------------------------------------------------------- /svc-telemetry/README.md: -------------------------------------------------------------------------------- 1 | # Telemetry Service 2 | 3 | For information on the supported `TelemetryService` APIs, see *[Redfish Telemetry Service](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#redfish-telemetry-service)*. -------------------------------------------------------------------------------- /svc-telemetry/telemetry/common_test.go: -------------------------------------------------------------------------------- 1 | //(C) Copyright [2020] Hewlett Packard Enterprise Development LP 2 | // 3 | //Licensed under the Apache License, Version 2.0 (the "License"); you may 4 | //not use this file except in compliance with the License. You may obtain 5 | //a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | //Unless required by applicable law or agreed to in writing, software 10 | //distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11 | //WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12 | //License for the specific language governing permissions and limitations 13 | // under the License. 14 | 15 | package telemetry 16 | 17 | import ( 18 | "fmt" 19 | "reflect" 20 | "testing" 21 | ) 22 | 23 | func TestGetExternalInterface(t *testing.T) { 24 | tests := []struct { 25 | name string 26 | want *ExternalInterface 27 | }{ 28 | { 29 | name: "Get external interface", 30 | want: &ExternalInterface{}, 31 | }, 32 | } 33 | for _, tt := range tests { 34 | t.Run(tt.name, func(t *testing.T) { 35 | got := GetExternalInterface() 36 | if reflect.TypeOf(got) != reflect.TypeOf(tt.want) { 37 | t.Error(fmt.Errorf("GetTele()- want: %+v, Got: %+v", tt.want, got)) 38 | } 39 | }) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /svc-update/README.md: -------------------------------------------------------------------------------- 1 | # Update Service 2 | 3 | For information on the supported `UpdateService` APIs, see *[Software and firmware inventory](https://github.com/ODIM-Project/ODIM/blob/main/docs/README.md#software-and-firmware-inventory)*. --------------------------------------------------------------------------------