├── .github ├── ISSUE_TEMPLATE.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── .yamllint ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── applications ├── activity-proxy │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── app │ │ ├── database.py │ │ ├── models.py │ │ ├── proxy.py │ │ └── tests │ │ │ ├── __init__.py │ │ │ ├── test_database.py │ │ │ └── test_proxy.py │ ├── requirements-dev.txt │ ├── requirements.txt │ └── tox.ini ├── batch-inference │ ├── Dockerfile │ ├── Makefile │ ├── README.md │ ├── app │ │ ├── main.py │ │ └── tests │ │ │ └── test_main.py │ ├── requirements-dev.txt │ ├── requirements.txt │ └── tox.ini ├── cli │ ├── .bandit │ ├── .gitignore │ ├── Makefile │ ├── cli.mk │ ├── cli_text_consts.py │ ├── commands │ │ ├── __init__.py │ │ ├── common │ │ │ ├── __init__.py │ │ │ ├── list_utils.py │ │ │ ├── logs_utils.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ └── test_list_utils.py │ │ ├── config.py │ │ ├── experiment │ │ │ ├── __init__.py │ │ │ ├── cancel.py │ │ │ ├── common.py │ │ │ ├── experiment.py │ │ │ ├── interact.py │ │ │ ├── list.py │ │ │ ├── logs.py │ │ │ ├── submit.py │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_cancel.py │ │ │ │ ├── test_experiment_common.py │ │ │ │ ├── test_interact.py │ │ │ │ ├── test_logs.py │ │ │ │ ├── test_submit.py │ │ │ │ └── test_view.py │ │ │ └── view.py │ │ ├── launch │ │ │ ├── __init__.py │ │ │ ├── launch.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ └── test_launch.py │ │ ├── model │ │ │ ├── __init__.py │ │ │ ├── common.py │ │ │ ├── export.py │ │ │ ├── logs.py │ │ │ ├── model.py │ │ │ ├── process.py │ │ │ ├── process_list.py │ │ │ ├── status.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_common.py │ │ │ │ ├── test_export.py │ │ │ │ ├── test_logs.py │ │ │ │ └── test_status.py │ │ ├── mount.py │ │ ├── predict │ │ │ ├── __init__.py │ │ │ ├── batch.py │ │ │ ├── cancel.py │ │ │ ├── common.py │ │ │ ├── launch.py │ │ │ ├── list.py │ │ │ ├── logs.py │ │ │ ├── predict.py │ │ │ ├── stream.py │ │ │ ├── tests │ │ │ │ ├── conftest.py │ │ │ │ ├── test_batch.py │ │ │ │ ├── test_launch.py │ │ │ │ ├── test_predict_common.py │ │ │ │ └── test_stream.py │ │ │ └── view.py │ │ ├── template │ │ │ ├── __init__.py │ │ │ ├── common.py │ │ │ ├── copy.py │ │ │ ├── install.py │ │ │ ├── list.py │ │ │ ├── template.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_copy.py │ │ │ │ ├── test_install.py │ │ │ │ └── test_template_common.py │ │ ├── tests │ │ │ ├── conftest.py │ │ │ ├── test_config.py │ │ │ ├── test_mount.py │ │ │ └── test_version.py │ │ ├── user │ │ │ ├── __init__.py │ │ │ ├── create.py │ │ │ ├── delete.py │ │ │ ├── list_users.py │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ ├── test_create.py │ │ │ │ ├── test_deleteuser.py │ │ │ │ ├── test_list_users.py │ │ │ │ └── test_upgrade.py │ │ │ ├── upgrade.py │ │ │ └── user.py │ │ ├── verify │ │ │ ├── __init__.py │ │ │ ├── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── conftest.py │ │ │ │ └── test_verify.py │ │ │ └── verify.py │ │ ├── version.py │ │ └── workflow │ │ │ ├── __init__.py │ │ │ ├── cancel.py │ │ │ ├── common.py │ │ │ ├── logs.py │ │ │ ├── submit.py │ │ │ ├── tests │ │ │ ├── conftest.py │ │ │ ├── test_cancel.py │ │ │ ├── test_logs.py │ │ │ ├── test_submit.py │ │ │ ├── test_view.py │ │ │ └── test_workflow_list.py │ │ │ ├── view.py │ │ │ ├── workflow.py │ │ │ └── workflow_list.py │ ├── draft │ │ ├── __init__.py │ │ ├── cmd.py │ │ ├── packs │ │ │ └── .holder │ │ └── tests │ │ │ ├── __init__.py │ │ │ └── test_cmd.py │ ├── example-python │ │ ├── alexnet │ │ │ ├── alexnet_model.py │ │ │ ├── alexnet_multi_node_keras.py │ │ │ ├── alexnet_single_node_keras.py │ │ │ └── imagenet_loader_keras.py │ │ ├── mnist │ │ │ ├── download_mnist.py │ │ │ ├── mnist_deep_multi_node.py │ │ │ ├── mnist_multi_node.py │ │ │ └── mnist_single_node.py │ │ ├── package_examples │ │ │ ├── alexnet │ │ │ │ ├── alexnet.py │ │ │ │ └── alexnet_model.py │ │ │ ├── cifar100 │ │ │ │ ├── README.md │ │ │ │ ├── cifar100.ipynb │ │ │ │ ├── cifar100_cnn.py │ │ │ │ ├── example-image.json │ │ │ │ └── requirements.txt │ │ │ ├── imdb_lstm.py │ │ │ ├── imdb_sentiment │ │ │ │ ├── README.md │ │ │ │ ├── imdb_cnn.py │ │ │ │ ├── imdb_cnn_vectorize_text.py │ │ │ │ └── requirements.txt │ │ │ ├── mnist_checker.py │ │ │ ├── mnist_converter_pb.py │ │ │ ├── mnist_horovod.py │ │ │ ├── mnist_input_data.py │ │ │ ├── mnist_multinode.py │ │ │ ├── mnist_saved_model.py │ │ │ ├── mnist_single_node.py │ │ │ ├── mnist_tensorboard.py │ │ │ ├── ovms_inference │ │ │ │ ├── generate_json.py │ │ │ │ ├── input.json │ │ │ │ └── requirements.txt │ │ │ ├── pytorch_mnist.py │ │ │ ├── readme.md │ │ │ └── resnet │ │ │ │ ├── export │ │ │ │ ├── __init__.py │ │ │ │ └── export.py │ │ │ │ ├── flags │ │ │ │ ├── _base.py │ │ │ │ ├── _benchmark.py │ │ │ │ ├── _conventions.py │ │ │ │ ├── _misc.py │ │ │ │ ├── _performance.py │ │ │ │ └── core.py │ │ │ │ ├── imagenet_main.py │ │ │ │ ├── imagenet_preprocessing.py │ │ │ │ ├── logs │ │ │ │ ├── __init__.py │ │ │ │ ├── hooks.py │ │ │ │ ├── hooks_helper.py │ │ │ │ ├── logger.py │ │ │ │ └── metric_hook.py │ │ │ │ ├── misc │ │ │ │ ├── __init__.py │ │ │ │ └── model_helpers.py │ │ │ │ ├── resnet_model.py │ │ │ │ └── resnet_run_loop.py │ │ ├── tfconfig_multinode_mnist │ │ │ ├── README.md │ │ │ └── training.py │ │ └── tfrecord_batch_prediction │ │ │ ├── README.md │ │ │ └── tfrecords_converter.py │ ├── experiment_metrics │ │ ├── .dockerignore │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── experiment_metrics │ │ │ ├── __init__.py │ │ │ └── api.py │ │ └── setup.py │ ├── git_repo_manager │ │ ├── client.py │ │ ├── tests │ │ │ ├── test_client.py │ │ │ └── test_utils.py │ │ └── utils.py │ ├── license.txt │ ├── logs_aggregator │ │ ├── k8s_es_client.py │ │ ├── k8s_log_entry.py │ │ ├── log_filters.py │ │ └── tests │ │ │ ├── test_k8s_es_client.py │ │ │ └── test_log_filters.py │ ├── main.py │ ├── mypy.ini │ ├── node_config │ ├── packs │ │ ├── __init__.py │ │ ├── common.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_common.py │ │ │ └── test_tf_training.py │ │ └── tf_training.py │ ├── platform_resources │ │ ├── custom_object_meta_model.py │ │ ├── experiment.py │ │ ├── experiment_utils.py │ │ ├── platform_resource.py │ │ ├── resource_filters.py │ │ ├── run.py │ │ ├── tests │ │ │ ├── test_experiment.py │ │ │ ├── test_run.py │ │ │ ├── test_users.py │ │ │ └── test_workflow.py │ │ ├── user.py │ │ ├── user_utils.py │ │ └── workflow.py │ ├── requirements-dev.txt │ ├── requirements.txt │ ├── scripts │ │ ├── configure_pack_resources.py │ │ └── mypy_check.py │ ├── set-autocomplete-linux.sh │ ├── set-autocomplete-macos.sh │ ├── set-version.sh │ ├── tensorboard │ │ ├── __init__.py │ │ ├── client.py │ │ └── tests │ │ │ ├── __init__.py │ │ │ └── test_client.py │ ├── tox.ini │ ├── util │ │ ├── __init__.py │ │ ├── aliascmd.py │ │ ├── app_names.py │ │ ├── cli_state.py │ │ ├── config.py │ │ ├── dependencies_checker.py │ │ ├── docker.py │ │ ├── exceptions.py │ │ ├── filesystem.py │ │ ├── github.py │ │ ├── helm.py │ │ ├── jupyter_notebook_creator.py │ │ ├── k8s │ │ │ ├── __init__.py │ │ │ ├── k8s_info.py │ │ │ ├── k8s_proxy_context_manager.py │ │ │ ├── k8s_statistics.py │ │ │ ├── kubectl.py │ │ │ ├── pods.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── test_k8s_info.py │ │ │ │ ├── test_k8s_proxy_content_manager.py │ │ │ │ ├── test_k8s_statistics.py │ │ │ │ └── test_kubectl.py │ │ ├── launcher.py │ │ ├── logger.py │ │ ├── nbformat.v4.schema.json │ │ ├── network.py │ │ ├── spinner.py │ │ ├── system.py │ │ ├── template.py │ │ └── tests │ │ │ ├── __init__.py │ │ │ ├── nbformat_mocks.py │ │ │ ├── test_cli_state.py │ │ │ ├── test_config.py │ │ │ ├── test_dependencies_checker.py │ │ │ ├── test_docker.py │ │ │ ├── test_filesystem.py │ │ │ ├── test_helm.py │ │ │ ├── test_jupyter_notebook_creator.py │ │ │ ├── test_logger.py │ │ │ ├── test_network.py │ │ │ ├── test_system.py │ │ │ └── test_template.py │ ├── version.py │ ├── workflows │ │ ├── exp-image-build.yaml │ │ ├── exports │ │ │ └── openvino.yaml │ │ └── processes │ │ │ └── .gitkeep │ └── zoo-repository.config ├── experiment-operator │ ├── .dockerignore │ ├── .python-version │ ├── Dockerfile │ ├── README.md │ ├── example_runs │ │ └── test_run.yaml │ ├── nauta_operator.py │ ├── nauta_resources │ │ ├── __init__.py │ │ ├── platform_resource.py │ │ ├── run.py │ │ └── tests │ │ │ ├── __init__.py │ │ │ ├── test_api_clients.py │ │ │ └── test_run.py │ ├── pytest.ini │ ├── requirements-dev.txt │ ├── requirements.txt │ ├── run_crd.yaml │ └── tests │ │ ├── __init__.py │ │ └── test_nauta_operator.py ├── loader │ ├── .dockerignore │ ├── Dockerfile │ ├── glide.yaml │ ├── main.go │ └── requirements.go ├── nauta-docs │ ├── Dockerfile │ ├── app │ │ ├── css │ │ │ ├── docs.css │ │ │ └── uikit.css │ │ ├── img │ │ │ ├── docs_logo.png │ │ │ └── favicon.png │ │ ├── js │ │ │ └── functions.js │ │ └── tools │ │ │ ├── convert_to_html.sh │ │ │ ├── generate_index.py │ │ │ ├── links.lua │ │ │ └── template.html │ └── nginx.conf ├── nauta-gui │ ├── .babelrc │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .nycrc │ ├── .postcssrc.js │ ├── Dockerfile │ ├── Makefile │ ├── api │ │ ├── config.js │ │ ├── server.js │ │ ├── src │ │ │ ├── handlers │ │ │ │ ├── auth │ │ │ │ │ ├── auth.js │ │ │ │ │ └── index.js │ │ │ │ ├── experiments │ │ │ │ │ ├── experiments.js │ │ │ │ │ └── index.js │ │ │ │ └── tensorboard │ │ │ │ │ ├── index.js │ │ │ │ │ └── tensorboard.js │ │ │ └── utils │ │ │ │ ├── datetime-utils.js │ │ │ │ ├── error-handler.js │ │ │ │ ├── error-messages.js │ │ │ │ ├── k8s.js │ │ │ │ ├── logger.js │ │ │ │ ├── nauta-elasticsearch.js │ │ │ │ ├── nauta.js │ │ │ │ └── requestWrapper.js │ │ └── test │ │ │ ├── handlers │ │ │ ├── auth │ │ │ │ └── auth.js │ │ │ ├── experiments │ │ │ │ └── experiments.js │ │ │ └── tensorboard │ │ │ │ └── tensorboard.js │ │ │ └── utils │ │ │ ├── datetime-utils.js │ │ │ ├── error-handler.js │ │ │ ├── k8s.js │ │ │ ├── nauta-elasticsearch.js │ │ │ ├── nauta.js │ │ │ └── requestWrapper.js │ ├── build │ │ ├── build.js │ │ ├── check-versions.js │ │ ├── logo.png │ │ ├── utils.js │ │ ├── vue-loader.conf.js │ │ ├── webpack.base.conf.js │ │ ├── webpack.dev.conf.js │ │ ├── webpack.prod.conf.js │ │ └── webpack.test.conf.js │ ├── config │ │ ├── dev.env.js │ │ ├── index.js │ │ ├── prod.env.js │ │ └── test.env.js │ ├── index.html │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ └── license.pdf │ │ ├── components │ │ │ ├── Footer.vue │ │ │ ├── Home.vue │ │ │ ├── InvalidToken.vue │ │ │ ├── ModelsTable.vue │ │ │ ├── ModelsTableFeatures │ │ │ │ ├── ActionHeaderButtons.vue │ │ │ │ ├── ExpKeyValDetail.vue │ │ │ │ ├── ExpResourcesDetail.vue │ │ │ │ ├── FilterByValWindow.vue │ │ │ │ ├── FooterElements.vue │ │ │ │ └── LogsDetail.vue │ │ │ ├── Navigation.vue │ │ │ ├── SignedOut.vue │ │ │ ├── TensorBoardCreator.vue │ │ │ └── Toolbar.vue │ │ ├── fonts.css │ │ ├── fonts │ │ │ ├── IntelClearProLCProductNamesBd.woff │ │ │ ├── IntelClear_WArabic_Bd.woff │ │ │ ├── IntelClear_WArabic_Lt.woff │ │ │ └── IntelClear_WArabic_Rg.woff │ │ ├── img │ │ │ └── white_logo.png │ │ ├── main.js │ │ ├── router │ │ │ └── index.js │ │ ├── store │ │ │ ├── handlers │ │ │ │ ├── auth.js │ │ │ │ ├── experiments.js │ │ │ │ └── tensorboard.js │ │ │ ├── index.js │ │ │ └── modules │ │ │ │ ├── app.js │ │ │ │ ├── auth.js │ │ │ │ ├── experiments-table.js │ │ │ │ └── experiments.js │ │ └── utils │ │ │ ├── constants │ │ │ ├── labels.js │ │ │ ├── message-types.js │ │ │ └── messages.js │ │ │ ├── header-titles.js │ │ │ └── timedate-utils.js │ ├── static │ │ └── favicon.png │ └── test │ │ └── unit │ │ ├── .eslintrc │ │ ├── index.js │ │ ├── karma.conf.js │ │ ├── specs │ │ ├── components │ │ │ ├── ModelsTableFeatures │ │ │ │ ├── action-header-buttons.spec.js │ │ │ │ ├── exp-resources-detail.spec.js │ │ │ │ ├── filter-by-val-window.spec.js │ │ │ │ ├── footer-elements.spec.js │ │ │ │ └── logs-detail.spec.js │ │ │ ├── app.spec.js │ │ │ ├── footer.spec.js │ │ │ ├── home.spec.js │ │ │ ├── invalid-token.spec.js │ │ │ ├── models-table.spec.js │ │ │ ├── navigation.spec.js │ │ │ ├── signed-out.spec.js │ │ │ ├── tensorboard-creator.spec.js │ │ │ └── toolbar.spec.js │ │ └── store │ │ │ ├── handlers │ │ │ └── tensorboard.spec.js │ │ │ └── modules │ │ │ ├── app.spec.js │ │ │ ├── auth.spec.js │ │ │ ├── experiments-table.spec.js │ │ │ └── experiments.spec.js │ │ └── utils.js ├── tensorboard-service │ ├── Dockerfile │ ├── Makefile │ ├── app │ │ ├── api │ │ │ ├── __init__.py │ │ │ ├── main.py │ │ │ ├── models.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_main.py │ │ ├── daemon.py │ │ ├── k8s │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ ├── models.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ ├── test_client.py │ │ │ │ └── test_models.py │ │ ├── nauta │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_config.py │ │ └── tensorboard │ │ │ ├── __init__.py │ │ │ ├── models.py │ │ │ ├── proxy_client.py │ │ │ ├── tensorboard.py │ │ │ └── tests │ │ │ ├── __init__.py │ │ │ ├── test_proxy_client.py │ │ │ └── test_tensorboard.py │ ├── requirements-dev.txt │ ├── requirements.txt │ └── tox.ini ├── tf-serving-sidecar │ ├── Dockerfile │ ├── Makefile │ ├── main.py │ ├── requirements-dev.txt │ ├── requirements.txt │ └── test_main.py └── tfjob-multinode-sidecar │ ├── Dockerfile │ ├── Makefile │ ├── main.py │ └── requirements.txt ├── bin-containers ├── ansible │ ├── Dockerfile │ └── requirements.txt ├── helm │ └── Dockerfile └── kubectl │ ├── Dockerfile │ └── kubernetes.repo ├── config.yml ├── docs ├── Makefile ├── conf.py ├── generate_docs.sh ├── index.rst ├── installation-and-configuration │ ├── Configuration_Tasks_Variables │ │ └── CTV.md │ ├── How_to_Build_Nauta │ │ └── HBN.md │ ├── Installation_Package_Requirements │ │ └── IPR.md │ ├── Installation_Process │ │ └── IP.md │ ├── Installer_System_Requirements │ │ └── ISR.md │ ├── Inventory_Tasks │ │ └── IT.md │ ├── README.md │ ├── System_Software_Components_Requisites │ │ └── SSCR.md │ ├── TaC.md │ ├── Target_Host_Requirements │ │ └── THR.md │ ├── Troubleshooting │ │ └── T.md │ ├── User_Management │ │ └── UM.md │ └── Z_examples │ │ ├── Examples.jpg │ │ ├── NN.jpg │ │ ├── NN.png │ │ ├── SAD.png │ │ ├── WEB.PNG │ │ ├── hamburger_menu.png │ │ └── kubernetes_dashbd.png ├── make.bat ├── nauta.png ├── sphinx-requirements.txt └── user-guide │ ├── README.md │ ├── TaC.md │ ├── actions │ ├── accessing_kubernetes.md │ ├── batch_inf_example.md │ ├── cancel_exp.md │ ├── concepts.md │ ├── config.md │ ├── create_user.md │ ├── delete_user.md │ ├── experiment.md │ ├── getting_started.md │ ├── images │ │ ├── Ssubmit_mult_exp.png │ │ ├── UI_Experiment_Details 2.png │ │ ├── UI_Experiment_Details_1.png │ │ ├── UI_Experiment_Details_2.png │ │ ├── accuracy_step.png │ │ ├── adding_metrics.png │ │ ├── dan_experiments_list.png │ │ ├── exp_cmd_help.png │ │ ├── experiment_command.png │ │ ├── experiment_details.png │ │ ├── experiment_list - Copy.png │ │ ├── experiment_list.png │ │ ├── experiment_log.png │ │ ├── experiment_status.png │ │ ├── experiment_view.png │ │ ├── hamburger_menu.png │ │ ├── jupyter launch.png │ │ ├── jupyter plot.png │ │ ├── jupyter_dashbd.png │ │ ├── jupyter_plot.png │ │ ├── kubernetes dashbd.png │ │ ├── kubernetes_dashbd.png │ │ ├── launch_tensorboard.png │ │ ├── list_knodes.png │ │ ├── logs and results.png │ │ ├── multinodes.png │ │ ├── nctl_commands_top.png │ │ ├── nctl_help.png │ │ ├── nctl_mount_command.png │ │ ├── predict_instance.png │ │ ├── predict_launch.png │ │ ├── search_lense.png │ │ ├── single_exp_tensorboard.png │ │ ├── submit single exp.png │ │ ├── submit_experiment.png │ │ ├── submit_interactive_exp.png │ │ ├── submit_multinodes.png │ │ ├── submitting interactive exp.png │ │ ├── submitting_parameters.png │ │ ├── submt_mult_exp.png │ │ ├── summaries_exp.png │ │ ├── template_list.png │ │ ├── template_pack.png │ │ ├── tensorboard.png │ │ ├── tensorboard_from_cli.png │ │ ├── tensorflow rest API.png │ │ ├── user_list.png │ │ ├── verify_results.png │ │ ├── view_exp_logs.png │ │ └── web_ui.png │ ├── inference_testing.md │ ├── install_configure.md │ ├── launch.md │ ├── launch_jupyter.md │ ├── managing_users_resources.md │ ├── model.md │ ├── model_export.md │ ├── mount.md │ ├── mount_exp_input.md │ ├── mount_exp_output.md │ ├── nctl.md │ ├── openvino_inf.md │ ├── predict.md │ ├── streaming_inference.md │ ├── submit_mult_exp.md │ ├── submit_mult_nodes.md │ ├── submit_pytorch.md │ ├── submit_single_exp.md │ ├── template.md │ ├── template_packs.md │ ├── unmount.md │ ├── user.md │ ├── verify.md │ ├── version.md │ ├── view_cli_help.md │ ├── view_exp.md │ ├── view_exp_logs.md │ ├── view_exp_tensorbd.md │ ├── view_exp_webui.md │ ├── view_user_act.md │ ├── working_with_datasets.md │ └── working_with_experiments.md │ └── advanced │ ├── customlibs.md │ ├── gitea_console.md │ └── packs.md ├── nauta-charts ├── admin-account │ ├── Chart.yaml │ └── templates │ │ ├── cluster-role-binding.yaml │ │ └── service-account.yaml ├── argo-controller │ ├── Chart.yaml │ └── templates │ │ ├── _helpers.tpl │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── configmap.yaml │ │ ├── crd.yaml │ │ ├── deployment.yaml │ │ └── serviceaccount.yaml ├── buildkit │ ├── Chart.yaml │ ├── templates │ │ ├── configmap.yaml │ │ ├── cronjob.yaml │ │ ├── deployment.yaml │ │ ├── pv.yaml │ │ ├── pvc.yaml │ │ └── service.yaml │ └── values.yaml ├── commons │ ├── Chart.yaml │ ├── templates │ │ ├── admin-local-role.yaml │ │ ├── cluster-role-admin.yaml │ │ ├── cluster-role-heapster-view.yaml │ │ ├── cluster-role-nauta-access.yaml │ │ ├── cluster-role-nodes-view.yaml │ │ ├── cluster-role-podgroups.yaml │ │ ├── cluster-role-view.yaml │ │ ├── cluster-role-workflows.yaml │ │ ├── nauta-cluster-role.yaml │ │ ├── nauta-image-load-tf-install.yaml │ │ └── nauta-image-load-tf-upgrade.yaml │ └── values.yaml ├── configuration │ ├── Chart.yaml │ ├── templates │ │ ├── configmap.yaml │ │ ├── user-cluster-role.yaml │ │ ├── user-crd.yaml │ │ └── user-del-configmap.yaml │ └── values.yaml ├── dashboard │ ├── Chart.yaml │ ├── templates │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ ├── role.yaml │ │ ├── rolebinding.yaml │ │ ├── secret.yaml │ │ ├── service.yaml │ │ ├── serviceaccount.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── docker-registry │ ├── Chart.yaml │ ├── templates │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── pv.yaml │ │ ├── pvc.yaml │ │ ├── secret.yaml │ │ ├── service.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── documentation-service │ ├── Chart.yaml │ └── templates │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ └── service.yaml ├── elasticsearch-curator │ ├── Chart.yaml │ ├── templates │ │ ├── _helpers.tpl │ │ ├── configmap.yaml │ │ └── cronjob.yaml │ └── values.yaml ├── elasticsearch │ ├── Chart.yaml │ ├── templates │ │ ├── deployment.yaml │ │ ├── pv.yml │ │ ├── pvc.yaml │ │ ├── secret.yaml │ │ ├── service.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── experiment-operator │ ├── Chart.yaml │ ├── templates │ │ ├── cluster_role.yaml │ │ ├── cluster_role_binding.yaml │ │ ├── deployment.yaml │ │ ├── role.yaml │ │ ├── role_binding.yaml │ │ ├── run_crd.yaml │ │ └── service_account.yaml │ └── values.yaml ├── experiments │ ├── Chart.yaml │ ├── templates │ │ ├── admin-cluster-role.yaml │ │ ├── experiment-crd.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── fluentd │ ├── Chart.yaml │ ├── config │ │ └── fluent.conf │ ├── templates │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── configmap.yaml │ │ ├── daemonset.yaml │ │ └── service-account.yaml │ └── values.yaml ├── gitea │ ├── .helmignore │ ├── Chart.yaml │ ├── LICENSE │ ├── README.md │ ├── postgres-values.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── db-secret.yaml │ │ ├── deployment.yaml │ │ ├── gitea-admin-secret.yaml │ │ ├── gitea │ │ │ ├── _container.tpl │ │ │ ├── gitea-config.yaml │ │ │ ├── gitea-http-svc.yaml │ │ │ ├── gitea-pv.yaml │ │ │ ├── gitea-pvc.yaml │ │ │ └── gitea-ssh-svc.yaml │ │ ├── ingress.yaml │ │ ├── init │ │ │ ├── _container.tpl │ │ │ └── _initPostgres.tpl │ │ ├── memcached │ │ │ └── _container.tpl │ │ └── postgres │ │ │ ├── _container.tpl │ │ │ ├── postgres-pv.yaml │ │ │ └── postgres-pvc.yaml │ └── values.yaml ├── gui │ ├── Chart.yaml │ ├── templates │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ ├── service.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── ingress │ ├── Chart.yaml │ ├── templates │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── configmap.tcp.yaml │ │ ├── configmap.udp.yaml │ │ ├── configmap.yaml │ │ ├── defaultbackend.deployment.yaml │ │ ├── defaultbackend.service.yaml │ │ ├── deployment.yaml │ │ ├── role.yaml │ │ ├── rolebinding.yaml │ │ ├── service.yaml │ │ ├── serviceaccount.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── kube-batch │ ├── Chart.yaml │ └── templates │ │ ├── _helpers.tpl │ │ ├── clusterrolebinding.yaml │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── queue.yaml │ │ ├── scheduling_v1alpha1_podgroup.yaml │ │ ├── scheduling_v1alpha1_queue.yaml │ │ └── serviceaccount.yaml ├── pytorch-operator │ ├── Chart.yaml │ ├── templates │ │ ├── admin-cluster-role.yaml │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── crd.yaml │ │ ├── deployment.yaml │ │ ├── serviceaccount.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── redsocks │ ├── Chart.yaml │ ├── templates │ │ └── daemonset.yaml │ └── values.yaml ├── registry-nginx │ ├── Chart.yaml │ ├── templates │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── service.yaml │ │ └── user-cluster-role.yaml │ └── values.yaml ├── samba │ ├── Chart.yaml │ ├── templates │ │ ├── deployment.yaml │ │ ├── input-pv.yaml │ │ ├── input-pvc.yaml │ │ ├── output-pv.yaml │ │ ├── output-pvc.yaml │ │ ├── service-account.yaml │ │ ├── service.yaml │ │ ├── user-cluster-role.yaml │ │ ├── users-management-role.yaml │ │ └── users-management-rolebinding.yaml │ └── values.yaml └── tf │ ├── Chart.yaml │ ├── templates │ ├── clusterrole.yaml │ ├── clusterrolebinding.yaml │ ├── crd.yaml │ ├── dashboard.clusterrole.yaml │ ├── dashboard.clusterrolebinding.yaml │ ├── dashboard.serviceaccount.yaml │ ├── deployment.yaml │ └── serviceaccount.yaml │ └── values.yaml ├── nauta-containers ├── docker │ ├── Dockerfile │ ├── kubernetes.repo │ └── push.sh ├── elasticsearch-proxy │ ├── Dockerfile │ ├── elasticsearch_proxy.py │ └── requirements.txt ├── horovod │ └── 3.6 │ │ └── Dockerfile ├── kube-batch │ └── Dockerfile ├── kubectl │ ├── Dockerfile │ └── kubernetes.repo ├── openvino-mo │ ├── Dockerfile │ └── requirements.txt ├── pytorch-base │ └── 3.7 │ │ ├── Dockerfile │ │ └── requirements.txt ├── redsocks │ ├── Dockerfile │ ├── down.sh │ ├── redsocks.conf │ └── up.sh ├── samba │ ├── Dockerfile │ ├── Makefile │ ├── kubernetes.repo │ ├── samba-create-pv.sh │ ├── samba-create-user.sh │ ├── samba-create.sh │ ├── samba-delete-users.sh │ ├── samba-health.sh │ ├── samba-init.sh │ ├── samba-loop.sh │ └── smb.conf ├── tensorflow │ └── py36 │ │ └── Dockerfile └── tf-operator │ ├── .dockerignore │ └── Dockerfile ├── nauta-registry-charts └── registry │ ├── Chart.yaml │ └── templates │ ├── deployment.yaml │ └── service.yaml ├── nauta-user ├── Chart.yaml ├── templates │ ├── cluster-nauta-role-binding.yaml │ ├── cluster-view-role-binding.yaml │ ├── namespace-admin-role-binding.yaml │ ├── namespace-nauta-access-role-binding.yaml │ ├── namespace-nauta-role-binding.yaml │ ├── pvc-input-home.yaml │ ├── pvc-input-public.yaml │ ├── pvc-output-home.yaml │ ├── pvc-output-public.yaml │ ├── tensorboard-service-deployment.yaml │ ├── tensorboard-service-service.yaml │ ├── tiller-deployment.yaml │ └── user.yaml └── values.yaml ├── platform-charts ├── admin │ ├── Chart.yaml │ └── templates │ │ ├── clusterrolebinding.yaml │ │ └── serviceaccount.yaml ├── dashboard │ ├── Chart.yaml │ └── templates │ │ ├── anonymous-access.yaml │ │ ├── anonymous-role.yaml │ │ ├── deployment.yaml │ │ ├── role.yaml │ │ ├── rolebinding.yaml │ │ ├── secret.yaml │ │ ├── service.yaml │ │ └── serviceaccount.yaml ├── flannel │ ├── Chart.yaml │ └── templates │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── configmap.yaml │ │ ├── daemonset.yaml │ │ └── serviceaccount.yaml ├── heapster │ ├── Chart.yaml │ └── templates │ │ ├── clusterrolebinding.yaml │ │ ├── deployment.yaml │ │ ├── service-account.yaml │ │ └── service.yaml ├── ingress │ ├── Chart.yaml │ └── templates │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── configmap.tcp.yaml │ │ ├── configmap.udp.yaml │ │ ├── configmap.yaml │ │ ├── daemonset.yaml │ │ ├── defaultbackend.deployment.yaml │ │ ├── defaultbackend.service.yaml │ │ ├── role.yaml │ │ ├── rolebinding.yaml │ │ ├── service.yaml │ │ └── serviceaccount.yaml ├── netfilter-fix │ ├── Chart.yaml │ └── templates │ │ └── daemonset.yaml ├── nfs │ ├── Chart.yaml │ └── templates │ │ ├── input-pv.yaml │ │ └── output-pv.yaml ├── samba-forward │ ├── Chart.yaml │ └── templates │ │ └── service.yaml └── skydns │ ├── Chart.yaml │ └── templates │ ├── clusterrolebinding.yaml │ ├── configmap.yaml │ ├── daemonset.yaml │ ├── service-account.yaml │ └── service.yaml ├── requirements.txt ├── rpm-containers ├── cni │ └── rpm │ │ ├── Dockerfile │ │ └── cni-plugins.spec ├── consul │ ├── Dockerfile │ └── consul.spec ├── docker-distribution │ └── Dockerfile ├── docker │ └── Dockerfile ├── helm │ ├── Dockerfile │ └── helm.spec ├── kubernetes │ ├── prepare │ │ └── Dockerfile │ └── rpm │ │ ├── all │ │ ├── Dockerfile │ │ └── kubernetes.spec │ │ ├── client │ │ ├── Dockerfile │ │ ├── kubernetes-client.spec │ │ └── kubernetes-kubectl.spec │ │ ├── server │ │ ├── Dockerfile │ │ ├── kubernetes-apiserver.spec │ │ ├── kubernetes-controller-manager.spec │ │ ├── kubernetes-scheduler.spec │ │ └── kubernetes-server.spec │ │ └── worker │ │ ├── Dockerfile │ │ ├── kubernetes-kubelet.spec │ │ └── kubernetes-worker.spec ├── nginx │ └── Dockerfile └── python │ ├── Dockerfile │ └── pip-repository.spec ├── shared-containers ├── build │ ├── consul │ │ └── Dockerfile │ ├── rpm-downloader │ │ ├── Dockerfile │ │ ├── docker-ce.repo │ │ └── nginx.repo │ └── tf-base │ │ └── run │ │ └── 3.6 │ │ ├── Dockerfile │ │ ├── jupyter_notebook_config.py │ │ ├── notebooks │ │ └── 1_hello_tensorflow.ipynb │ │ └── run_jupyter.sh ├── centos │ ├── build-go │ │ └── Dockerfile │ ├── build │ │ └── Dockerfile │ ├── core │ │ └── Dockerfile │ ├── go-apiserver-builder │ │ └── Dockerfile │ ├── java8 │ │ └── Dockerfile │ ├── python36 │ │ └── Dockerfile │ └── rpm-packer │ │ ├── Dockerfile │ │ └── build-rpm.sh └── docs │ └── Dockerfile ├── toolbox ├── checks │ ├── checks.mk │ ├── license_check.xml │ └── license_header_2019.txt ├── config.yml ├── providers │ ├── gcp │ │ ├── ansible.cfg │ │ ├── files │ │ │ └── remote_scripts │ │ │ │ ├── compile_platform.sh │ │ │ │ ├── compile_prerequisities.sh │ │ │ │ ├── install_platform.sh │ │ │ │ └── install_prerequisities.sh │ │ ├── gcp-advanced.md │ │ ├── gcp-clean.yml │ │ ├── gcp-config.yml │ │ ├── gcp-support.md │ │ ├── gcp-tags.sh │ │ ├── gcp-users.sh │ │ ├── gcp-users.sh.help │ │ ├── gcp.md │ │ ├── gcp.mk │ │ ├── gcp.sh │ │ ├── gcp.sh.help │ │ ├── gcp.yml │ │ ├── roles │ │ │ ├── gateway │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ └── config.yml.j2 │ │ │ ├── kubernetes │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ ├── iptables-k8s-forwarder.sh.j2 │ │ │ │ │ ├── kubeconfig.j2 │ │ │ │ │ ├── kubernetes-forwarder.service.j2 │ │ │ │ │ └── tiller.yml.j2 │ │ │ ├── nfs │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ └── exports.j2 │ │ │ ├── terraform-clean │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ └── terraform │ │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ ├── cluster_info.yml.j2 │ │ │ │ ├── main.tf.j2 │ │ │ │ ├── output.tf.j2 │ │ │ │ └── variables.tf.j2 │ │ └── screenshots │ │ │ ├── x-screenshot-access-platform-installation-node.png │ │ │ └── x-screenshot-create-platform-installation-node.png │ ├── inventory │ ├── providers.mk │ └── vagrant │ │ ├── readme.md │ │ └── virtualbox │ │ ├── Vagrantfile │ │ ├── config.yml │ │ ├── disk-extend.sh │ │ └── inventory └── support │ └── gateway-users │ ├── files │ └── remote_scripts │ │ ├── create_users.sh │ │ └── create_users_prerequisities.sh │ ├── gateway-users.mk │ ├── gateway-users.yml │ ├── gateway-workers.yml │ ├── group_vars │ └── all │ │ └── admin-user.yml │ ├── inventory │ └── roles │ ├── gateway-users │ ├── tasks │ │ ├── main.yml │ │ └── user.yml │ ├── templates │ │ ├── docker.j2 │ │ └── ssh_conf.j2 │ └── vars │ │ ├── CentOS.yml │ │ ├── MacOSX.yml │ │ ├── Ubuntu.yml │ │ └── main.yml │ ├── nctl-client │ ├── tasks │ │ ├── main.yml │ │ ├── pack-parametrization.yml │ │ └── user.yml │ └── vars │ │ ├── Ubuntu.yml │ │ └── main.yml │ └── nctl-users │ ├── tasks │ ├── main.yml │ └── user.yml │ └── vars │ └── main.yml └── tools ├── Makefile ├── bin-config.yml ├── chart-composer ├── Makefile ├── ansible.cfg ├── container.yml ├── group_vars │ └── all │ │ └── inventory.yml └── roles │ └── finalize │ ├── tasks │ ├── chart-dep.yml │ ├── chart.yml │ └── main.yml │ └── templates │ └── Chart.yaml ├── config.yml ├── container-build ├── Makefile ├── ansible.cfg ├── container.yml ├── filter_plugins │ └── carbon.py ├── group_vars │ └── all │ │ ├── default.yml │ │ └── registry.yml ├── roles │ ├── cache-registry-final │ │ └── tasks │ │ │ └── main.yml │ ├── cache-registry-init │ │ └── tasks │ │ │ └── main.yml │ ├── container-build │ │ ├── tasks │ │ │ ├── artifact.yml │ │ │ ├── artifact_file_fetch.yml │ │ │ ├── artifact_list_fetch.yml │ │ │ ├── artifact_prepare.yml │ │ │ ├── base.yml │ │ │ ├── build.yml │ │ │ ├── build │ │ │ │ ├── base.yml │ │ │ │ ├── build.yml │ │ │ │ ├── local_tag.yml │ │ │ │ └── remote_tag.yml │ │ │ ├── exists.yml │ │ │ ├── load.yml │ │ │ ├── load_image.yml │ │ │ ├── local_tag.yml │ │ │ ├── main.yml │ │ │ ├── pull │ │ │ │ ├── base.yml │ │ │ │ ├── build.yml │ │ │ │ ├── local_tag.yml │ │ │ │ └── remote_tag.yml │ │ │ ├── push.yml │ │ │ ├── push_image.yml │ │ │ ├── remote_tag.yml │ │ │ ├── save.yml │ │ │ └── save_image.yml │ │ └── templates │ │ │ ├── images.yaml.j2 │ │ │ └── images_no_cache.yaml.j2 │ ├── finalize │ │ └── tasks │ │ │ └── main.yml │ └── prepare │ │ └── tasks │ │ └── main.yml └── tasks │ └── wait.yml ├── deployers ├── nauta │ ├── ansible.cfg │ ├── fetch.yml │ ├── finalize.yml │ ├── group_vars │ │ └── all │ │ │ ├── global.yml │ │ │ ├── helm.yml │ │ │ ├── labels.yml │ │ │ └── storage.yml │ ├── install.yml │ ├── prepare.yml │ ├── roles │ │ ├── define │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── fetch-admin │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── kubeconfig.yml.j2 │ │ ├── local │ │ │ └── init │ │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── nauta-install │ │ │ └── tasks │ │ │ │ ├── install.yml │ │ │ │ ├── main.yml │ │ │ │ └── upgrade.yml │ │ ├── registry-install │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── remote │ │ │ └── init │ │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── storage │ │ │ ├── auto │ │ │ │ └── tasks │ │ │ │ │ ├── main.yml │ │ │ │ │ ├── storage-local.yml │ │ │ │ │ └── storage-pvc.yml │ │ │ ├── local │ │ │ │ └── tasks │ │ │ │ │ └── main.yml │ │ │ └── pvc │ │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── uninstall-master │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── uninstall-worker │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── verify │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── vars │ │ │ │ └── main.yml │ │ ├── workspace-kill │ │ │ └── tasks │ │ │ │ └── main.yml │ │ ├── workspace-prepare │ │ │ └── tasks │ │ │ │ └── main.yml │ │ └── workspace │ │ │ ├── tasks │ │ │ └── main.yml │ │ │ └── templates │ │ │ └── workspace-deployment.yml │ ├── tasks │ │ ├── condition.yml │ │ ├── condition_test.yml │ │ ├── restart_hosts.yml │ │ └── restore_backup.yml │ └── uninstall.yml ├── platform │ ├── ansible.cfg │ ├── applications.yml │ ├── cluster.ca.yml │ ├── cluster.cgroup.yml │ ├── cluster.consul.yml │ ├── cluster.docker.yml │ ├── cluster.facts.yml │ ├── cluster.networking.yml │ ├── cluster.yml │ ├── files │ │ └── scli.sh │ ├── group_vars │ │ └── all │ │ │ ├── global.yml │ │ │ ├── kubernetes.yml │ │ │ ├── labels.yml │ │ │ ├── storage.yml │ │ │ ├── system.yml │ │ │ └── yum.yml │ ├── master.docker-registry.yml │ ├── master.etcd.yml │ ├── master.kubernetes.yml │ ├── master.loadbalancer.yml │ ├── master.local-storage.yml │ ├── master.nfs.yml │ ├── master.yml │ ├── nauta.yml │ ├── roles │ │ ├── applications │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ ├── kubeconfig.j2 │ │ │ │ └── tiller.yml.j2 │ │ ├── cluster │ │ │ ├── ca │ │ │ │ ├── init │ │ │ │ │ ├── tasks │ │ │ │ │ │ ├── cert.yml │ │ │ │ │ │ ├── kind.yml │ │ │ │ │ │ └── main.yml │ │ │ │ │ └── templates │ │ │ │ │ │ └── conf.j2 │ │ │ │ └── prepare │ │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ │ │ └── templates │ │ │ │ │ └── config.j2 │ │ │ ├── cgroup │ │ │ │ └── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ ├── consul │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ ├── agent.json.j2 │ │ │ │ │ ├── apiservice.json.j2 │ │ │ │ │ ├── cluster.json.j2 │ │ │ │ │ ├── config.json.j2 │ │ │ │ │ ├── consul.service.j2 │ │ │ │ │ ├── dhclient.j2 │ │ │ │ │ ├── dns.json.j2 │ │ │ │ │ ├── node.json.j2 │ │ │ │ │ ├── registry.json.j2 │ │ │ │ │ ├── resolv.j2 │ │ │ │ │ ├── server.json.j2 │ │ │ │ │ └── ssl.json.j2 │ │ │ ├── docker │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ │ ├── templates │ │ │ │ │ ├── consul.conf.j2 │ │ │ │ │ ├── daemon.json.j2 │ │ │ │ │ └── proxy.conf.j2 │ │ │ │ └── vars │ │ │ │ │ └── main.yml │ │ │ ├── facts │ │ │ │ ├── prepare │ │ │ │ │ ├── tasks │ │ │ │ │ │ ├── RedHat │ │ │ │ │ │ │ └── install.yml │ │ │ │ │ │ └── main.yml │ │ │ │ │ └── templates │ │ │ │ │ │ └── config.j2 │ │ │ │ └── verify │ │ │ │ │ └── tasks │ │ │ │ │ └── main.yml │ │ │ └── networking │ │ │ │ └── tasks │ │ │ │ ├── RedHat │ │ │ │ └── configure.yml │ │ │ │ └── main.yml │ │ ├── master │ │ │ ├── docker-registry │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ └── registry.yml.j2 │ │ │ ├── etcd │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ └── etcd.service.j2 │ │ │ ├── kubernetes │ │ │ │ ├── files │ │ │ │ │ ├── audit.yml │ │ │ │ │ └── create_kubeconfig.sh │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ ├── kubernetes-apiserver-check.service.j2 │ │ │ │ │ ├── kubernetes-apiserver.service.j2 │ │ │ │ │ ├── kubernetes-apiserver.target.j2 │ │ │ │ │ ├── kubernetes-check.sh.j2 │ │ │ │ │ ├── kubernetes-controller-check.service.j2 │ │ │ │ │ ├── kubernetes-controller.service.j2 │ │ │ │ │ ├── kubernetes-controller.target.j2 │ │ │ │ │ ├── kubernetes-scheduler-check.service.j2 │ │ │ │ │ ├── kubernetes-scheduler.service.j2 │ │ │ │ │ ├── kubernetes-scheduler.target.j2 │ │ │ │ │ └── kubernetes-server.target.j2 │ │ │ ├── loadbalancer │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── install.yml │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ ├── apiservice.stream.j2 │ │ │ │ │ ├── consul.conf.j2 │ │ │ │ │ ├── ingress.http.j2 │ │ │ │ │ ├── ingress.stream.j2 │ │ │ │ │ ├── nginx.conf.j2 │ │ │ │ │ └── samba.stream.j2 │ │ │ ├── local-storage │ │ │ │ └── tasks │ │ │ │ │ ├── main.yml │ │ │ │ │ └── mount.yml │ │ │ └── nfs │ │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ └── exports.j2 │ │ ├── prepare │ │ │ ├── python │ │ │ │ ├── tasks │ │ │ │ │ ├── RedHat │ │ │ │ │ │ └── local-repository.yml │ │ │ │ │ └── main.yml │ │ │ │ └── templates │ │ │ │ │ └── pip.ini.j2 │ │ │ └── verify │ │ │ │ ├── access │ │ │ │ └── tasks │ │ │ │ │ └── main.yml │ │ │ │ ├── envs │ │ │ │ ├── defaults │ │ │ │ │ └── main.yml │ │ │ │ └── tasks │ │ │ │ │ └── main.yml │ │ │ │ ├── python │ │ │ │ └── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── repository │ │ │ │ └── tasks │ │ │ │ ├── RedHat │ │ │ │ └── local-repository.yml │ │ │ │ └── main.yml │ │ ├── verification │ │ │ ├── master │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── vars │ │ │ │ │ └── main.yml │ │ │ ├── node-access │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── vars │ │ │ │ │ └── main.yml │ │ │ ├── node │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── vars │ │ │ │ │ └── main.yml │ │ │ ├── pre │ │ │ │ ├── tasks │ │ │ │ │ └── main.yml │ │ │ │ └── vars │ │ │ │ │ └── main.yml │ │ │ └── worker │ │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ │ └── vars │ │ │ │ └── main.yml │ │ └── worker │ │ │ └── kubernetes │ │ │ ├── worker.add │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ └── kubernetes-node-privs.yml.j2 │ │ │ ├── worker.init │ │ │ ├── tasks │ │ │ │ └── main.yml │ │ │ └── templates │ │ │ │ ├── kube-proxy.yaml.j2 │ │ │ │ ├── kubelet.cgroup.conf.j2 │ │ │ │ ├── kubelet.j2 │ │ │ │ └── kubelet.service.j2 │ │ │ └── worker.install │ │ │ └── tasks │ │ │ ├── RedHat │ │ │ └── install.yml │ │ │ └── main.yml │ ├── tasks │ │ ├── condition.yml │ │ ├── condition_test.yml │ │ ├── default_distribution.yml │ │ ├── include_distribution.yml │ │ ├── synchronize-ca.yml │ │ ├── synchronize-facts.yml │ │ ├── yum_nauta_install.yml │ │ ├── yum_remove.yml │ │ ├── yum_static_install.yml │ │ └── yum_verify_install.yml │ ├── vanila.yml │ ├── verification.yml │ ├── verify.yml │ ├── worker.kubernetes.yml │ └── worker.yml └── release │ ├── ansible.cfg │ ├── diagnose │ ├── diagnose.yml │ └── roles │ │ ├── filesystem │ │ └── tasks │ │ │ └── main.yml │ │ ├── kubectl-info │ │ └── tasks │ │ │ └── main.yml │ │ ├── network │ │ └── tasks │ │ │ └── main.yml │ │ └── system │ │ └── tasks │ │ └── main.yml │ ├── installer.sh │ └── libs │ ├── ansible.sh │ ├── bins-detect.sh │ ├── detect │ ├── LINUX.sh │ └── distribution │ │ ├── CENTOS.sh │ │ ├── RHEL.sh │ │ └── UBUNTU.sh │ ├── locale.sh │ ├── logs.sh │ ├── os-detect.sh │ └── virtualenv.sh ├── finalizers ├── bin │ ├── Makefile │ ├── ansible.cfg │ ├── container.yml │ └── roles │ │ └── finalize │ │ └── tasks │ │ └── main.yml ├── nauta │ ├── Makefile │ ├── ansible.cfg │ ├── container.yml │ └── roles │ │ └── finalize │ │ ├── tasks │ │ └── main.yml │ │ └── templates │ │ ├── Dockerfile.j2 │ │ └── registry.yml.j2 ├── platform │ ├── Makefile │ ├── ansible.cfg │ ├── container.yml │ └── roles │ │ └── finalize │ │ └── tasks │ │ └── main.yml ├── release │ ├── Makefile │ ├── ansible.cfg │ ├── container.yml │ └── roles │ │ └── finalize │ │ └── tasks │ │ └── main.yml └── rpm │ ├── Makefile │ ├── ansible.cfg │ ├── container.yml │ ├── group_vars │ └── all │ │ └── common.yml │ ├── roles │ └── finalize │ │ ├── tasks │ │ ├── build_rpm.yml │ │ └── main.yml │ │ └── templates │ │ ├── commons.spec.j2 │ │ ├── registry.spec.j2 │ │ ├── yum-repository.spec.j2 │ │ └── yum.spec.j2 │ └── tasks │ └── wait.yml ├── initializers ├── deps │ └── Makefile └── platform │ ├── Makefile │ ├── ansible.cfg │ ├── initialize.yml │ └── roles │ ├── cpu-validation │ ├── tasks │ │ └── main.yml │ └── vars │ │ └── main.yml │ └── gather-info │ └── tasks │ └── main.yml ├── makelibs ├── commons.mk └── inventory ├── nauta-config.yml ├── platform-config.yml ├── push └── Makefile ├── requirements.txt ├── rpm-config.yml └── shared-config.yml /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Description of my change:** 4 | 5 | 6 | 7 | Submitting this PR, I declare: 8 | 9 | - [ ] Code builds clean without any errors or warnings 10 | - [ ] Unit tests are added (for nctl changes) 11 | - [ ] Change works well in my environment -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # v1.0.0-beta.0 2 | Initial release! 3 | -------------------------------------------------------------------------------- /applications/activity-proxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.7-stretch 2 | 3 | WORKDIR /app 4 | 5 | ADD requirements.txt . 6 | RUN pip install -r requirements.txt 7 | 8 | ADD app/ . 9 | 10 | ENTRYPOINT gunicorn -w 4 -b 0.0.0.0:80 proxy:app 11 | -------------------------------------------------------------------------------- /applications/activity-proxy/README.md: -------------------------------------------------------------------------------- 1 | # Activity proxy 2 | -------------------------------------------------------------------------------- /applications/activity-proxy/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | flake8==3.5.0 2 | pytest==3.6.3 3 | pytest-mock==1.10.0 4 | pytest-cov==2.5.1 5 | -------------------------------------------------------------------------------- /applications/activity-proxy/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.0.2 2 | gunicorn==19.9.0 3 | requests==2.20.0 4 | -------------------------------------------------------------------------------- /applications/activity-proxy/tox.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = .venv 4 | 5 | [run] 6 | omit = 7 | app/tests/* 8 | 9 | [report] 10 | fail_under = 95 11 | -------------------------------------------------------------------------------- /applications/batch-inference/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG METRICS_IMAGE=metrics-image 2 | ARG BASE_IMAGE=python:3.6.8 3 | FROM ${METRICS_IMAGE} as metrics 4 | FROM ${BASE_IMAGE} 5 | 6 | COPY --from=metrics /build-output/experiment_metrics-*.tar.gz / 7 | 8 | RUN pip3 install /experiment_metrics-*.tar.gz && \ 9 | rm -rf /experiment_metrics-*.tar.gz 10 | 11 | WORKDIR /app 12 | 13 | ADD requirements.txt . 14 | RUN pip install -r requirements.txt 15 | 16 | ADD app/ . 17 | 18 | ENTRYPOINT python3.6 main.py 19 | -------------------------------------------------------------------------------- /applications/batch-inference/README.md: -------------------------------------------------------------------------------- 1 | # Batch inference wrapper docker image 2 | -------------------------------------------------------------------------------- /applications/batch-inference/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | ../cli/experiment_metrics 2 | pytest==4.0.1 3 | pytest-mock==1.10.0 4 | -------------------------------------------------------------------------------- /applications/batch-inference/requirements.txt: -------------------------------------------------------------------------------- 1 | tensorflow-serving-api==1.15.0 2 | kubernetes==6.0.0 3 | tensorflow==1.15.2 4 | retry==0.9.2 5 | -------------------------------------------------------------------------------- /applications/batch-inference/tox.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = .venv 4 | 5 | [run] 6 | omit = 7 | */__init__.py 8 | app/api/tests/* 9 | app/nauta/tests/* 10 | app/k8s/tests/* 11 | app/tensorboard/tests/* 12 | 13 | [report] 14 | fail_under = 95 15 | -------------------------------------------------------------------------------- /applications/cli/.bandit: -------------------------------------------------------------------------------- 1 | [bandit] 2 | target: . 3 | exclude: */tests/*,*/.venv/*,.pytest_cache/*,.mypy_cache/*,vendor/*,build/*,*/dist/*,*/example-python/* -------------------------------------------------------------------------------- /applications/cli/.gitignore: -------------------------------------------------------------------------------- 1 | # PyCharm 2 | .idea 3 | 4 | # Pytest 5 | .mypy_cache/ 6 | 7 | # Python things 8 | .venv 9 | *.pyc 10 | __pycache__ 11 | .pytest_cache 12 | 13 | # PyInstaller artifacts 14 | build 15 | dist 16 | main.spec 17 | *.spec 18 | 19 | # draft artifacts 20 | example-python/charts 21 | example-python/draft.toml 22 | example-python/Dockerfile 23 | example-python/.draftignore 24 | draft.toml 25 | .draftignore 26 | nctl-*.tar.gz 27 | nctl-*.zip 28 | 29 | vendor/ 30 | -------------------------------------------------------------------------------- /applications/cli/commands/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/commands/launch/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/commands/model/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/commands/user/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/commands/verify/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/draft/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/draft/packs/.holder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/cli/draft/packs/.holder -------------------------------------------------------------------------------- /applications/cli/draft/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/example-python/package_examples/cifar100/requirements.txt: -------------------------------------------------------------------------------- 1 | keras==2.2.4 -------------------------------------------------------------------------------- /applications/cli/example-python/package_examples/imdb_sentiment/requirements.txt: -------------------------------------------------------------------------------- 1 | keras==2.2.4 2 | numpy==1.16.1 -------------------------------------------------------------------------------- /applications/cli/example-python/package_examples/ovms_inference/requirements.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.7.1 2 | astor==0.8.0 3 | gast==0.2.2 4 | google-pasta==0.1.7 5 | grpcio==1.22.0 6 | h5py==2.9.0 7 | Keras==2.2.4 8 | Keras-Applications==1.0.8 9 | Keras-Preprocessing==1.1.0 10 | Markdown==3.1.1 11 | numpy==1.17.0 12 | protobuf==3.9.0 13 | PyYAML==5.1.2 14 | scipy==1.3.0 15 | six==1.12.0 16 | tensorboard==1.15.0 17 | tensorflow==1.15.2 18 | tensorflow-estimator==1.15.1 19 | termcolor==1.1.0 20 | Werkzeug==0.15.5 21 | wrapt==1.11.2 22 | -------------------------------------------------------------------------------- /applications/cli/example-python/package_examples/resnet/export/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/cli/example-python/package_examples/resnet/export/__init__.py -------------------------------------------------------------------------------- /applications/cli/example-python/package_examples/resnet/logs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/cli/example-python/package_examples/resnet/logs/__init__.py -------------------------------------------------------------------------------- /applications/cli/example-python/package_examples/resnet/misc/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/cli/example-python/package_examples/resnet/misc/__init__.py -------------------------------------------------------------------------------- /applications/cli/example-python/tfconfig_multinode_mnist/README.md: -------------------------------------------------------------------------------- 1 | # Distributed MNIST training example 2 | 3 | 1. Download MNIST dataset from http://yann.lecun.com/exdb/mnist/ and put all 4 .gz files to 'data' directory next to 4 | training.py file 5 | 1. Submit training: 6 | ``` 7 | nctl exp s training.py -sfl data -t tf-training-multi -- --data_dir /app 8 | ``` 9 | 10 | 11 | -------------------------------------------------------------------------------- /applications/cli/experiment_metrics/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | dist 3 | experiment_metrics.egg-info -------------------------------------------------------------------------------- /applications/cli/experiment_metrics/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7 2 | 3 | ADD ./ /opt/experiment_metrics 4 | 5 | RUN cd /opt/experiment_metrics && python3.7 setup.py sdist 6 | RUN cd /opt/experiment_metrics && pip3.7 install ./dist/experiment_metrics-0.0.1.tar.gz 7 | 8 | RUN mkdir /build-output/ && cp /opt/experiment_metrics/dist/experiment_metrics-0.0.1.tar.gz /build-output/ 9 | -------------------------------------------------------------------------------- /applications/cli/mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | allow_redefinition = True 3 | ignore_missing_imports = True 4 | show_none_errors = False 5 | -------------------------------------------------------------------------------- /applications/cli/node_config: -------------------------------------------------------------------------------- 1 | cpu_number: 40 2 | memory_amount: 197061939136 3 | cpu_system_required_min: 0.5 4 | cpu_system_required_percent: 5 5 | memory_system_required_min: 1Gi 6 | memory_system_required_percent: 5 7 | -------------------------------------------------------------------------------- /applications/cli/packs/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/packs/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | flake8==3.5.0 2 | pytest==3.5.0 3 | pytest-mock==1.7.1 4 | pytest-cov==2.5.1 5 | requests-mock==1.5.2 6 | mypy==0.701 7 | bandit==1.6.0 8 | safety==1.8.5 -------------------------------------------------------------------------------- /applications/cli/requirements.txt: -------------------------------------------------------------------------------- 1 | click==7.0 2 | dpath==1.4.2 3 | pyyaml==4.2b1 4 | tabulate==0.8.2 5 | elasticsearch==5.5.0 6 | kubernetes==7.0.1 7 | toml==0.9.4 8 | marshmallow==2.15.2 9 | marshmallow-enum==1.4 10 | requests==2.20.0 11 | psutil==5.6.6 12 | nbformat==4.4.0 13 | jsonschema==2.6.0 14 | distro==1.3.0 15 | yaspin==0.14.0 16 | ruamel.yaml.jinja2==0.2.2 17 | jinja2==2.10.1 18 | pycryptodome==3.7.3 19 | retry==0.9.2 20 | cryptography==2.7 21 | -------------------------------------------------------------------------------- /applications/cli/tensorboard/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/tox.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = .tox,build,dist,src,.venv 4 | 5 | [run] 6 | omit = 7 | .venv/* 8 | */tests/* 9 | 10 | 11 | [report] 12 | fail_under = 70 -------------------------------------------------------------------------------- /applications/cli/util/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/util/k8s/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/util/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2019 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 | # 18 | -------------------------------------------------------------------------------- /applications/cli/workflows/processes/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/cli/workflows/processes/.gitkeep -------------------------------------------------------------------------------- /applications/cli/zoo-repository.config: -------------------------------------------------------------------------------- 1 | model-zoo-address: https://intelai.github.io/nauta-zoo 2 | -------------------------------------------------------------------------------- /applications/experiment-operator/.dockerignore: -------------------------------------------------------------------------------- 1 | .python-version 2 | run_crd.yaml 3 | pytest.ini 4 | example_runs/ 5 | .pytest_cache -------------------------------------------------------------------------------- /applications/experiment-operator/.python-version: -------------------------------------------------------------------------------- 1 | 3.7.4 2 | -------------------------------------------------------------------------------- /applications/experiment-operator/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.7 2 | ADD requirements.txt /src/requirements.txt 3 | RUN pip install -r /src/requirements.txt 4 | ADD . /src 5 | CMD kopf run /src/nauta_operator.py -------------------------------------------------------------------------------- /applications/experiment-operator/example_runs/test_run.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: aipg.intel.com/v1 3 | kind: Run 4 | metadata: 5 | annotations: 6 | cpu: "1" 7 | memory: 1Gi 8 | labels: 9 | runKind: training 10 | name: test-run 11 | spec: 12 | experiment-name: test-run 13 | name: test-run 14 | parameters: 15 | - fake.py 16 | pod-count: 1 17 | pod-selector: 18 | matchLabels: 19 | app: tf-training-tfjob 20 | release: test-run 21 | state: QUEUED 22 | -------------------------------------------------------------------------------- /applications/experiment-operator/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | env = 3 | PYTHONWARNINGS="ignore:Unverified HTTPS request" 4 | -------------------------------------------------------------------------------- /applications/experiment-operator/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | pytest==5.2.* 2 | pytest-mock==1.11.* 3 | pytest-env==0.6.* 4 | pytest-cov==2.8.* 5 | asynctest==0.13.* -------------------------------------------------------------------------------- /applications/experiment-operator/requirements.txt: -------------------------------------------------------------------------------- 1 | dpath==1.4.* 2 | kubernetes-asyncio==9.0.* 3 | kopf==0.22rc1 -------------------------------------------------------------------------------- /applications/experiment-operator/run_crd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apiextensions.k8s.io/v1beta1 3 | kind: CustomResourceDefinition 4 | metadata: 5 | name: runs.aipg.intel.com 6 | spec: 7 | conversion: 8 | strategy: None 9 | group: aipg.intel.com 10 | names: 11 | kind: Run 12 | listKind: RunList 13 | plural: runs 14 | shortNames: 15 | - run 16 | singular: run 17 | preserveUnknownFields: true 18 | scope: Namespaced 19 | version: v1 20 | versions: 21 | - name: v1 22 | served: true 23 | storage: true 24 | -------------------------------------------------------------------------------- /applications/loader/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile 2 | -------------------------------------------------------------------------------- /applications/loader/glide.yaml: -------------------------------------------------------------------------------- 1 | package: github.com/NervanaSystems/carbon/applications/loader 2 | import: 3 | - package: k8s.io/client-go 4 | version: v7.0.0 5 | - package: github.com/docker/docker 6 | version: v17.03.2-ce 7 | subpackages: 8 | - api/types 9 | - api/types/container 10 | - api/types/strslice 11 | - client 12 | - package: github.com/docker/go-connections 13 | version: 9885905e989f4d8cc9f42d3549c5be9c27e4460d # version from 13 Jan 2019 https://github.com/docker/go-connections/pull/61 14 | -------------------------------------------------------------------------------- /applications/loader/requirements.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | _ "io" 5 | _ "os" 6 | _ "fmt" 7 | _ "errors" 8 | 9 | _ "github.com/docker/docker/api/types" 10 | _ "github.com/docker/docker/api/types/container" 11 | _ "github.com/docker/docker/client" 12 | _ "golang.org/x/net/context" 13 | ) 14 | -------------------------------------------------------------------------------- /applications/nauta-docs/app/img/docs_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-docs/app/img/docs_logo.png -------------------------------------------------------------------------------- /applications/nauta-docs/app/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-docs/app/img/favicon.png -------------------------------------------------------------------------------- /applications/nauta-gui/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"], 12 | "env": { 13 | "test": { 14 | "presets": ["env", "stage-2"], 15 | "plugins": ["transform-vue-jsx", "istanbul"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /applications/nauta-gui/.eslintignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /config/ 3 | /dist/ 4 | /test 5 | /*.js 6 | /test/unit/coverage/ 7 | -------------------------------------------------------------------------------- /applications/nauta-gui/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | package-lock.json 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | .nyc_output/ 9 | /test/unit/coverage/ 10 | /api/coverage/ 11 | 12 | # Editor directories and files 13 | .editorconfig 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | -------------------------------------------------------------------------------- /applications/nauta-gui/.nycrc: -------------------------------------------------------------------------------- 1 | { 2 | "report-dir": "api/coverage", 3 | "reporter": ["html", "text", "text-summary"], 4 | "exclude": ["api/test/**/*"], 5 | "check-coverage": true, 6 | "lines": 90, 7 | "statements": 80, 8 | "functions": 80, 9 | "branches": 80 10 | } 11 | -------------------------------------------------------------------------------- /applications/nauta-gui/.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /applications/nauta-gui/build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/build/logo.png -------------------------------------------------------------------------------- /applications/nauta-gui/build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /applications/nauta-gui/config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const merge = require('webpack-merge'); 4 | const prodEnv = require('./prod.env'); 5 | 6 | module.exports = merge(prodEnv, { 7 | NODE_ENV: '"development"' 8 | }); 9 | -------------------------------------------------------------------------------- /applications/nauta-gui/config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /applications/nauta-gui/config/test.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const devEnv = require('./dev.env') 4 | 5 | module.exports = merge(devEnv, { 6 | NODE_ENV: '"testing"' 7 | }) 8 | -------------------------------------------------------------------------------- /applications/nauta-gui/src/assets/license.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/src/assets/license.pdf -------------------------------------------------------------------------------- /applications/nauta-gui/src/fonts/IntelClearProLCProductNamesBd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/src/fonts/IntelClearProLCProductNamesBd.woff -------------------------------------------------------------------------------- /applications/nauta-gui/src/fonts/IntelClear_WArabic_Bd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/src/fonts/IntelClear_WArabic_Bd.woff -------------------------------------------------------------------------------- /applications/nauta-gui/src/fonts/IntelClear_WArabic_Lt.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/src/fonts/IntelClear_WArabic_Lt.woff -------------------------------------------------------------------------------- /applications/nauta-gui/src/fonts/IntelClear_WArabic_Rg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/src/fonts/IntelClear_WArabic_Rg.woff -------------------------------------------------------------------------------- /applications/nauta-gui/src/img/white_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/src/img/white_logo.png -------------------------------------------------------------------------------- /applications/nauta-gui/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/applications/nauta-gui/static/favicon.png -------------------------------------------------------------------------------- /applications/nauta-gui/test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | }, 5 | "globals": { 6 | "expect": true, 7 | "sinon": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /applications/tensorboard-service/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE=python:3.6.8 2 | FROM ${BASE_IMAGE} 3 | 4 | WORKDIR /app 5 | 6 | ADD requirements.txt . 7 | RUN pip install -r requirements.txt 8 | 9 | ADD app/ . 10 | 11 | ENTRYPOINT gunicorn -w 4 -b 0.0.0.0:80 api.main:app 12 | -------------------------------------------------------------------------------- /applications/tensorboard-service/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | flake8==3.5.0 2 | pytest==3.6.2 3 | pytest-mock==1.10.0 4 | pytest-cov==2.5.1 5 | -------------------------------------------------------------------------------- /applications/tensorboard-service/requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==1.0.2 2 | kubernetes==6.0.0 3 | gunicorn==19.9.0 4 | requests==2.20.0 5 | python-dateutil==2.7.3 6 | 7 | -------------------------------------------------------------------------------- /applications/tensorboard-service/tox.ini: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | exclude = .venv 4 | 5 | [run] 6 | omit = 7 | */__init__.py 8 | app/api/tests/* 9 | app/nauta/tests/* 10 | app/k8s/tests/* 11 | app/tensorboard/tests/* 12 | 13 | [report] 14 | fail_under = 95 15 | -------------------------------------------------------------------------------- /applications/tf-serving-sidecar/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.8 2 | 3 | WORKDIR /app 4 | 5 | ADD requirements.txt . 6 | RUN pip install -r requirements.txt 7 | 8 | ADD main.py . 9 | -------------------------------------------------------------------------------- /applications/tf-serving-sidecar/requirements-dev.txt: -------------------------------------------------------------------------------- 1 | pytest==4.2.0 2 | pytest-mock==1.10.1 3 | -------------------------------------------------------------------------------- /applications/tf-serving-sidecar/requirements.txt: -------------------------------------------------------------------------------- 1 | kubernetes==6.0.0 -------------------------------------------------------------------------------- /applications/tfjob-multinode-sidecar/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.6.7-slim 2 | 3 | WORKDIR /app 4 | 5 | ADD requirements.txt . 6 | RUN pip install -r requirements.txt 7 | 8 | ADD main.py . 9 | 10 | ENTRYPOINT python3.6 -u main.py 11 | -------------------------------------------------------------------------------- /applications/tfjob-multinode-sidecar/Makefile: -------------------------------------------------------------------------------- 1 | VIRTUALENV_DIR := .venv 2 | ACTIVATE := $(VIRTUALENV_DIR)/bin/activate 3 | 4 | clean: 5 | @rm -rf __pycache__ .cache $(VIRTUALENV_DIR) 6 | 7 | venv: $(ACTIVATE) 8 | $(ACTIVATE): requirements.txt 9 | @python3.6 -m venv $(VIRTUALENV_DIR) 10 | @chmod +x $(ACTIVATE) 11 | @. $(ACTIVATE); python -m pip install -U pip 12 | @. $(ACTIVATE); pip install -r requirements.txt; 13 | -------------------------------------------------------------------------------- /applications/tfjob-multinode-sidecar/requirements.txt: -------------------------------------------------------------------------------- 1 | kubernetes==6.0.0 2 | -------------------------------------------------------------------------------- /bin-containers/ansible/requirements.txt: -------------------------------------------------------------------------------- 1 | ansible==2.7.16 2 | docker==3.3.0 3 | jmespath==0.9.3 4 | netaddr==0.7.19 5 | pip==19.0.3 6 | virtualenv==16.0.0 7 | setuptools==39.2.0 8 | wheel==0.31.1 9 | -------------------------------------------------------------------------------- /bin-containers/helm/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | RUN mkdir -p /out 3 | RUN yum update -y && yum install -y wget 4 | RUN wget --quiet https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz -O ./helm-amd64.tar.gz 5 | RUN tar -xvf ./helm-amd64.tar.gz 6 | RUN cp ./linux-amd64/helm /out/helm 7 | RUN chmod +x /out/helm 8 | -------------------------------------------------------------------------------- /bin-containers/kubectl/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | 3 | ADD kubernetes.repo /etc/yum.repos.d/kubernetes.repo 4 | 5 | RUN yum clean all && yum update -y && yum install -y kubectl 6 | 7 | RUN mkdir -p /out 8 | 9 | RUN cp /usr/bin/kubectl /out/kubectl 10 | -------------------------------------------------------------------------------- /bin-containers/kubectl/kubernetes.repo: -------------------------------------------------------------------------------- 1 | 2 | [kubernetes] 3 | name=Kubernetes 4 | baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 5 | enabled=1 6 | gpgcheck=1 7 | repo_gpgcheck=1 8 | gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 9 | -------------------------------------------------------------------------------- /config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | proxy_env: 4 | http_proxy: "{{ lookup('env','http_proxy') }}" 5 | https_proxy: "{{ lookup('env','https_proxy') }}" 6 | no_proxy: "{{ lookup('env','no_proxy') }}" 7 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. Nauta documentation master file, created by 2 | sphinx-quickstart on Mon Nov 18 13:22:14 2019. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Nauta's documentation! 7 | ================================= 8 | 9 | .. toctree:: 10 | :maxdepth: 1 11 | :caption: Contents: 12 | 13 | user-guide/README.md 14 | installation-and-configuration/README.md 15 | -------------------------------------------------------------------------------- /docs/installation-and-configuration/TaC.md: -------------------------------------------------------------------------------- 1 | # Terms and Conditions 2 | 3 | This document is subject to [CC-BY-ND 4.0.](https://creativecommons.org/licenses/by-nd/4.0/) 4 | 5 | Copyright © 2019 Intel Corporation. All rights reserved. 6 | 7 | Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries. 8 | 9 | Other names and brands may be claimed as the property of others. 10 | This document contains information on products and/or processes in development. 11 | -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/Examples.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/Examples.jpg -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/NN.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/NN.jpg -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/NN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/NN.png -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/SAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/SAD.png -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/WEB.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/WEB.PNG -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/hamburger_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/hamburger_menu.png -------------------------------------------------------------------------------- /docs/installation-and-configuration/Z_examples/kubernetes_dashbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/installation-and-configuration/Z_examples/kubernetes_dashbd.png -------------------------------------------------------------------------------- /docs/nauta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/nauta.png -------------------------------------------------------------------------------- /docs/sphinx-requirements.txt: -------------------------------------------------------------------------------- 1 | sphinx==2.2.1 2 | sphinx-markdown-tables==0.0.10 3 | sphinx-rtd-theme==0.4.3 4 | recommonmark==0.6.0 -------------------------------------------------------------------------------- /docs/user-guide/TaC.md: -------------------------------------------------------------------------------- 1 | # Terms and Conditions 2 | 3 | This document is subject to [CC-BY-ND 4.0.](https://creativecommons.org/licenses/by-nd/4.0/) 4 | 5 | Copyright © 2019 Intel Corporation. All rights reserved. 6 | 7 | Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries. 8 | 9 | Other names and brands may be claimed as the property of others. 10 | This document contains information on products and/or processes in development. 11 | -------------------------------------------------------------------------------- /docs/user-guide/actions/images/Ssubmit_mult_exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/Ssubmit_mult_exp.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/UI_Experiment_Details 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/UI_Experiment_Details 2.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/UI_Experiment_Details_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/UI_Experiment_Details_1.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/UI_Experiment_Details_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/UI_Experiment_Details_2.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/accuracy_step.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/accuracy_step.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/adding_metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/adding_metrics.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/dan_experiments_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/dan_experiments_list.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/exp_cmd_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/exp_cmd_help.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_command.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_details.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_list - Copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_list - Copy.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_list.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_log.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_status.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/experiment_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/experiment_view.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/hamburger_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/hamburger_menu.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/jupyter launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/jupyter launch.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/jupyter plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/jupyter plot.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/jupyter_dashbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/jupyter_dashbd.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/jupyter_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/jupyter_plot.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/kubernetes dashbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/kubernetes dashbd.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/kubernetes_dashbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/kubernetes_dashbd.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/launch_tensorboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/launch_tensorboard.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/list_knodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/list_knodes.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/logs and results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/logs and results.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/multinodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/multinodes.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/nctl_commands_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/nctl_commands_top.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/nctl_help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/nctl_help.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/nctl_mount_command.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/nctl_mount_command.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/predict_instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/predict_instance.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/predict_launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/predict_launch.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/search_lense.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/search_lense.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/single_exp_tensorboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/single_exp_tensorboard.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submit single exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submit single exp.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submit_experiment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submit_experiment.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submit_interactive_exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submit_interactive_exp.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submit_multinodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submit_multinodes.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submitting interactive exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submitting interactive exp.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submitting_parameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submitting_parameters.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/submt_mult_exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/submt_mult_exp.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/summaries_exp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/summaries_exp.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/template_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/template_list.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/template_pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/template_pack.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/tensorboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/tensorboard.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/tensorboard_from_cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/tensorboard_from_cli.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/tensorflow rest API.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/tensorflow rest API.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/user_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/user_list.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/verify_results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/verify_results.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/view_exp_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/view_exp_logs.png -------------------------------------------------------------------------------- /docs/user-guide/actions/images/web_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/docs/user-guide/actions/images/web_ui.png -------------------------------------------------------------------------------- /docs/user-guide/actions/managing_users_resources.md: -------------------------------------------------------------------------------- 1 | # Managing Users and Resources 2 | 3 | This section discusses the following topics: 4 | 5 | * [Creating a User Account](create_user.md) 6 | * [Deleting a User Account](delete_user.md) 7 | * [Viewing all User Activity](view_user_act.md) 8 | * [Accessing the Kubernetes Dashboard](accessing_kubernetes.md) 9 | 10 | ---------------------- 11 | 12 | ## Return to Start of Document 13 | 14 | * [README](../README.md) 15 | 16 | ---------------------- 17 | 18 | -------------------------------------------------------------------------------- /docs/user-guide/actions/submit_single_exp.md: -------------------------------------------------------------------------------- 1 | # Submitting a Single Experiment 2 | 3 | Your script _must be_ written to process your input data as it is presented, or conversely, your data _must be_ formatted to be processed by your script. No specific data requirements are made by the Nauta software. 4 | 5 | Refer to [Submitting an Experiment](getting_started.md#submitting-an-experiment) for more information. 6 | 7 | ---------------------- 8 | 9 | ## Return to Start of Document 10 | 11 | * [README](../README.md) 12 | 13 | ---------------------- 14 | 15 | -------------------------------------------------------------------------------- /nauta-charts/admin-account/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: NAUTA admn definition 4 | name: admin-account 5 | version: 1.0.0 6 | -------------------------------------------------------------------------------- /nauta-charts/admin-account/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | app: {{ .Chart.Name }} 8 | release: {{ .Release.Name }} 9 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 10 | heritage: {{ .Release.Service }} 11 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 12 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 13 | heritage: {{ .Release.Service }} 14 | -------------------------------------------------------------------------------- /nauta-charts/argo-controller/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: argo-controller 2 | version: 2.2.1 3 | -------------------------------------------------------------------------------- /nauta-charts/argo-controller/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 7 | {{- end -}} 8 | 9 | {{/* 10 | Create a default fully qualified app name. 11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 12 | */}} 13 | {{- define "fullname" -}} 14 | {{- $name := default .Chart.Name .Values.nameOverride -}} 15 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /nauta-charts/argo-controller/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/argo-controller/templates/crd.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apiextensions.k8s.io/v1beta1 2 | kind: CustomResourceDefinition 3 | metadata: 4 | name: workflows.argoproj.io 5 | spec: 6 | group: argoproj.io 7 | names: 8 | kind: Workflow 9 | plural: workflows 10 | shortNames: 11 | - wf 12 | scope: Namespaced 13 | version: v1alpha1 14 | -------------------------------------------------------------------------------- /nauta-charts/argo-controller/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/buildkit/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: buildkit 2 | version: 1.0.0 3 | sources: 4 | - https://github.com/moby/buildkit -------------------------------------------------------------------------------- /nauta-charts/buildkit/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-config 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | data: 13 | buildkitd.toml: | 14 | [registry."{{ .Values.http_docker_registry }}"] 15 | http=true -------------------------------------------------------------------------------- /nauta-charts/buildkit/templates/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Service 4 | metadata: 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | name: {{ .Release.Name }}-{{ .Chart.Name }} 13 | spec: 14 | ports: 15 | - port: {{ .Values.buildkitd_port }} 16 | protocol: TCP 17 | selector: 18 | app: {{ .Chart.Name }} 19 | -------------------------------------------------------------------------------- /nauta-charts/buildkit/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | image: nauta/buildkit:master 3 | 4 | buildkitd_port: 1234 5 | 6 | storage_capacity: 32Gi 7 | storage_host_path: /data/nauta/buildkit 8 | prune_storage_limit: 16000 9 | 10 | http_docker_registry: nauta-registry-nginx.nauta:5000 -------------------------------------------------------------------------------- /nauta-charts/commons/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: NAUTA roles 4 | name: commons 5 | version: 1.0.0 6 | -------------------------------------------------------------------------------- /nauta-charts/commons/templates/admin-local-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | kind: RoleBinding 4 | apiVersion: rbac.authorization.k8s.io/v1 5 | metadata: 6 | name: {{ .Release.Name }}-ns-admin 7 | subjects: 8 | - kind: ServiceAccount 9 | name: default 10 | namespace: {{ .Release.Namespace }} 11 | roleRef: 12 | kind: ClusterRole #this must be Role or ClusterRole 13 | name: admin # this must match the name of the Role or ClusterRole you wish to bind to 14 | apiGroup: rbac.authorization.k8s.io 15 | -------------------------------------------------------------------------------- /nauta-charts/commons/templates/cluster-role-nodes-view.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | kind: ClusterRole 4 | apiVersion: rbac.authorization.k8s.io/v1 5 | metadata: 6 | name: "{{ .Release.Name }}-{{ .Chart.Name }}-nodes-view" 7 | labels: 8 | app: "{{ .Release.Name }}-view" 9 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 10 | release: "{{ .Release.Name }}" 11 | heritage: "{{ .Release.Service }}" 12 | {{ .Values.api_group_name }}/view: "true" 13 | rules: 14 | - apiGroups: 15 | - "*" 16 | resources: 17 | - nodes 18 | verbs: 19 | - list 20 | - get 21 | - watch 22 | -------------------------------------------------------------------------------- /nauta-charts/commons/templates/cluster-role-podgroups.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRole 3 | metadata: 4 | labels: 5 | app: "{{ .Release.Name }}-view" 6 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 7 | release: "{{ .Release.Name }}" 8 | heritage: "{{ .Release.Service }}" 9 | {{ .Values.api_group_name }}/admin: "true" 10 | name: nauta-podgroups 11 | rules: 12 | - apiGroups: 13 | - '*' 14 | resources: 15 | - podgroups 16 | verbs: 17 | - '*' 18 | -------------------------------------------------------------------------------- /nauta-charts/commons/templates/cluster-role-workflows.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRole 3 | metadata: 4 | labels: 5 | app: "{{ .Release.Name }}-view" 6 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 7 | release: "{{ .Release.Name }}" 8 | heritage: "{{ .Release.Service }}" 9 | {{ .Values.api_group_name }}/admin: "true" 10 | name: "{{ .Release.Name }}-workflows" 11 | rules: 12 | - apiGroups: 13 | - argoproj.io 14 | resources: 15 | - workflows 16 | verbs: 17 | - "*" 18 | -------------------------------------------------------------------------------- /nauta-charts/commons/templates/nauta-cluster-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | kind: ClusterRole 4 | apiVersion: rbac.authorization.k8s.io/v1 5 | metadata: 6 | name: "{{ .Release.Name }}-{{ .Chart.Name }}-user" 7 | labels: 8 | app: "{{ .Release.Name }}-user" 9 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 10 | release: "{{ .Release.Name }}" 11 | heritage: "{{ .Release.Service }}" 12 | {{ .Values.api_group_name }}/nauta: "true" 13 | rules: 14 | - apiGroups: 15 | - "*" 16 | resources: 17 | - pods/portforward 18 | - services/proxy 19 | verbs: 20 | - list 21 | - get 22 | - create 23 | -------------------------------------------------------------------------------- /nauta-charts/commons/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/configuration/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: NAUTA configuration 4 | name: configuration 5 | version: 1.0.0 6 | -------------------------------------------------------------------------------- /nauta-charts/configuration/templates/user-cluster-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | kind: ClusterRole 4 | apiVersion: rbac.authorization.k8s.io/v1 5 | metadata: 6 | name: "{{ .Release.Name }}-{{ .Chart.Name }}-user" 7 | labels: 8 | app: "{{ .Release.Name }}" 9 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 10 | release: "{{ .Release.Name }}" 11 | heritage: "{{ .Release.Service }}" 12 | {{ .Values.api_group_name }}/view: "true" 13 | rules: 14 | - apiGroups: 15 | - "{{ .Values.api_group_name }}" 16 | resources: 17 | - users 18 | verbs: 19 | - list 20 | - get 21 | - watch 22 | -------------------------------------------------------------------------------- /nauta-charts/configuration/templates/user-del-configmap.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-user-del 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}-user-del 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/configuration/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/dashboard/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: dashboard 3 | description: A NAUTA-Lite core kubernetes-dashboard 4 | version: 0.1.0 5 | appVersion: 1.8.3 6 | -------------------------------------------------------------------------------- /nauta-charts/dashboard/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | labels: 5 | app: {{ .Release.Name }} 6 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 7 | release: {{ .Release.Name }} 8 | heritage: {{ .Release.Service }} 9 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 10 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 11 | name: {{ .Release.Name }}-{{ .Chart.Name }} 12 | type: Opaque 13 | -------------------------------------------------------------------------------- /nauta-charts/dashboard/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | labels: 5 | app: {{ .Release.Name }} 6 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 7 | release: {{ .Release.Name }} 8 | heritage: {{ .Release.Service }} 9 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 10 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 11 | name: {{ .Release.Name }}-{{ .Chart.Name }} 12 | -------------------------------------------------------------------------------- /nauta-charts/dashboard/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/docker-registry/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | description: A Helm chart for Docker Registry 3 | name: docker-registry 4 | version: 1.1.1 5 | appVersion: 2.6.2 6 | -------------------------------------------------------------------------------- /nauta-charts/docker-registry/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | data: 13 | config.yml: |- 14 | {{ toYaml .Values.configData | indent 4 }} 15 | -------------------------------------------------------------------------------- /nauta-charts/docker-registry/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | type: Opaque 13 | data: 14 | haSharedSecret: {{ randAlphaNum 16 | b64enc | quote }} 15 | -------------------------------------------------------------------------------- /nauta-charts/docker-registry/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | 4 | configData: 5 | version: 0.1 6 | log: 7 | fields: 8 | service: registry 9 | storage: 10 | cache: 11 | blobdescriptor: inmemory 12 | delete: 13 | enabled: true 14 | http: 15 | addr: :5000 16 | secret: NAUTAREGISTRY 17 | headers: 18 | X-Content-Type-Options: [nosniff] 19 | health: 20 | storagedriver: 21 | enabled: true 22 | interval: 10s 23 | threshold: 3 24 | -------------------------------------------------------------------------------- /nauta-charts/documentation-service/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: documentation-service 2 | version: 0.0.1 3 | -------------------------------------------------------------------------------- /nauta-charts/elasticsearch-curator/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | version: 0.0.1 3 | appVersion: 5.4.0 4 | tillerVersion: ">=2.4.0" 5 | name: elasticsearch-curator 6 | sources: 7 | - https://github.com/elastic/curator 8 | -------------------------------------------------------------------------------- /nauta-charts/elasticsearch/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: elasticsearch 2 | version: 0.0.1 3 | sources: 4 | - https://github.com/elastic/elasticsearch 5 | -------------------------------------------------------------------------------- /nauta-charts/elasticsearch/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | {{- $token := printf "%s:%s" .Values.global.elasticsearch.admin_username .Values.global.elasticsearch.admin_password -}} 2 | {{- $_ := set . "token" $token }} 3 | apiVersion: v1 4 | kind: Secret 5 | metadata: 6 | name: es-proxy-auth 7 | namespace: nauta 8 | type: Opaque 9 | data: 10 | token: {{ .token | b64enc }} -------------------------------------------------------------------------------- /nauta-charts/elasticsearch/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/experiment-operator/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: experiment-operator 2 | version: 1.0.1 3 | -------------------------------------------------------------------------------- /nauta-charts/experiment-operator/templates/role_binding.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: rbac.authorization.k8s.io/v1beta1 3 | kind: RoleBinding 4 | metadata: 5 | name: {{ .Release.Name }}-{{ .Chart.Name }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app: {{ .Chart.Name }} 9 | release: {{ .Release.Name }} 10 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 11 | heritage: {{ .Release.Service }} 12 | roleRef: 13 | apiGroup: rbac.authorization.k8s.io 14 | kind: Role 15 | name: {{ .Release.Name }}-{{ .Chart.Name }}-namespaced 16 | subjects: 17 | - kind: ServiceAccount 18 | name: {{ .Release.Name }}-{{ .Chart.Name }} -------------------------------------------------------------------------------- /nauta-charts/experiment-operator/templates/run_crd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apiextensions.k8s.io/v1beta1 3 | kind: CustomResourceDefinition 4 | metadata: 5 | name: runs.aipg.intel.com 6 | spec: 7 | conversion: 8 | strategy: None 9 | group: aipg.intel.com 10 | names: 11 | kind: Run 12 | listKind: RunList 13 | plural: runs 14 | shortNames: 15 | - run 16 | singular: run 17 | preserveUnknownFields: true 18 | scope: Namespaced 19 | version: v1 20 | versions: 21 | - name: v1 22 | served: true 23 | storage: true -------------------------------------------------------------------------------- /nauta-charts/experiment-operator/templates/service_account.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ .Release.Name }}-{{ .Chart.Name }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app: {{ .Chart.Name }} 9 | release: {{ .Release.Name }} 10 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 11 | heritage: {{ .Release.Service }} 12 | -------------------------------------------------------------------------------- /nauta-charts/experiment-operator/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | image: 'mciesielintel/nauta-operator:beta' 3 | -------------------------------------------------------------------------------- /nauta-charts/experiments/Chart.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | appVersion: "1.0" 4 | description: NAUTA Custom Resource Definitions 5 | name: experiments 6 | version: 1.0.0 7 | -------------------------------------------------------------------------------- /nauta-charts/experiments/templates/admin-cluster-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: ClusterRole 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | metadata: 5 | name: {{ .Release.Name }}-{{ .Chart.Name }}-admin 6 | labels: 7 | app: "{{ .Release.Name }}" 8 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 9 | release: "{{ .Release.Name }}" 10 | heritage: "{{ .Release.Service }}" 11 | {{ .Values.api_group_name }}/admin: "true" 12 | rules: 13 | - apiGroups: 14 | - "*" 15 | resources: 16 | - experiments 17 | - runs 18 | - tfjobs 19 | verbs: 20 | - "*" 21 | -------------------------------------------------------------------------------- /nauta-charts/experiments/templates/user-cluster-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: ClusterRole 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | metadata: 5 | name: {{ .Release.Name }}-{{ .Chart.Name }}-view 6 | labels: 7 | app: "{{ .Release.Name }}" 8 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 9 | release: "{{ .Release.Name }}" 10 | heritage: "{{ .Release.Service }}" 11 | {{ .Values.api_group_name }}/view: "true" 12 | rules: 13 | - apiGroups: 14 | - "*" 15 | resources: 16 | - experiments 17 | - runs 18 | - tfjobs 19 | - workflows 20 | verbs: 21 | - get 22 | - list 23 | - watch 24 | -------------------------------------------------------------------------------- /nauta-charts/experiments/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/fluentd/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: fluentd 2 | version: 0.0.1 3 | sources: 4 | - https://github.com/fluent/fluentd-docker-image -------------------------------------------------------------------------------- /nauta-charts/fluentd/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | heritage: {{ .Release.Service }} 13 | data: 14 | {{ (.Files.Glob "config/fluent.conf").AsConfig | indent 2 }} 15 | -------------------------------------------------------------------------------- /nauta-charts/fluentd/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | heritage: {{ .Release.Service }} 13 | -------------------------------------------------------------------------------- /nauta-charts/fluentd/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/gitea/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | -------------------------------------------------------------------------------- /nauta-charts/gitea/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: gitea 2 | version: 1.6.1 3 | appVersion: 1.6.1 4 | description: Git with a cup of tea 5 | icon: https://docs.gitea.io/images/gitea.png 6 | keywords: 7 | - git 8 | - issue tracker 9 | - code review 10 | - wiki 11 | - gitea 12 | - gogs 13 | sources: 14 | - https://github.com/go-gitea/gitea 15 | - https://hub.docker.com/r/gitea/gitea/ 16 | maintainers: 17 | - name: John Felten 18 | email: john.felten@gmail.com 19 | -------------------------------------------------------------------------------- /nauta-charts/gitea/postgres-values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/nauta-charts/gitea/postgres-values.yaml -------------------------------------------------------------------------------- /nauta-charts/gui/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: gui 2 | version: 1.1.0 3 | -------------------------------------------------------------------------------- /nauta-charts/gui/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/ingress/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: ingress 3 | description: A NAUTA-GUI ingress 4 | version: 1.0.0 5 | appVersion: 0.1.0 6 | -------------------------------------------------------------------------------- /nauta-charts/ingress/templates/configmap.tcp.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-tcp 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/ingress/templates/configmap.udp.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-udp 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/ingress/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | data: 13 | proxy-body-size: "0" 14 | -------------------------------------------------------------------------------- /nauta-charts/ingress/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/ingress/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/kube-batch/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1alpha1 2 | description: The batch scheduler of Kubernetes 3 | name: kube-batch 4 | version: 1.0.0 5 | -------------------------------------------------------------------------------- /nauta-charts/kube-batch/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* vim: set filetype=mustache: */}} 2 | {{/* 3 | Expand the name of the chart. 4 | */}} 5 | {{- define "name" -}} 6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} 7 | {{- end -}} 8 | 9 | {{/* 10 | Create a default fully qualified app name. 11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 12 | */}} 13 | {{- define "fullname" -}} 14 | {{- $name := default .Chart.Name .Values.nameOverride -}} 15 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} 16 | {{- end -}} 17 | -------------------------------------------------------------------------------- /nauta-charts/kube-batch/templates/queue.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: scheduling.incubator.k8s.io/v1alpha1 2 | kind: Queue 3 | metadata: 4 | name: main 5 | spec: 6 | weight: 1 7 | -------------------------------------------------------------------------------- /nauta-charts/kube-batch/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/pytorch-operator/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: pytorch-operator 2 | version: 0.4.0 3 | -------------------------------------------------------------------------------- /nauta-charts/pytorch-operator/templates/admin-cluster-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: ClusterRole 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | metadata: 5 | name: {{ .Release.Name }}-{{ .Chart.Name }}-admin 6 | labels: 7 | app: "{{ .Release.Name }}" 8 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 9 | release: "{{ .Release.Name }}" 10 | heritage: "{{ .Release.Service }}" 11 | {{ .Values.api_group_name }}/admin: "true" 12 | rules: 13 | - apiGroups: 14 | - "kubeflow.org" 15 | resources: 16 | - pytorchjobs 17 | verbs: 18 | - "*" 19 | -------------------------------------------------------------------------------- /nauta-charts/pytorch-operator/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/pytorch-operator/templates/user-cluster-role.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: ClusterRole 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | metadata: 5 | name: {{ .Release.Name }}-{{ .Chart.Name }}-user 6 | labels: 7 | app: "{{ .Release.Name }}" 8 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 9 | release: "{{ .Release.Name }}" 10 | heritage: "{{ .Release.Service }}" 11 | {{ .Values.api_group_name }}/view: "true" 12 | rules: 13 | - apiGroups: 14 | - "kubeflow.org" 15 | resources: 16 | - pytorchjobs 17 | verbs: 18 | - get 19 | - list 20 | - watch 21 | -------------------------------------------------------------------------------- /nauta-charts/pytorch-operator/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | 4 | image: "nauta/pytorch-operator:v0.4.0" -------------------------------------------------------------------------------- /nauta-charts/redsocks/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: redsocks 2 | version: 1.0.0 3 | -------------------------------------------------------------------------------- /nauta-charts/redsocks/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/registry-nginx/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: registry-nginx 2 | version: 1.0.0 3 | -------------------------------------------------------------------------------- /nauta-charts/registry-nginx/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/samba/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: samba 2 | version: 1.0.0 3 | -------------------------------------------------------------------------------- /nauta-charts/samba/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | heritage: {{ .Release.Service }} 13 | -------------------------------------------------------------------------------- /nauta-charts/samba/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-charts/tf/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: tf 2 | version: 0.1.0 3 | -------------------------------------------------------------------------------- /nauta-charts/tf/templates/dashboard.serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-dashboard 5 | labels: 6 | app: {{ .Chart.Name }}-dashboard 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/tf/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Chart.Name }} 7 | release: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /nauta-charts/tf/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | api_group_name: aipg.intel.com 3 | -------------------------------------------------------------------------------- /nauta-containers/docker/kubernetes.repo: -------------------------------------------------------------------------------- 1 | 2 | [kubernetes] 3 | name=Kubernetes 4 | baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 5 | enabled=1 6 | gpgcheck=1 7 | repo_gpgcheck=1 8 | gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 9 | -------------------------------------------------------------------------------- /nauta-containers/elasticsearch-proxy/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | ADD elasticsearch_proxy.py /elasticsearch_proxy.py 5 | ADD requirements.txt /requirements.txt 6 | RUN pip install -r /requirements.txt 7 | 8 | WORKDIR / 9 | 10 | CMD gunicorn -b 0.0.0.0:9201 elasticsearch_proxy:app 11 | -------------------------------------------------------------------------------- /nauta-containers/elasticsearch-proxy/requirements.txt: -------------------------------------------------------------------------------- 1 | gunicorn==19.7.1 2 | Flask>=0.12.3 3 | PyJWT==1.4.0 4 | requests>=2.20.0 -------------------------------------------------------------------------------- /nauta-containers/kubectl/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | 3 | ADD kubernetes.repo /etc/yum.repos.d/kubernetes.repo 4 | 5 | RUN yum update -y && yum install -y kubectl 6 | -------------------------------------------------------------------------------- /nauta-containers/kubectl/kubernetes.repo: -------------------------------------------------------------------------------- 1 | [kubernetes] 2 | name=Kubernetes 3 | baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 4 | enabled=1 5 | gpgcheck=1 6 | repo_gpgcheck=1 7 | gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg -------------------------------------------------------------------------------- /nauta-containers/openvino-mo/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 as build 2 | 3 | RUN apt-get update && apt-get install -y git 4 | 5 | WORKDIR /root 6 | 7 | RUN git clone https://github.com/opencv/dldt.git 8 | WORKDIR /root/dldt 9 | RUN git checkout 2018_R5 10 | RUN mv model-optimizer /root 11 | 12 | FROM ubuntu:18.04 13 | 14 | WORKDIR /root 15 | 16 | RUN apt-get update && apt-get install -y python3-pip python3-venv libgfortran3 17 | 18 | COPY --from=build /root/model-optimizer /root/model-optimizer 19 | 20 | COPY requirements.txt nauta-requirements.txt 21 | RUN pip3 install --upgrade pip==20.0.2 22 | RUN pip3 install -r nauta-requirements.txt 23 | 24 | WORKDIR /root/model-optimizer 25 | -------------------------------------------------------------------------------- /nauta-containers/pytorch-base/3.7/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG METRICS_IMAGE 2 | FROM ${METRICS_IMAGE} as metrics 3 | 4 | FROM python:3.7-slim 5 | 6 | ENV PYTHONUNBUFFERED 1 7 | 8 | WORKDIR /root 9 | 10 | COPY --from=metrics /build-output/experiment_metrics-*.tar.gz / 11 | RUN pip install --ignore-installed /experiment_metrics-*.tar.gz 12 | 13 | ADD requirements.txt . 14 | 15 | RUN pip install -r requirements.txt 16 | -------------------------------------------------------------------------------- /nauta-containers/pytorch-base/3.7/requirements.txt: -------------------------------------------------------------------------------- 1 | https://download.pytorch.org/whl/cpu/torch-1.0.1.post2-cp37-cp37m-linux_x86_64.whl 2 | torchvision==0.2.2.post3 3 | tensorboardX==1.6 4 | pillow<7 5 | -------------------------------------------------------------------------------- /nauta-containers/redsocks/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | 3 | WORKDIR / 4 | RUN yum update -y && \ 5 | yum group install -y "Development Tools" && \ 6 | yum install -y libevent libevent-devel iptables openssl pkgconfig 7 | 8 | RUN git clone https://github.com/darkk/redsocks 9 | WORKDIR /redsocks 10 | RUN make 11 | RUN mv /redsocks/redsocks /usr/sbin/ 12 | 13 | ADD down.sh /down.sh 14 | ADD up.sh /up.sh 15 | ADD redsocks.conf /redsocks.conf 16 | 17 | ENV PORT 12345 18 | ENV IP 127.0.0.1 19 | ENV IGNORED_NETWORKS 10.0.0.0/16 20 | ENV INTERFACES cni0 21 | 22 | ENV SOCKS_IP 10.216.59.198 23 | ENV SOCKS_PORT 1080 24 | 25 | RUN chmod +x /up.sh /down.sh 26 | 27 | CMD /up.sh 28 | -------------------------------------------------------------------------------- /nauta-containers/redsocks/redsocks.conf: -------------------------------------------------------------------------------- 1 | base { 2 | log_debug = on; 3 | log_info = on; 4 | log = \"file:/redsocks.log\"; 5 | daemon = on; 6 | redirector = iptables; 7 | } 8 | 9 | redsocks { 10 | local_ip = ${IP}; 11 | local_port = ${PORT}; 12 | 13 | ip = ${SOCKS_IP}; 14 | port = ${SOCKS_PORT}; 15 | 16 | type = socks5; 17 | } 18 | -------------------------------------------------------------------------------- /nauta-containers/samba/kubernetes.repo: -------------------------------------------------------------------------------- 1 | 2 | [kubernetes] 3 | name=Kubernetes 4 | baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 5 | enabled=1 6 | gpgcheck=1 7 | repo_gpgcheck=1 8 | gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 9 | -------------------------------------------------------------------------------- /nauta-containers/tf-operator/.dockerignore: -------------------------------------------------------------------------------- 1 | Dockerfile -------------------------------------------------------------------------------- /nauta-registry-charts/registry/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | description: NAUTA registry definition 3 | name: registry 4 | version: 2.7.1 5 | -------------------------------------------------------------------------------- /nauta-user/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "1.0" 3 | description: NAUTA User Definition 4 | name: nauta-user 5 | version: 1.0.0 6 | -------------------------------------------------------------------------------- /nauta-user/templates/user.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: {{ .Values.api_group_name }}/v1 2 | kind: User 3 | metadata: 4 | name: "{{ required "NAUTA Username is required as parameter user" .Values.username }}" 5 | labels: 6 | app: "{{ .Chart.Name }}" 7 | release: "{{ .Release.Name }}" 8 | chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" 9 | heritage: "{{ .Release.Service }}" 10 | spec: 11 | -------------------------------------------------------------------------------- /nauta-user/values.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | api_group_name: aipg.intel.com 4 | -------------------------------------------------------------------------------- /platform-charts/admin/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: admin 3 | description: A NAUTA Admin User creation 4 | version: 1.0.0 5 | -------------------------------------------------------------------------------- /platform-charts/admin/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | labels: 5 | app: {{ .Release.Name }} 6 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 7 | release: {{ .Release.Name }} 8 | heritage: {{ .Release.Service }} 9 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 10 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 11 | name: {{ .Release.Name }}-{{ .Chart.Name }} 12 | namespace: {{ .Release.Namespace }} 13 | -------------------------------------------------------------------------------- /platform-charts/dashboard/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: dashboard 3 | description: A NAUTA-Lite core kubernetes-dashboard 4 | version: 0.1.0 5 | appVersion: 1.8.3 6 | -------------------------------------------------------------------------------- /platform-charts/dashboard/templates/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | labels: 5 | app: {{ .Release.Name }} 6 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 7 | release: {{ .Release.Name }} 8 | heritage: {{ .Release.Service }} 9 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 10 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 11 | name: {{ .Release.Name }}-{{ .Chart.Name }} 12 | type: Opaque 13 | -------------------------------------------------------------------------------- /platform-charts/dashboard/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | labels: 5 | app: {{ .Release.Name }} 6 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 7 | release: {{ .Release.Name }} 8 | heritage: {{ .Release.Service }} 9 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 10 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 11 | name: {{ .Release.Name }}-{{ .Chart.Name }} 12 | -------------------------------------------------------------------------------- /platform-charts/flannel/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: flannel 3 | description: A NAUTA-Lite core flannel networking 4 | version: 0.1.0 5 | appVersion: 0.9.1 6 | -------------------------------------------------------------------------------- /platform-charts/flannel/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /platform-charts/heapster/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: heapster 3 | description: A NAUTA-Lite core heapster 4 | version: 0.1.0 5 | appVersion: 1.4.2 6 | -------------------------------------------------------------------------------- /platform-charts/heapster/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /platform-charts/ingress/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: ingress 3 | description: A NAUTA-Lite core ingress 4 | version: 0.1.0 5 | appVersion: 0.11.0 6 | -------------------------------------------------------------------------------- /platform-charts/ingress/templates/configmap.tcp.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-tcp 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /platform-charts/ingress/templates/configmap.udp.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-udp 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /platform-charts/ingress/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | data: 13 | proxy-body-size: "0" 14 | -------------------------------------------------------------------------------- /platform-charts/ingress/templates/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | -------------------------------------------------------------------------------- /platform-charts/netfilter-fix/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: netfilter-fix 3 | description: Fix for clusterIP service issues due to netfilter settings 4 | version: 0.1.0 5 | -------------------------------------------------------------------------------- /platform-charts/nfs/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: nfs 3 | description: A NAUTA-Lite PV internal definition 4 | version: 0.1.0 5 | -------------------------------------------------------------------------------- /platform-charts/nfs/templates/input-pv.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-{{ .Release.Namespace }}-input 5 | labels: 6 | kind: internal 7 | type: input 8 | app: samba 9 | spec: 10 | accessModes: 11 | - ReadWriteMany 12 | - ReadWriteOnce 13 | capacity: 14 | storage: 32Gi 15 | nfs: 16 | path: {{ .Values.input }} 17 | server: {{ .Values.ip }} 18 | persistentVolumeReclaimPolicy: Retain 19 | storageClassName: "" 20 | -------------------------------------------------------------------------------- /platform-charts/nfs/templates/output-pv.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }}-{{ .Release.Namespace }}-output 5 | labels: 6 | kind: internal 7 | type: output 8 | app: samba 9 | spec: 10 | accessModes: 11 | - ReadWriteMany 12 | - ReadWriteOnce 13 | capacity: 14 | storage: 32Gi 15 | nfs: 16 | path: {{ .Values.output }} 17 | server: {{ .Values.ip }} 18 | persistentVolumeReclaimPolicy: Retain 19 | storageClassName: "" 20 | -------------------------------------------------------------------------------- /platform-charts/samba-forward/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: samba-forward 2 | version: 0.0.1 3 | -------------------------------------------------------------------------------- /platform-charts/skydns/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | name: skydns 3 | description: A NAUTA-Lite core dns 4 | version: 0.1.0 5 | appVersion: 0.9.1 6 | -------------------------------------------------------------------------------- /platform-charts/skydns/templates/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | addonmanager.kubernetes.io/mode: EnsureExists 7 | app: {{ .Release.Name }} 8 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 9 | release: {{ .Release.Name }} 10 | heritage: {{ .Release.Service }} 11 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 12 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 13 | -------------------------------------------------------------------------------- /platform-charts/skydns/templates/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: {{ .Release.Name }}-{{ .Chart.Name }} 5 | labels: 6 | app: {{ .Release.Name }} 7 | chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} 8 | release: {{ .Release.Name }} 9 | heritage: {{ .Release.Service }} 10 | nauta_release: {{ required "NAUTA Release name is required" .Values.global.nauta }} 11 | nauta_release_version: {{ required "NAUTA Release version is required" .Values.global.nauta_release }} 12 | kubernetes.io/cluster-service: "true" 13 | addonmanager.kubernetes.io/mode: Reconcile 14 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ansible==2.7.16 2 | docker-py 3 | yamllint==1.8.0 4 | netaddr 5 | openshift 6 | awscli==1.14.24 7 | boto==2.48.0 8 | boto3==1.5.29 9 | ruamel.yaml 10 | pyOpenSSL==17.5.0 11 | -------------------------------------------------------------------------------- /rpm-containers/cni/rpm/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE=shared/centos/rpm-packer 2 | 3 | FROM ${BASE_IMAGE} 4 | 5 | RUN curl -L https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz -o ./cni-plugins.tar.gz 6 | 7 | RUN mv ./cni-plugins.tar.gz ./SOURCES/cni-plugins.tar.gz 8 | 9 | ENV RPM_VERSION=0.7.1 10 | ENV RPM_RELEASE=0 11 | 12 | ADD cni-plugins.spec ./SPECS/ 13 | 14 | RUN build-rpm.sh cni-plugins ${OUTPUT}/ -------------------------------------------------------------------------------- /rpm-containers/consul/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG CONSUL_SOURCES_IMAGE=shared/build/consul 2 | ARG BASE_IMAGE=shared/centos/rpm-packer 3 | 4 | FROM ${CONSUL_SOURCES_IMAGE} as consul_sources_data 5 | FROM ${BASE_IMAGE} 6 | 7 | COPY --from=consul_sources_data /build-output/consul.tar.gz ./SOURCES/consul.tar.gz 8 | ADD consul.spec ./SPECS/ 9 | 10 | ENV RPM_VERSION=1.1.0 11 | ENV RPM_RELEASE=0 12 | 13 | RUN build-rpm.sh consul ${OUTPUT}/ 14 | -------------------------------------------------------------------------------- /rpm-containers/docker-distribution/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG DOCKER_DISTRIBUTION_RPM_IMAGE=shared/build/rpm/docker-distribution 2 | 3 | FROM ${DOCKER_DISTRIBUTION_RPM_IMAGE} as docker_distribution_rpm_image 4 | FROM centos:7.6.1810 5 | 6 | WORKDIR /out 7 | 8 | COPY --from=docker_distribution_rpm_image /out/* . 9 | -------------------------------------------------------------------------------- /rpm-containers/helm/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE=shared/centos/rpm-packer 2 | FROM ${BASE_IMAGE} 3 | 4 | ENV RPM_VERSION=2.11.0 5 | ENV RPM_RELEASE=0 6 | 7 | RUN mkdir -p SOURCES && mkdir -p out && mkdir -p helm 8 | 9 | RUN wget --quiet https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz -O ./helm-amd64.tar.gz 10 | # unpack helm tarball, change directory structure and create tarball again 11 | RUN tar -xvf ./helm-amd64.tar.gz 12 | RUN cp -vR ./linux-amd64/* ./helm 13 | RUN tar -cf ./SOURCES/helm.tar.gz ./helm/* 14 | 15 | ADD ./*.spec ./SPECS/ 16 | 17 | RUN build-rpm.sh helm ${OUTPUT}/ 18 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/prepare/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | RUN curl -L https://github.com/kubernetes/kubernetes/releases/download/v1.15.3/kubernetes.tar.gz -o kubernetes.tar.gz 5 | RUN tar -xvf kubernetes.tar.gz && rm kubernetes.tar.gz 6 | 7 | RUN yes | ./kubernetes/cluster/get-kube-binaries.sh 8 | 9 | ENV RPM_VERSION=1.15.3 10 | ENV RPM_RELEASE=0 -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/all/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | ADD ./*.spec ./SPECS/ 5 | 6 | RUN build-rpm.sh kubernetes ${OUTPUT}/ 7 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/all/kubernetes.spec: -------------------------------------------------------------------------------- 1 | Summary: NAUTA Kubernetes metadata v%{_nauta_version} package 2 | Name: nauta-kubernetes 3 | Version: %{_nauta_version} 4 | Release: %{_nauta_release} 5 | License: Apache-2.0 6 | Group: Tools 7 | 8 | Requires: nauta-kubernetes-server = %{version} 9 | Requires: nauta-kubernetes-worker = %{version} 10 | Requires: nauta-kubernetes-client = %{version} 11 | 12 | %define debug_package %{nil} 13 | 14 | %description 15 | %{summary} 16 | 17 | %prep 18 | 19 | %build 20 | 21 | %install 22 | 23 | %clean 24 | 25 | %files 26 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/client/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | ADD ./*.spec ./SPECS/ 5 | 6 | RUN build-rpm.sh kubernetes-kubectl ${OUTPUT}/ && \ 7 | build-rpm.sh kubernetes-client ${OUTPUT}/ 8 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/client/kubernetes-client.spec: -------------------------------------------------------------------------------- 1 | Summary: NAUTA Kubernetes client metadata v%{_nauta_version} package 2 | Name: nauta-kubernetes-client 3 | Version: %{_nauta_version} 4 | Release: %{_nauta_release} 5 | License: Apache-2.0 6 | Group: Tools 7 | 8 | Requires: nauta-commons 9 | 10 | Requires: nauta-kubernetes-kubectl = %{version} 11 | 12 | %define debug_package %{nil} 13 | 14 | %description 15 | %{summary} 16 | 17 | %prep 18 | 19 | %build 20 | 21 | %install 22 | 23 | %clean 24 | 25 | %files 26 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/server/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | ADD ./*.spec ./SPECS/ 5 | 6 | RUN mv /root/rpmbuild/kubernetes/server/kubernetes-server-linux-amd64.tar.gz ./SOURCES/kubernetes-server-linux-amd64.tar.gz 7 | 8 | RUN build-rpm.sh kubernetes-apiserver ${OUTPUT}/ && \ 9 | build-rpm.sh kubernetes-controller-manager ${OUTPUT}/ && \ 10 | build-rpm.sh kubernetes-scheduler ${OUTPUT}/ && \ 11 | build-rpm.sh kubernetes-server ${OUTPUT}/ 12 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/server/kubernetes-server.spec: -------------------------------------------------------------------------------- 1 | Summary: NAUTA Kubernetes server metadata v%{_nauta_version} package 2 | Name: nauta-kubernetes-server 3 | Version: %{_nauta_version} 4 | Release: %{_nauta_release} 5 | License: Apache-2.0 6 | Group: Tools 7 | 8 | Requires: nauta-commons 9 | 10 | Requires: nauta-kubernetes-apiserver = %{version} 11 | Requires: nauta-kubernetes-scheduler = %{version} 12 | Requires: nauta-kubernetes-controller-manager = %{version} 13 | 14 | %define debug_package %{nil} 15 | 16 | %description 17 | %{summary} 18 | 19 | %prep 20 | 21 | %build 22 | 23 | %install 24 | 25 | %clean 26 | 27 | %files 28 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/worker/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | ADD ./*.spec ./SPECS/ 5 | 6 | RUN mv /root/rpmbuild/kubernetes/server/kubernetes-server-linux-amd64.tar.gz ./SOURCES/kubernetes-server-linux-amd64.tar.gz 7 | 8 | RUN build-rpm.sh kubernetes-kubelet ${OUTPUT}/ && \ 9 | build-rpm.sh kubernetes-worker ${OUTPUT}/ 10 | -------------------------------------------------------------------------------- /rpm-containers/kubernetes/rpm/worker/kubernetes-worker.spec: -------------------------------------------------------------------------------- 1 | Summary: NAUTA Kubernetes worker metadata v%{_nauta_version} package 2 | Name: nauta-kubernetes-worker 3 | Version: %{_nauta_version} 4 | Release: %{_nauta_release} 5 | License: Apache-2.0 6 | Group: Tools 7 | 8 | Requires: nauta-commons 9 | 10 | Requires: nauta-kubernetes-kubelet = %{version} 11 | 12 | %define debug_package %{nil} 13 | 14 | %description 15 | %{summary} 16 | 17 | %prep 18 | 19 | %build 20 | 21 | %install 22 | 23 | %clean 24 | 25 | %files 26 | -------------------------------------------------------------------------------- /rpm-containers/nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG NGINX_RPM_IMAGE=shared/build/rpm/nginx 2 | 3 | FROM ${NGINX_RPM_IMAGE} as nginx_rpm_image 4 | FROM centos:7.6.1810 5 | 6 | WORKDIR /out 7 | 8 | COPY --from=nginx_rpm_image /out/* . 9 | -------------------------------------------------------------------------------- /rpm-containers/python/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE=shared/centos/rpm-packer 2 | ARG PYTHON2_PIP_RPM_IMAGE=shared/build/rpm/python2-pip 3 | 4 | FROM ${PYTHON2_PIP_RPM_IMAGE} as python2_pip_rpm_image 5 | FROM ${BASE_IMAGE} 6 | 7 | ENV RPM_VERSION=2.7 8 | ENV RPM_RELEASE=0 9 | 10 | RUN yum update -y && yum install -y python-devel python libffi-devel openssl-devel gcc gcc-c++ 11 | RUN curl "https://bootstrap.pypa.io/get-pip.py" | python && pip install -U pip==19.0.3 virtualenv==16.0.0 setuptools==39.2.0 wheel==0.31.1 12 | 13 | ADD ./*.spec ./SPECS/ 14 | 15 | RUN build-rpm.sh pip-repository ${OUTPUT}/ 16 | 17 | COPY --from=python2_pip_rpm_image /out/* ${OUTPUT}/ 18 | -------------------------------------------------------------------------------- /shared-containers/build/consul/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | 3 | RUN yum clean all && yum update -y && yum install -y which wget unzip pigz 4 | 5 | RUN mkdir -p /build-output/consul 6 | 7 | RUN wget --quiet https://releases.hashicorp.com/consul/1.1.0/consul_1.1.0_linux_amd64.zip -O /build-output/consul/consul-1.1.0_linux_amd64.zip 8 | 9 | RUN cd /build-output/consul && unzip consul-1.1.0_linux_amd64.zip 10 | 11 | RUN rm -rf /build-output/consul/consul-1.1.0_linux_amd64.zip 12 | 13 | RUN cd /build-output && \ 14 | tar -I pigz -cf consul.tar.gz consul/ 15 | -------------------------------------------------------------------------------- /shared-containers/build/rpm-downloader/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | 3 | # install prerequisites 4 | RUN yum -y update && yum install -y yum-utils device-mapper-persistent-data lvm2 5 | 6 | # setting external repositories 7 | ADD *.repo /etc/yum.repos.d/ 8 | RUN yum -y install epel-release 9 | RUN yum -y update 10 | 11 | ARG PACKAGE_NAME 12 | ARG PACKAGE_VERSION 13 | 14 | # set download directory 15 | WORKDIR /out 16 | 17 | # determine version of package and download 18 | RUN SEARCHED_PACKAGE=$(repoquery "$PACKAGE_NAME-*:$PACKAGE_VERSION*" | grep "$PACKAGE_NAME-[0-9]\{1,3\}:$PACKAGE_VERSION*") \ 19 | && echo $SEARCHED_PACKAGE \ 20 | && yumdownloader $SEARCHED_PACKAGE 21 | -------------------------------------------------------------------------------- /shared-containers/build/rpm-downloader/docker-ce.repo: -------------------------------------------------------------------------------- 1 | 2 | [docker-ce-stable] 3 | name=Docker CE Stable - $basearch 4 | baseurl=https://download.docker.com/linux/centos/7/$basearch/stable 5 | enabled=1 6 | gpgcheck=1 7 | gpgkey=https://download.docker.com/linux/centos/gpg 8 | 9 | -------------------------------------------------------------------------------- /shared-containers/build/rpm-downloader/nginx.repo: -------------------------------------------------------------------------------- 1 | [nginx-stable] 2 | name=nginx stable repo 3 | baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 4 | gpgcheck=1 5 | enabled=1 6 | gpgkey=https://nginx.org/keys/nginx_signing.key 7 | 8 | [nginx-mainline] 9 | name=nginx mainline repo 10 | baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ 11 | gpgcheck=1 12 | enabled=1 13 | gpgkey=https://nginx.org/keys/nginx_signing.key -------------------------------------------------------------------------------- /shared-containers/centos/build/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE=centos:7.6.1810 2 | FROM ${BASE_IMAGE} 3 | 4 | RUN yum clean all && yum update -y && yum install -y git gcc clang openssl-devel libpcap-devel libevent libevent-devel \ 5 | libffi-devel libcurl-devel gcc-c++ make \ 6 | pkgconfig sox-devel unzip wget vi @development rpmbuild createrepo \ 7 | libmpc-devel mpfr-devel gmp-devel zlib-devel* \ 8 | device-mapper device-mapper-devel btrfs-progs btrfs-progs-devel \ 9 | libnl3 libnl3-devel libseccomp libseccomp-devel systemd-devel \ 10 | libgudev1 libgudev1-devel pigz 11 | 12 | RUN mkdir /build-process /build-output 13 | WORKDIR /build-process 14 | -------------------------------------------------------------------------------- /shared-containers/centos/core/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM centos:7.6.1810 2 | 3 | RUN yum update -y && yum install -y centos-release-scl 4 | RUN yum-config-manager --enable centos-sclo-rh-testing 5 | RUN yum install -y epel-release 6 | 7 | CMD ["/bin/bash"] 8 | -------------------------------------------------------------------------------- /shared-containers/centos/java8/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | RUN yum clean all && yum update -y && yum install -y java-1.8.0-openjdk 5 | -------------------------------------------------------------------------------- /shared-containers/centos/python36/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | RUN yum clean all && yum update -y && yum install rh-python36 -y 5 | 6 | ENV PATH=$PATH:/opt/rh/rh-python36/root/usr/bin 7 | ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/rh/rh-python36/root/usr/lib64 8 | ENV MANPATH=$MANPATH:/opt/rh/rh-python36/root/usr/share/man 9 | ENV PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/rh/rh-python36/root/usr/lib64/pkgconfig 10 | ENV XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}:/opt/rh/rh-python36/root/usr/share" 11 | 12 | RUN pip3.6 install -U pip==19.0.3 13 | -------------------------------------------------------------------------------- /shared-containers/centos/rpm-packer/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE=centos:7.6.1810 2 | FROM ${BASE_IMAGE} 3 | ARG USER_UID 4 | 5 | RUN yum clean all && yum update -y && yum install -y make curl wget unzip vim rpm-build createrepo pigz 6 | 7 | RUN if ! [[ $(getent passwd $USER_UID) ]] ; then adduser -u ${USER_UID} builder; fi 8 | 9 | RUN mkdir /root/rpmbuild/BUILD \ 10 | /root/rpmbuild/RPMS \ 11 | /root/rpmbuild/SOURCES \ 12 | /root/rpmbuild/SPECS \ 13 | /root/rpmbuild/SRPMS -p 14 | 15 | WORKDIR /root/rpmbuild 16 | 17 | ADD build-rpm.sh /usr/bin/ 18 | RUN chmod +x /usr/bin/build-rpm.sh 19 | 20 | ENV OUTPUT=/out 21 | 22 | RUN mkdir ${OUTPUT} 23 | -------------------------------------------------------------------------------- /shared-containers/docs/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | RUN mkdir -p /docs 5 | ADD ["./", "/docs/"] 6 | -------------------------------------------------------------------------------- /toolbox/checks/checks.mk: -------------------------------------------------------------------------------- 1 | ansible-syntax-check: $(ACTIVATE) 2 | # =============================================================================== 3 | # Please add ansible playbooks here" 4 | # =============================================================================== 5 | @echo skipped 6 | 7 | 8 | code-yamllint: $(ACTIVATE) 9 | @. $(ACTIVATE); yamllint . 10 | 11 | code-check-syntax: 12 | @$(MAKE) ansible-syntax-check 13 | @$(MAKE) code-yamllint 14 | 15 | code-check-license: 16 | mvn -f toolbox/checks/license_check.xml license:check -Dorg.slf4j.simpleLogger.defaultLogLevel=warning 17 | 18 | code-check-all: code-check-license code-check-syntax 19 | -------------------------------------------------------------------------------- /toolbox/checks/license_header_2019.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019 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 | -------------------------------------------------------------------------------- /toolbox/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | proxy_env: 4 | http_proxy: "" 5 | https_proxy: "" 6 | no_proxy: "" 7 | ssh_args_for_proxy: "" 8 | ssh_args_for_cmd_line: "" 9 | ssh_args_prefix_for_proxy: "nc" 10 | 11 | proxy: "{{ proxy_env }}" 12 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | module_lang = C 5 | callback_whitelist = profile_tasks 6 | forks = 50 7 | internal_poll_interval = 0.001 8 | 9 | [ssh_connection] 10 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 11 | pipelining = true 12 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/gcp-clean.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: localhost 4 | connection: local 5 | gather_facts: False 6 | vars: 7 | ansible_python_interpreter: "{{ local_python_interpreter }}" 8 | terraform_file: "gcp/{{ prefix }}.tfstate" 9 | local_terraform_file: "{{ workspace }}/terraform/{{ prefix }}/terraform.tfstate" 10 | local_terraform_dir: "{{ workspace }}/terraform/{{ prefix }}" 11 | roles: 12 | - role: terraform-clean 13 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/gcp-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | gcp: 4 | region: "europe-west1" 5 | zone: "europe-west1-b" 6 | 7 | external_username: "nauta" 8 | 9 | gateway_type: "n1-highmem-4" 10 | testnode_type: "n1-standard-2" 11 | nfs_type: "n1-standard-2" 12 | nfs_disk_size: "400" 13 | 14 | internal_username: "nauta" 15 | 16 | pool_type: "n1-standard-16" 17 | pool_size: "1" 18 | pool_min_cpu_platform: "Intel Skylake" 19 | 20 | generate_test_node: False 21 | testnode_image: "" 22 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/gateway/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Ensure ssh directory exists 4 | file: 5 | path: .ssh 6 | state: directory 7 | mode: 0700 8 | 9 | - name: Copy privatekey 10 | copy: 11 | src: "{{ local_terraform_dir }}/private" 12 | dest: .ssh/id_rsa 13 | mode: 0600 14 | 15 | - name: Copy publickey 16 | copy: 17 | src: "{{ local_terraform_dir }}/public" 18 | dest: .ssh/id_rsa.pub 19 | mode: 0600 20 | 21 | - name: Render config.yml 22 | vars: 23 | k8s: "{{ hostvars[groups['localhost'][0]].terraform_infra.outputs }}" 24 | template: 25 | src: config.yml.j2 26 | dest: /home/nauta/config.yml 27 | mode: 0444 28 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/gateway/templates/config.yml.j2: -------------------------------------------------------------------------------- 1 | external_ip: {{ k8s.gateway_ip.value }} 2 | instance_kubernetes_external_ip: {{ k8s.gateway_ip.value }} 3 | nauta_configuration: 4 | input_nfs: 5 | path: /export/input 6 | server: 10.137.0.2 7 | output_nfs: 8 | path: /export/output 9 | server: 10.137.0.2 10 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/kubernetes/templates/kubeconfig.j2: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | clusters: 3 | - cluster: 4 | certificate-authority-data: {{ k8s.k8s_cluster_ca_certificate.value }} 5 | server: {{ k8s.k8s_cluster_endpoint.value }} 6 | name: nauta 7 | contexts: 8 | - context: 9 | cluster: nauta 10 | namespace: kube-system 11 | user: nauta 12 | name: nauta 13 | current-context: nauta 14 | kind: Config 15 | preferences: {} 16 | users: 17 | - name: nauta 18 | user: 19 | password: {{ k8s.k8s_password.value }} 20 | username: {{ k8s.k8s_username.value }} 21 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/kubernetes/templates/kubernetes-forwarder.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Forwarder 3 | After=network.target network-online.target 4 | 5 | 6 | [Service] 7 | Type=simple 8 | 9 | Environment=KUBECONFIG=/root/.kube/config 10 | Environment=MASTER_IP={{ k8s.k8s_cluster_endpoint.value.replace('https://', '').replace('http://', '').split(':')[0] }} 11 | Restart=always 12 | RestartSec=5 13 | ExecStart=/usr/sbin/iptables-k8s-forwarder.sh 14 | RemainAfterExit=yes 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/nfs/templates/exports.j2: -------------------------------------------------------------------------------- 1 | /export 10.0.0.0/8(rw,sync,no_root_squash) 2 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/terraform-clean/templates: -------------------------------------------------------------------------------- 1 | ../terraform/templates -------------------------------------------------------------------------------- /toolbox/providers/gcp/roles/terraform/templates/cluster_info.yml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | gcp_cluster_info: 4 | gateway_ip: "{{ k8s.gateway_ip.value }}" 5 | {% if gcp.generate_test_node %} 6 | testnode_ip: "{{ k8s.testnode_ip.value }}" 7 | {% endif %} 8 | nfs_internal_ip: "{{ k8s.nfs_internal_ip.value }}" 9 | -------------------------------------------------------------------------------- /toolbox/providers/gcp/screenshots/x-screenshot-access-platform-installation-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/toolbox/providers/gcp/screenshots/x-screenshot-access-platform-installation-node.png -------------------------------------------------------------------------------- /toolbox/providers/gcp/screenshots/x-screenshot-create-platform-installation-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/intel/nauta/bbedb114a755cf1f43b834a58fc15fb6e3a4b291/toolbox/providers/gcp/screenshots/x-screenshot-create-platform-installation-node.png -------------------------------------------------------------------------------- /toolbox/providers/inventory: -------------------------------------------------------------------------------- 1 | [localhost] 2 | local ansible_connection=local 3 | -------------------------------------------------------------------------------- /toolbox/providers/vagrant/virtualbox/config.yml: -------------------------------------------------------------------------------- 1 | dns_servers: 2 | - 10.0.2.3 3 | #proxy: 4 | # http_proxy: http://proxy.example.com:123 5 | # https_proxy: http://proxy.example.com:123 6 | # no_proxy: localhost,.nauta,10.0.0.0/8,192.168.0.0/8,127.0.0.1 7 | 8 | #features: 9 | # redsocks: true 10 | # 11 | #features_config: 12 | # redsocks: 13 | # IP: 10.0.0.1 14 | # Port: 1080 15 | -------------------------------------------------------------------------------- /toolbox/providers/vagrant/virtualbox/inventory: -------------------------------------------------------------------------------- 1 | [master] 2 | master-0 ansible_ssh_host=192.168.50.10 ansible_ssh_user=nauta internal_interface=eth1 external_interface=eth1 local_data_device=/dev/sdb 3 | 4 | [worker] 5 | worker-0 ansible_ssh_host=192.168.50.11 ansible_ssh_user=nauta internal_interface=eth1 external_interface=eth1 6 | 7 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/files/remote_scripts/create_users_prerequisities.sh: -------------------------------------------------------------------------------- 1 | ../../../../providers/gcp/files/remote_scripts/compile_prerequisities.sh -------------------------------------------------------------------------------- /toolbox/support/gateway-users/gateway-users.mk: -------------------------------------------------------------------------------- 1 | 2 | create-gateway-users: $(ACTIVATE) $(WORKSPACE) $(ENV_GATEWAY_USERS) 3 | @. $(ACTIVATE); ANSIBLE_CONFIG=$(CURDIR)/toolbox/support/gateway-users/ansible.cfg $(ANSIBLE_PLAYBOOK) -i $(CURDIR)/toolbox/support/gateway-users/inventory \ 4 | $(CURDIR)/toolbox/support/gateway-users/gateway-workers.yml \ 5 | -e gateway_users_config_file=$(ENV_GATEWAY_USERS) \ 6 | -e pool_type=$(ENV_POOL_TYPE) \ 7 | -e local_python_interpreter=$(PYTHON) \ 8 | -e $(CURDIR)/toolbox/support/gateway-users/group_vars/all/admin-user.yml \ 9 | -e workspace=$(WORKSPACE) 10 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/gateway-workers.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "Configure gateway users" 4 | hosts: localhost 5 | become: True 6 | roles: 7 | - { role: gateway-users } 8 | - { role: nctl-client } 9 | - { role: nctl-users } 10 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/group_vars/all/admin-user.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | nauta_admin: "nauta" 4 | nauta_admin_home: "/home/nauta" 5 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/inventory: -------------------------------------------------------------------------------- 1 | [localhost] 2 | local ansible_connection=local 3 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Load a variable file based on the OS type. 4 | include_vars: "{{ ansible_distribution }}.yml" 5 | 6 | - name: Load gateway users definition 7 | include_vars: "{{ gateway_users_config_file }}" 8 | 9 | - name: "Create {{ worker_groupname }} group" 10 | group: 11 | name: "{{ worker_groupname }}" 12 | state: present 13 | 14 | - include_tasks: user.yml 15 | loop_control: 16 | loop_var: developer_user 17 | with_dict: "{{ gateway_users }}" 18 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/templates/docker.j2: -------------------------------------------------------------------------------- 1 | [Service] 2 | {% for key,value in proxy_env.iteritems() %} 3 | Environment="{{ key|upper }}={{ value }}" 4 | {% endfor %} 5 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/templates/ssh_conf.j2: -------------------------------------------------------------------------------- 1 | Host * 2 | StrictHostKeyChecking no 3 | UserKnownHostsFile=/dev/null 4 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/vars/CentOS.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | worker_home_prefix: "/home" 4 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/vars/MacOSX.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | worker_home_prefix: "/Users" 4 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/vars/Ubuntu.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | worker_home_prefix: "/home" 4 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/gateway-users/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | worker_groupname: "nautausers" 4 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/nctl-client/tasks/pack-parametrization.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "Pool resource roles for {{ pool_type }} and {{ pack_value_file.path }}" 4 | replace: 5 | path: "{{ pack_value_file.path }}" 6 | regexp: "{{ pack_item.old }}$" 7 | replace: "{{ pack_item.new }}" 8 | loop_control: 9 | loop_var: pack_item 10 | with_items: "{{ pool_resource_roles }}" 11 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/nctl-client/vars/Ubuntu.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | worker_home_prefix: "/home" 4 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/nctl-client/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | pack_transition: 4 | n1_standard_16: 5 | - 6 | old: "cpu: 38" 7 | new: "cpu: 7" 8 | - 9 | old: "cpu: 76" 10 | new: "cpu: 14" 11 | - 12 | old: "cpu: 20" 13 | new: "cpu: 3" 14 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/nctl-users/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Load gateway users definition 4 | include_vars: "{{ gateway_users_config_file }}" 5 | 6 | - include_tasks: user.yml 7 | loop_control: 8 | loop_var: developer_user 9 | with_dict: "{{ gateway_users }}" 10 | -------------------------------------------------------------------------------- /toolbox/support/gateway-users/roles/nctl-users/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | worker_groupname: "nautausers" 4 | -------------------------------------------------------------------------------- /tools/chart-composer/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=chart-$(NAME) 3 | include $(CURDIR)/../makelibs/commons.mk 4 | 5 | configured: $(BUILD_DIR) ENV_OUTPUT ENV_BUILD_CONFIG 6 | 7 | build: PLAYBOOK=$(CURDIR)/container.yml 8 | build: configured $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e @$(ENV_BUILD_CONFIG) -e input_package=$(INPUT_PACKAGE) 11 | -------------------------------------------------------------------------------- /tools/chart-composer/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/chart-composer/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Remove build dir 8 | file: 9 | path: "{{ build_dir }}" 10 | state: absent 11 | - name: Remove docker image 12 | docker_image: 13 | name: "nauta-repository:{{ VERSION_MAJOR }}.{{ VERSION_MINOR }}.{{ VERSION_NO }}-{{ VERSION_SUFFIX }}-{{ VERSION_ID }}" 14 | state: absent 15 | roles: 16 | - role: finalize 17 | -------------------------------------------------------------------------------- /tools/chart-composer/group_vars/all/inventory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | helm_url: https://storage.googleapis.com/kubernetes-helm/helm-v2.11.0-linux-amd64.tar.gz 4 | helm_sha: 02a4751586d6a80f6848b58e7f6bd6c973ffffadc52b4c06652db7def02773a1 5 | helm_local: "{{ build_dir }}/helm" 6 | -------------------------------------------------------------------------------- /tools/chart-composer/roles/finalize/tasks/chart-dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Create chart {{ name }} package in {{ spec.path }} 4 | shell: "{{ helm_local }} package -d {{ build_dir }}/charts/{{ package_name }}/charts {{ spec.path }} --home {{ build_dir }}/helm-cache" 5 | 6 | - name: Check if chart {{ name }}-{{ spec.version }}.tgz exists 7 | file: 8 | path: "{{ build_dir }}/charts/{{ package_name }}/charts/{{ name }}-{{ spec.version }}.tgz" 9 | -------------------------------------------------------------------------------- /tools/chart-composer/roles/finalize/templates/Chart.yaml: -------------------------------------------------------------------------------- 1 | name: {{ package_name }} 2 | version: {{ version }} 3 | -------------------------------------------------------------------------------- /tools/container-build/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=container 3 | include $(CURDIR)/../makelibs/commons.mk 4 | 5 | configured: ENV_BUILD_CONFIG $(BUILD_DIR) ENV_OUTPUT 6 | 7 | build: PLAYBOOK=$(CURDIR)/container.yml 8 | build: configured $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e input_package=$(INPUT_PACKAGE) -e build_logs=$(BUILD_LOGS) -e @$(ENV_BUILD_CONFIG) $(if $(BUILD_OPTIONS),-e @$(BUILD_OPTIONS),) 11 | -------------------------------------------------------------------------------- /tools/container-build/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/container-build/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Cleanup registry container 8 | docker_container: 9 | name: "{{ registry_name }}" 10 | state: absent 11 | timeout: "{{ docker_timeout }}" 12 | roles: 13 | - role: prepare 14 | - role: container-build 15 | - role: finalize 16 | -------------------------------------------------------------------------------- /tools/container-build/group_vars/all/default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | proxy: {} 4 | -------------------------------------------------------------------------------- /tools/container-build/group_vars/all/registry.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | docker_repository_cache: 4 | enabled: False 5 | schema: http 6 | # params below are ignored when 'external' flag is set to 'False' 7 | url: 127.0.0.1 8 | port: 80 9 | 10 | docker_repository_cache_registry: "{{ docker_repository_cache.url }}:{{ docker_repository_cache.port }}" 11 | docker_repository_cache_url: "{{ docker_repository_cache.schema }}://{{ docker_repository_cache.url }}:{{ docker_repository_cache.port }}" 12 | docker_version_prefix: nauta 13 | docker_timeout: 1200 14 | docker_nocache: "no" # building using local docker cache 15 | -------------------------------------------------------------------------------- /tools/container-build/roles/cache-registry-final/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Cleanup cache registry container 4 | docker_container: 5 | name: "{{ registry_cache_name }}" 6 | state: absent 7 | timeout: "{{ docker_timeout }}" 8 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/artifact.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Synchronize all files 4 | synchronize: 5 | src: "{{ build_dir }}/tmp/artifacts/" 6 | dest: "{{ artifacts_dir }}/" 7 | when: input_package | default(False) 8 | 9 | - name: Start artifact process if image have any artifacts 10 | vars: 11 | name: "{{ item.key }}" 12 | image: "{{ item.value }}" 13 | include_tasks: "artifact_prepare.yml" 14 | with_dict: "{{ images }}" 15 | when: 16 | - image.artifacts | default([]) | length > 0 17 | - not docker_defined_images[name] 18 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/artifact_file_fetch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Calculate dest 4 | set_fact: 5 | file_dest: "{{ artifacts_dir }}/{{ path.dest }}/{{ file | regex_replace('^' + path.src + '/', '') }}" 6 | 7 | - name: Ensure directory exists 8 | file: 9 | path: "{{ file_dest | dirname }}" 10 | state: directory 11 | 12 | - name: Fetch file from remote 13 | fetch: 14 | src: "{{ file }}" 15 | dest: "{{ file_dest }}" 16 | flat: True 17 | delegate_to: "{{ artifact_container }}" 18 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/artifact_list_fetch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Find all files to copy 4 | find: 5 | path: "{{ path.src | dirname }}" 6 | patterns: "{{ path.src | basename }}" 7 | recurse: True 8 | register: files 9 | delegate_to: "{{ artifact_container }}" 10 | 11 | - name: Copy all files 12 | vars: 13 | file: "{{ file_item.path }}" 14 | include_tasks: artifact_file_fetch.yml 15 | loop_control: 16 | loop_var: file_item 17 | with_items: "{{ files.files }}" 18 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/base.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Calculate base images for all images 4 | include_tasks: "{{ image.method }}/base.yml" 5 | when: not docker_defined_images[name] 6 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/build.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Set async task 4 | set_fact: 5 | docker_async_tasks: {} 6 | 7 | - name: Build all images 8 | vars: 9 | image: "{{ images[name] }}" 10 | include_tasks: "{{ image.method }}/build.yml" 11 | with_items: "{{ layer }}" 12 | when: (image.method == "pull") or (not docker_images_remote_exists[name]) 13 | loop_control: 14 | loop_var: name 15 | 16 | - name: Wait for tasks 17 | vars: 18 | name: "{{ item.key }}" 19 | task_id: "{{ item.value }}" 20 | include_tasks: wait.yml 21 | with_dict: "{{ docker_async_tasks }}" 22 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/build/remote_tag.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - set_fact: 4 | required_image_sha: [] 5 | 6 | - set_fact: 7 | required_image_sha: "{{ (required_image_sha | default([])) + [docker_images_remote_tags[item.value]] }}" 8 | with_dict: "{{ image.required | default({}) }}" 9 | 10 | - set_fact: 11 | image_sha: "{{ ([docker_images_local_tags[name]] + (required_image_sha | default([]))) | sort | join(' ') | hash('sha1') }}" 12 | 13 | - name: Add image definition 14 | set_fact: 15 | docker_images_remote_tags: "{{ docker_images_remote_tags | combine({ name: image_sha }) }}" 16 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/local_tag.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Calculate remote repository tags for all images 4 | include_tasks: "{{ image.method }}/local_tag.yml" 5 | when: not docker_defined_images[name] 6 | 7 | - name: Add image definition 8 | set_fact: 9 | docker_images_local_tags: "{{ docker_images_local_tags | combine({ name: docker_defined_data[name].local_checksum }) }}" 10 | when: docker_defined_images[name] 11 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/pull/base.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Base image is not required for pull method 4 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/pull/local_tag.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Add image definition 4 | set_fact: 5 | docker_images_local_tags: "{{ docker_images_local_tags | combine({ name: image.version }) }}" 6 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/pull/remote_tag.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Add image definition 4 | set_fact: 5 | docker_images_remote_tags: "{{ docker_images_remote_tags | combine({ name: image.version }) }}" 6 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/tasks/push.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Set async task 4 | set_fact: 5 | docker_async_tasks: {} 6 | 7 | - name: Push all images 8 | vars: 9 | name: "{{ item.key }}" 10 | image: "{{ item.value }}" 11 | include_tasks: "push_image.yml" 12 | with_dict: "{{ images }}" 13 | when: image.push | default(True) 14 | 15 | - name: Wait for tasks 16 | vars: 17 | name: "{{ item.key }}" 18 | task_id: "{{ item.value }}" 19 | include_tasks: wait.yml 20 | with_dict: "{{ docker_async_tasks }}" 21 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/templates/images.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | package_attached_images: 4 | {% for name, image in images.items() %} 5 | {{ name }}: 6 | remote_url: "{{ docker_repository_cache_registry }}/{{ docker_version_prefix }}/{{ name }}:{{ docker_images_remote_tags[name] }}" 7 | version: "{{ image.version }}" 8 | local_url: "{{ name }}:{{ image.version }}" 9 | local_checksum: "{{ docker_images_local_tags[name] }}" 10 | remote_checksum: "{{ docker_images_remote_tags[name] }}" 11 | {% endfor %} 12 | -------------------------------------------------------------------------------- /tools/container-build/roles/container-build/templates/images_no_cache.yaml.j2: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | package_attached_images: 4 | {% for name, image in images.items() %} 5 | {{ name }}: 6 | remote_url: "{{ docker_version_prefix }}/{{ name }}:{{ docker_images_remote_tags[name] }}" 7 | version: "{{ image.version }}" 8 | local_url: "{{ name }}:{{ image.version }}" 9 | local_checksum: "{{ docker_images_local_tags[name] }}" 10 | remote_checksum: "{{ docker_images_remote_tags[name] }}" 11 | {% endfor %} 12 | -------------------------------------------------------------------------------- /tools/container-build/roles/finalize/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Create tar 4 | shell: tar -cf {{ output }} --use-compress-program=pigz ./ 5 | args: 6 | chdir: "{{ build_dir }}/data" 7 | when: create_package | default(True) 8 | 9 | - name: Touch file 10 | file: 11 | path: "{{ output }}" 12 | state: touch 13 | when: not (create_package | default(True)) 14 | -------------------------------------------------------------------------------- /tools/container-build/tasks/wait.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Wait for task {{ name }} 4 | async_status: 5 | jid: "{{ task_id }}" 6 | changed_when: False 7 | register: task_state 8 | until: task_state.finished 9 | retries: "{{ retries | default(3600) }}" 10 | delay: "{{ delay | default(1) }}" 11 | -------------------------------------------------------------------------------- /tools/deployers/nauta/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | display_skipped_hosts = false 8 | 9 | [ssh_connection] 10 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s 11 | pipelining = true 12 | -------------------------------------------------------------------------------- /tools/deployers/nauta/fetch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - import_playbook: prepare.yml 4 | 5 | - import_playbook: finalize.yml 6 | -------------------------------------------------------------------------------- /tools/deployers/nauta/finalize.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run provisioner registry 4 | hosts: provisioners 5 | gather_facts: False 6 | roles: 7 | - role: fetch-admin 8 | 9 | - name: Kill unnecessary workspace pods inside cluster 10 | hosts: provisioners 11 | gather_facts: False 12 | roles: 13 | - role: workspace-kill 14 | -------------------------------------------------------------------------------- /tools/deployers/nauta/group_vars/all/global.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | elasticsearch: 4 | admin_username: esadmin 5 | admin_password: esadmin 6 | -------------------------------------------------------------------------------- /tools/deployers/nauta/group_vars/all/helm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | helm_timeout: 2400 3 | -------------------------------------------------------------------------------- /tools/deployers/nauta/group_vars/all/labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | message_label: "[nauta]" 4 | -------------------------------------------------------------------------------- /tools/deployers/nauta/group_vars/all/storage.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | storage_type: auto 4 | 5 | master_storage_selector: {} 6 | 7 | master_storage_path: /data 8 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/fetch-admin/templates/kubeconfig.yml.j2: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | clusters: 3 | - cluster: 4 | certificate-authority-data: "{{ nauta_admin_crt.stdout }}" 5 | server: "{{ kubectl_current_server }}" 6 | name: nauta-admin 7 | kind: Config 8 | preferences: {} 9 | users: 10 | - name: nauta-admin 11 | user: 12 | token: "{{ nauta_admin_token.stdout | b64decode }}" 13 | contexts: 14 | - context: 15 | cluster: nauta-admin 16 | namespace: "{{ nauta_admin_namespace.stdout | b64decode }}" 17 | user: nauta-admin 18 | name: nauta-admin 19 | current-context: nauta-admin 20 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/local/init/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Calculate runtime external ip" 4 | set_fact: 5 | runtime_kubernetes_external_name: "{{ external_ip | default ('') }}" 6 | 7 | - name: "{{ message_label }} Fail if external ip is not calculated" 8 | fail: 9 | msg: Unable to calculate external ip 10 | when: not runtime_kubernetes_external_name 11 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/nauta-install/tasks/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Install helm chart" 4 | environment: "{{ local_envs }}" 5 | shell: "{{ runtime_helm }} install --timeout {{ helm_timeout }} -n nauta --namespace nauta {{ runtime_nauta_chart }} --wait -f {{ workspace }}/nauta-{{ nauta_version }}.values.yaml" 6 | when: chart is changed 7 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/storage/auto/tasks/storage-local.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Calculate facts for local deployment" 4 | set_fact: 5 | detected_storage_path: "{{ hostvars[master_instance_data].local_data_path | default(master_storage_path) }}" 6 | detected_storage_selector: "{{ hostvars[master_instance_data].ansible_nodename }}" 7 | 8 | - name: "{{ message_label }} Set storage fact" 9 | set_fact: 10 | calculated_storage: 11 | type: "{{ detected_storage_type }}" 12 | local_path: "{{ detected_storage_path }}" 13 | local_selector: "{{ detected_storage_selector }}" 14 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/storage/auto/tasks/storage-pvc.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Set storage fact" 4 | set_fact: 5 | calculated_storage: 6 | type: "{{ detected_storage_type }}" 7 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/storage/local/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Set storage type" 4 | set_fact: 5 | detected_storage_type: local 6 | detected_storage_path: "{{ master_storage_path }}" 7 | detected_storage_selector: "{{ master_storage_selector }}" 8 | 9 | - name: "{{ message_label }} Set storage fact" 10 | set_fact: 11 | calculated_storage: 12 | type: "{{ detected_storage_type }}" 13 | local_path: "{{ detected_storage_path }}" 14 | local_selector: "{{ detected_storage_selector }}" 15 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/storage/pvc/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Set storage type" 4 | set_fact: 5 | detected_storage_type: pvc 6 | 7 | - name: "{{ message_label }} Set storage fact" 8 | set_fact: 9 | calculated_storage: 10 | type: "{{ detected_storage_type }}" 11 | -------------------------------------------------------------------------------- /tools/deployers/nauta/roles/workspace-kill/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Kill workspace pods inside cluster" 4 | environment: "{{ local_envs }}" 5 | shell: "{{ runtime_kubectl }} -n nauta delete deployment nauta-workspace-pod" 6 | -------------------------------------------------------------------------------- /tools/deployers/nauta/tasks/condition.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Run conditions" 4 | vars: 5 | conditions: "{{ item.condition }}" 6 | message: "{{ item.message }}" 7 | include_tasks: condition_test.yml 8 | with_items: "{{ verification_checks }}" 9 | -------------------------------------------------------------------------------- /tools/deployers/nauta/tasks/condition_test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Fail if test failed" 4 | fail: 5 | msg: "{{ message }}" 6 | when: conditions | bool 7 | -------------------------------------------------------------------------------- /tools/deployers/nauta/tasks/restart_hosts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Reboot instance 4 | shell: /usr/bin/systemd-run --on-active=5 --timer-property=AccuracySec=100ms /bin/systemctl reboot 5 | 6 | - name: Wait for connection 7 | wait_for_connection: 8 | delay: 20 9 | timeout: 600 10 | connect_timeout: 1 11 | sleep: 1 12 | register: host_on 13 | until: host_on|success 14 | retries: 5 15 | delay: 5 16 | -------------------------------------------------------------------------------- /tools/deployers/nauta/uninstall.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: clean up workers 4 | hosts: worker 5 | gather_facts: True 6 | become: True 7 | roles: 8 | - role: "uninstall-worker" 9 | 10 | - name: clean up master 11 | hosts: master 12 | gather_facts: True 13 | become: True 14 | roles: 15 | - role: "uninstall-master" 16 | -------------------------------------------------------------------------------- /tools/deployers/platform/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | display_skipped_hosts = false 8 | 9 | [ssh_connection] 10 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o ServerAliveInterval=60 -o ServerAliveCountMax=10 11 | pipelining = true 12 | 13 | [privilege_escalation] 14 | become_method = sudo 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/applications.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master[0] 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: applications 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/cluster.ca.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: all 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: cluster/ca/prepare 8 | 9 | - hosts: master[0] 10 | become: True 11 | become_user: cluster-master 12 | any_errors_fatal: True 13 | roles: 14 | - role: cluster/ca/init 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/cluster.cgroup.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: all 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: cluster/cgroup 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/cluster.consul.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: all 4 | become: True 5 | any_errors_fatal: True 6 | handlers: 7 | - name: Reload Systemd 8 | shell: systemctl daemon-reload 9 | - name: Restart Consul 10 | service: 11 | name: consul 12 | state: restarted 13 | roles: 14 | - role: cluster/consul 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/cluster.facts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: cluster/facts/prepare 8 | 9 | - hosts: master[0] 10 | become: True 11 | become_user: cluster-facts 12 | any_errors_fatal: True 13 | roles: 14 | - role: cluster/facts/verify 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/cluster.networking.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: all 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: cluster/networking 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/cluster.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - import_playbook: cluster.networking.yml 4 | - import_playbook: cluster.ca.yml 5 | - import_playbook: cluster.facts.yml 6 | - import_playbook: cluster.consul.yml 7 | - import_playbook: cluster.cgroup.yml 8 | - import_playbook: cluster.docker.yml 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/group_vars/all/labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | message_label: "[platform]" 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/group_vars/all/storage.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | local_data_path: /data 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/group_vars/all/system.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | supported_systems: 4 | RedHat: 5 | - "7.5" 6 | -------------------------------------------------------------------------------- /tools/deployers/platform/group_vars/all/yum.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | enabled_plugins: [] 4 | disabled_plugins: [] 5 | use_system_enabled_plugins: False 6 | calculated_enabled_plugins: "{{ enabled_plugins }}" 7 | calculated_disabled_plugins: "{% if use_system_enabled_plugins %}{{ disabled_plugins }}{% else %}*{% endif %}" 8 | 9 | enabled_repos: [] 10 | disabled_repos: [] 11 | use_system_enabled_repos: True 12 | calculated_enabled_repos: "{{ enabled_repos }}" 13 | calculated_disabled_repos: "{% if use_system_enabled_repos %}{{ disabled_repos }}{% else %}*{% endif %}" 14 | 15 | nauta_calculated_enabled_repos: "{{ calculated_enabled_repos + ['NAUTARepository'] }}" 16 | -------------------------------------------------------------------------------- /tools/deployers/platform/master.docker-registry.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master 4 | become: True 5 | any_errors_fatal: True 6 | handlers: 7 | - name: Reload Systemd 8 | shell: systemctl daemon-reload 9 | - name: Restart Docker Distribution 10 | service: 11 | name: docker-distribution 12 | state: restarted 13 | serial: # rolling update 14 | - 1 15 | roles: 16 | - role: master/docker-registry 17 | -------------------------------------------------------------------------------- /tools/deployers/platform/master.etcd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master 4 | become: True 5 | any_errors_fatal: True 6 | handlers: 7 | - name: Reload Systemd 8 | shell: systemctl daemon-reload 9 | - name: Restart Etcd 10 | service: 11 | name: etcd 12 | state: restarted 13 | serial: # keep always more than half masters in active mode 14 | - 1 15 | - 1 16 | - 2 17 | - 3 18 | - 5 19 | - 100% 20 | roles: 21 | - role: master/etcd 22 | -------------------------------------------------------------------------------- /tools/deployers/platform/master.loadbalancer.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master 4 | become: True 5 | any_errors_fatal: True 6 | handlers: 7 | - name: Reload Systemd 8 | shell: systemctl daemon-reload 9 | - name: Restart Nginx 10 | service: 11 | name: nginx 12 | state: restarted 13 | roles: 14 | - role: master/loadbalancer 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/master.local-storage.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: master/local-storage 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/master.nfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - hosts: master 4 | become: True 5 | any_errors_fatal: True 6 | roles: 7 | - role: master/nfs 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/master.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - import_playbook: master.local-storage.yml 4 | - import_playbook: master.nfs.yml 5 | - import_playbook: master.docker-registry.yml 6 | - import_playbook: master.etcd.yml 7 | - import_playbook: master.kubernetes.yml 8 | - import_playbook: master.loadbalancer.yml 9 | 10 | -------------------------------------------------------------------------------- /tools/deployers/platform/nauta.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - import_playbook: verification.yml 4 | - import_playbook: verify.yml 5 | - import_playbook: cluster.yml 6 | - import_playbook: master.yml 7 | - import_playbook: worker.yml 8 | - import_playbook: applications.yml 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/ca/init/templates/conf.j2: -------------------------------------------------------------------------------- 1 | [req] 2 | default_bits = 2048 3 | default_md = sha256 4 | distinguished_name = req_distinguished_name 5 | req_extensions = v3_req 6 | common_name = {{ common_name }} 7 | [req_distinguished_name] 8 | [ v3_req ] 9 | basicConstraints = CA:FALSE 10 | keyUsage = {{ key_usage | join(', ') }} 11 | {% if extended_key_usage is defined %} 12 | extendedKeyUsage = {{ extended_key_usage | join(', ') }} 13 | {% endif %} 14 | subjectAltName = @alt_names 15 | [alt_names] 16 | {% for env, value in subject_alt_name.items() %} 17 | {{ env }} = {{ value }} 18 | {% endfor %} 19 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/ca/prepare/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Verify rsync" 4 | include_tasks: yum_verify_install.yml 5 | vars: 6 | packages: 7 | - rsync 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/cgroup/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Verify libcgroup" 4 | include_tasks: yum_verify_install.yml 5 | vars: 6 | packages: 7 | - libcgroup 8 | - libcgroup-tools 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/cgroup/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: include_distribution.yml 4 | vars: 5 | distribution_file: install.yml 6 | 7 | - name: "{{ message_label }} Start and enable cgroup service" 8 | service: 9 | name: cgconfig 10 | state: started 11 | enabled: True 12 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Verify rsync" 4 | include_tasks: yum_nauta_install.yml 5 | vars: 6 | packages: 7 | - nauta-consul-1.1.0 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/agent.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "retry_join": [{% for host in groups["master"] %}"{{ hostvars[host].nauta_configuration.internal_interface.ipv4_address }}"{% if not loop.last %},{% endif %}{% endfor %}] 3 | } 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/apiservice.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "service": { 3 | "name": "kubernetes", 4 | "tags": ["apiservice"], 5 | "port": {{ kubernetes_network.internal_port }}, 6 | "checks": [ 7 | { 8 | "http": "https://{{ nauta_configuration.internal_interface.ipv4_address }}:{{ kubernetes_network.internal_port }}/healthz", 9 | "interval": "1s", 10 | "timeout": "1s", 11 | "tls_skip_verify": true 12 | } 13 | ] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/cluster.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "datacenter": "{{ nodes_domain }}", 3 | "domain": "{{ domain }}" 4 | } 5 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/config.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "data_dir" : "/var/consul", 3 | "disable_update_check" : true 4 | } 5 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/consul.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Consul agent ans server service 3 | After=network.target network-online.target 4 | 5 | 6 | [Service] 7 | User=consul 8 | Group=consul 9 | Type=notify 10 | Environment=GOMAXPROCS=4 11 | Restart=always 12 | ExecStart=/usr/bin/consul agent -config-dir=/etc/consul 13 | ExecReload=/bin/kill -HUP $MAINPID 14 | KillSignal=SIGINT 15 | LimitNOFILE=65536 16 | 17 | 18 | [Install] 19 | WantedBy=multi-user.target 20 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/dhclient.j2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | make_resolv_conf() { 3 | } 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/dns.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "ports": { 3 | "dns": 53 4 | }, 5 | "dns_config": { 6 | "enable_truncate": true 7 | }, 8 | "recursors" : [{% for dns in dns_servers %}"{{ dns }}"{% if not loop.last %},{% endif %}{% endfor %}] 9 | } 10 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/node.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "node_name": "{{ inventory_hostname }}", 3 | "advertise_addr": "{{ nauta_configuration.internal_interface.ipv4_address }}", 4 | "bind_addr": "{{ nauta_configuration.internal_interface.ipv4_address }}", 5 | "client_addr": "{{ nauta_configuration.internal_interface.ipv4_address }}", 6 | "addresses": { 7 | "http": "127.0.0.1", 8 | "https": "{{ nauta_configuration.internal_interface.ipv4_address }}" 9 | }, 10 | "ports": { 11 | "http": 8500, 12 | "https": 8500 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/registry.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "service": { 3 | "name": "registry", 4 | "tags": ["registry"], 5 | "port": 5000, 6 | "checks": [ 7 | { 8 | "http": "http://127.0.0.1:5001/debug/health", 9 | "interval": "1s", 10 | "timeout": "1s" 11 | } 12 | ] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/resolv.j2: -------------------------------------------------------------------------------- 1 | {% for host in groups['master'] %} 2 | nameserver {{ hostvars[host].nauta_configuration.internal_interface.ipv4_address }} 3 | {% endfor %} 4 | {% if global_dns_search_domains | length > 0 %} 5 | search {{ global_dns_search_domains | join(' ') }} 6 | {% endif %} 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/server.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "server": true, 3 | "leave_on_terminate": true, 4 | "bootstrap_expect": {{ groups['master'] | length }} 5 | } 6 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/consul/templates/ssl.json.j2: -------------------------------------------------------------------------------- 1 | { 2 | "ca_file": "/etc/consul/ssl/ca.pem", 3 | "cert_file": "/etc/consul/ssl/node.crt", 4 | "key_file": "/etc/consul/ssl/node.key", 5 | "verify_incoming": true, 6 | "verify_outgoing": true 7 | } 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/docker/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Verify rsync" 4 | include_tasks: yum_nauta_install.yml 5 | vars: 6 | packages: 7 | - docker-ce 8 | task_handlers: 9 | - Reload Systemd 10 | - Restart Docker 11 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/docker/templates/consul.conf.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | After=consul.service 3 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/docker/templates/proxy.conf.j2: -------------------------------------------------------------------------------- 1 | [Service] 2 | {% for key in proxy.keys() | list | sort %} 3 | Environment="{{ key }}={{ proxy[key] }}" 4 | {% endfor %} 5 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/docker/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | docker_log_driver_settings: 4 | max_size: 5g 5 | max_file: 1 6 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/facts/prepare/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Verify rsync" 4 | include_tasks: yum_verify_install.yml 5 | vars: 6 | packages: 7 | - rsync 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/facts/prepare/templates/config.j2: -------------------------------------------------------------------------------- 1 | {% for item in groups['master'] %} 2 | Host facts-{{ item }} 3 | Hostname {{ hostvars[item].nauta_configuration.internal_interface.ipv4_address }} 4 | User cluster-facts 5 | PreferredAuthentications publickey 6 | IdentityFile ~/.ssh/id_rsa 7 | StrictHostKeyChecking no 8 | GlobalKnownHostsFile=/dev/null 9 | UserKnownHostsFile=/dev/null 10 | {% endfor %} 11 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/facts/verify/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include: synchronize-facts.yml 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/networking/tasks/RedHat/configure.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Disable services" 4 | service: 5 | name: "{{ item }}" 6 | state: stopped 7 | enabled: False 8 | changed_when: False 9 | failed_when: False 10 | with_items: 11 | - firewalld 12 | 13 | - name: "{{ message_label }} Remove yum packages" 14 | include_tasks: yum_remove.yml 15 | vars: 16 | packages: 17 | - firewall 18 | - firewalld 19 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/cluster/networking/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: include_distribution.yml 4 | vars: 5 | distribution_file: configure.yml 6 | 7 | - name: "{{ message_label }} Set outgoing ports so that they wont conflict with apps" 8 | sysctl: 9 | name: "{{ item.key }}" 10 | value: "{{ item.value }}" 11 | sysctl_set: yes 12 | reload: yes 13 | sysctl_file: /etc/sysctl.d/99-nautaadmin.conf 14 | with_dict: 15 | net.ipv4.ip_local_port_range: '45000 65535' 16 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/docker-registry/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Install package" 4 | include_tasks: yum_nauta_install.yml 5 | vars: 6 | packages: 7 | - "docker-distribution" 8 | handlers: 9 | - Reload Systemd 10 | - Restart Docker Distribution 11 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/docker-registry/templates/registry.yml.j2: -------------------------------------------------------------------------------- 1 | version: 0.1 2 | log: 3 | fields: 4 | service: registry 5 | storage: 6 | cache: 7 | layerinfo: inmemory 8 | filesystem: 9 | rootdirectory: /opt/nauta/registry 10 | maintenance: 11 | readonly: 12 | enabled: true 13 | http: 14 | addr: {{ nauta_configuration.internal_interface.ipv4_address }}:5000 15 | secret: REDACTED 16 | debug: 17 | addr: 127.0.0.1:5001 18 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/etcd/templates/etcd.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ETCD container 3 | After=docker.service 4 | Requires=docker.service 5 | 6 | After=consul.service 7 | Requires=consul.service 8 | 9 | [Service] 10 | TimeoutStartSec=0 11 | Restart=always 12 | ExecStart=/usr/bin/docker start -a etcd 13 | ExecStop=/usr/bin/docker stop -t 5 etcd 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Install package" 4 | include_tasks: yum_nauta_install.yml 5 | vars: 6 | packages: 7 | - nauta-kubernetes-server-1.15.3 8 | - nauta-kubernetes-client-1.15.3 9 | - nauta-helm-2.11.0 10 | handlers: 11 | - Reload Systemd 12 | - Restart Kubernetes Apiserver 13 | - Restart Kubernetes Scheduler 14 | - Restart Kubernetes Controller 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-apiserver-check.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes apiservice check 3 | After=kubernetes-apiserver.service 4 | Requires=kubernetes-apiserver.service 5 | 6 | [Service] 7 | TimeoutStartSec=0 8 | Type=oneshot 9 | RemainAfterExit=true 10 | ExecStart=/opt/nauta/kubernetes/check.sh http://{{ nauta_configuration.internal_interface.ipv4_address }}:{{ kubernetes_network.internal_port }}/healthz 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-apiserver.target.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes Apiserver target 3 | Requires=kubernetes-apiserver.service kubernetes-apiserver-check.service 4 | 5 | [Install] 6 | WantedBy=multi-user.target 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-check.sh.j2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | sleep 2 6 | 7 | while ! curl $1 > /dev/null 2>&1; do 8 | sleep 1 9 | done 10 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-controller-check.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes controller check 3 | After=kubernetes-controller.service 4 | Requires=kubernetes-controller.service 5 | 6 | [Service] 7 | TimeoutStartSec=0 8 | Type=oneshot 9 | RemainAfterExit=true 10 | ExecStart=/opt/nauta/kubernetes/check.sh http://127.0.0.1:10252/healthz 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-controller.target.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes Controller target 3 | Requires=kubernetes-controller.service kubernetes-controller-check.service 4 | 5 | [Install] 6 | WantedBy=multi-user.target 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-scheduler-check.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes scheduler check 3 | After=kubernetes-scheduler.service 4 | Requires=kubernetes-scheduler.service 5 | 6 | [Service] 7 | TimeoutStartSec=0 8 | Type=oneshot 9 | RemainAfterExit=true 10 | ExecStart=/opt/nauta/kubernetes/check.sh http://127.0.0.1:10251/healthz 11 | 12 | [Install] 13 | WantedBy=multi-user.target 14 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-scheduler.service.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes scheduler 3 | After=docker.service kubernetes-apiserver.target 4 | Requires=docker.service kubernetes-apiserver.target 5 | 6 | [Service] 7 | TimeoutStartSec=0 8 | Restart=always 9 | LimitNOFILE=65536 10 | ExecStart=/opt/nauta/kubernetes/kube-scheduler \ 11 | --kubeconfig=/etc/nauta-cluster/master/kubernetes/kubeconfigs/kube-scheduler.kubeconfig \ 12 | --v=0 \ 13 | --leader-elect=true \ 14 | {{ feature_gates }} 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-scheduler.target.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes Scheduler target 3 | Requires=kubernetes-scheduler.service kubernetes-scheduler-check.service 4 | 5 | [Install] 6 | WantedBy=multi-user.target 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/kubernetes/templates/kubernetes-server.target.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Kubernetes Server target 3 | Requires=kubernetes-scheduler.target kubernetes-controller.target kubernetes-apiserver.target 4 | 5 | [Install] 6 | WantedBy=multi-user.target 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/loadbalancer/templates/consul.conf.j2: -------------------------------------------------------------------------------- 1 | [Unit] 2 | After=consul.service 3 | 4 | [Service] 5 | Restart=always 6 | RestartSec=5s 7 | StartLimitBurst=50 8 | StartLimitInterval=300s 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/loadbalancer/templates/ingress.http.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | access_log /var/log/nginx/ingress.log; 4 | error_log /var/log/nginx/ingress.error; 5 | client_max_body_size 0; 6 | client_body_buffer_size 128k; 7 | location / { 8 | proxy_pass http://{{ kubernetes_network.svc_list.ingress.ip }}:80; 9 | proxy_http_version 1.1; 10 | proxy_set_header Upgrade $http_upgrade; 11 | proxy_set_header Connection $connection_upgrade; 12 | proxy_set_header Host $host; 13 | proxy_set_header X-Forwarded-For $remote_addr; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/loadbalancer/templates/ingress.stream.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 443; 3 | proxy_pass {{ kubernetes_network.svc_list.ingress.ip }}:443; 4 | } 5 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/loadbalancer/templates/samba.stream.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 445; 3 | proxy_pass {{ kubernetes_network.svc_list.samba.ip }}:445; 4 | } 5 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/local-storage/tasks/mount.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Create filesystem on device" 4 | filesystem: 5 | dev: "{{ local_data_device }}" 6 | fstype: xfs 7 | 8 | - name: "{{ message_label }} Mount data" 9 | mount: 10 | fstype: xfs 11 | path: "{{ local_data_path }}" 12 | src: "{{ local_data_device }}" 13 | state: mounted 14 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/master/nfs/templates/exports.j2: -------------------------------------------------------------------------------- 1 | {{ local_data_path }}/local/nfs *(rw,sync,no_root_squash) 2 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/prepare/python/tasks/RedHat/local-repository.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Install package" 4 | include_tasks: yum_nauta_install.yml 5 | vars: 6 | packages: 7 | - "nauta-pip-repository-2.7" 8 | - "python2-pip" 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/prepare/python/templates/pip.ini.j2: -------------------------------------------------------------------------------- 1 | [global] 2 | timeout = 60 3 | find-links = file:///opt/nauta/pip/ 4 | no-index = True 5 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/prepare/verify/access/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Wait for node access" 4 | changed_when: False 5 | raw: exit 0 6 | register: access 7 | until: access is success 8 | retries: 5 9 | delay: 2 10 | 11 | - name: "{{ message_label }} Check sudo access" 12 | become: True 13 | changed_when: False 14 | raw: exit 0 15 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/prepare/verify/envs/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Internal interface used for communication - by default external_interface is used 4 | internal_interface: "{{ external_interface }}" 5 | # Internal interface used for data transmission - by default data_interface is used 6 | data_interface: "{{ internal_interface }}" 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/prepare/verify/repository/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: include_distribution.yml 4 | vars: 5 | distribution_file: local-repository.yml 6 | 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/master/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: condition.yml 4 | 5 | - name: "{{ message_label }} Ensure that device is present" 6 | stat: 7 | path: "{{ local_data_device }}" 8 | register: local_data_device_obj 9 | 10 | - name: "{{ message_label }} Fail if device does not exists" 11 | fail: 12 | msg: "Device does not exists {{ local_data_device_obj }}" 13 | when: not local_data_device_obj.stat.exists 14 | 15 | - name: "{{ message_label }} Path is not a block device" 16 | fail: 17 | msg: "Path is not a block device {{ local_data_device_obj }}" 18 | when: not local_data_device_obj.stat.isblk 19 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/node/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: condition.yml 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/node/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | verification_checks: 4 | - message: "Can not find internal_interface {{ internal_interface }} on host. Found: {{ ansible_interfaces | join(', ') }}" 5 | condition: "{{ internal_interface not in ansible_interfaces }}" 6 | - message: "Can not find external_interface {{ external_interface }} on host. Found: {{ ansible_interfaces | join(', ') }}" 7 | condition: "{{ external_interface not in ansible_interfaces }}" 8 | 9 | required_parameters: 10 | - internal_interface 11 | - external_interface 12 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/pre/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: condition.yml 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/pre/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | verification_checks: 4 | - message: Master group is not defined in inventory 5 | condition: "{{ 'master' not in groups or groups['master'] | length == 0 }}" 6 | - message: Too many master hosts defined in inventory. Got {{ groups["master"] | default([]) | length }}, expected 1 7 | condition: "{{ 'master' not in groups or groups['master'] | length > 1 }}" 8 | 9 | required_parameters: [] 10 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/worker/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: condition.yml 4 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/verification/worker/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | verification_checks: [] 4 | 5 | required_parameters: [] 6 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/worker/kubernetes/worker.init/templates/kubelet.cgroup.conf.j2: -------------------------------------------------------------------------------- 1 | group kubepods { 2 | cpu { 3 | cpu.cfs_quota_us = {{ docker_reserved.cpus }}00000; 4 | } 5 | memory { 6 | memory.limit_in_bytes = {{ docker_reserved.memory }}M; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/worker/kubernetes/worker.install/tasks/RedHat/install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Install package" 4 | include_tasks: yum_nauta_install.yml 5 | vars: 6 | packages: 7 | - nauta-kubernetes-worker-1.15.3 8 | 9 | -------------------------------------------------------------------------------- /tools/deployers/platform/roles/worker/kubernetes/worker.install/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - include_tasks: include_distribution.yml 4 | vars: 5 | distribution_file: install.yml 6 | -------------------------------------------------------------------------------- /tools/deployers/platform/tasks/condition_test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Fail if test failed" 4 | fail: 5 | msg: "{{ message }}" 6 | when: conditions | bool 7 | -------------------------------------------------------------------------------- /tools/deployers/platform/tasks/default_distribution.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Fail on unknown distribution" 4 | tags: 5 | - always 6 | fail: 7 | msg: "Distribution {{ ansible_distribution }} {{ ansible_distribution_version }} is not supported" 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/tasks/synchronize-facts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Synchronize" 4 | become_user: cluster-facts 5 | shell: "rsync -avhz --delete --progress /etc/nauta-facts/ facts-{{ item }}:/etc/nauta-facts/" 6 | changed_when: False 7 | with_items: "{{ groups['master'] }}" 8 | delegate_to: "{{ groups['master'][0] }}" 9 | when: 10 | - groups['master'][0] != item 11 | -------------------------------------------------------------------------------- /tools/deployers/platform/tasks/yum_remove.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Ensure remove of {{ packages | join(', ') }}" 4 | environment: "{{ proxy }}" 5 | yum: 6 | disable_plugin: "*" 7 | update_cache: "False" 8 | disablerepo: "*" 9 | name: "{{ packages }}" 10 | state: "absent" 11 | -------------------------------------------------------------------------------- /tools/deployers/platform/tasks/yum_verify_install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: "{{ message_label }} Ensure existence of {{ packages | join(', ') }}" 4 | environment: "{{ proxy }}" 5 | yum: 6 | disable_plugin: "*" 7 | update_cache: "False" 8 | disablerepo: "*" 9 | name: "{{ packages }}" 10 | state: "present" 11 | -------------------------------------------------------------------------------- /tools/deployers/platform/vanila.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - import_playbook: verification.yml 4 | - import_playbook: verify.yml 5 | - import_playbook: cluster.yml 6 | - import_playbook: master.yml 7 | - import_playbook: worker.yml 8 | -------------------------------------------------------------------------------- /tools/deployers/platform/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Verify node access 4 | gather_facts: False 5 | become: False 6 | hosts: all 7 | any_errors_fatal: True 8 | roles: 9 | - role: prepare/verify/access 10 | - role: prepare/verify/python 11 | 12 | - name: Verify node packages 13 | gather_facts: True 14 | become: True 15 | hosts: all 16 | any_errors_fatal: True 17 | roles: 18 | - role: prepare/verify/repository 19 | - role: prepare/verify/envs 20 | - role: prepare/python 21 | -------------------------------------------------------------------------------- /tools/deployers/platform/worker.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - import_playbook: worker.kubernetes.yml 4 | 5 | -------------------------------------------------------------------------------- /tools/deployers/release/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | command_warnings = False 8 | 9 | [ssh_connection] 10 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o ServerAliveInterval=60 -o ServerAliveCountMax=10 11 | pipelining = true 12 | 13 | [privilege_escalation] 14 | become_method = sudo 15 | -------------------------------------------------------------------------------- /tools/deployers/release/diagnose/diagnose.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run kubectl 4 | hosts: localhost 5 | roles: 6 | - kubectl-info 7 | 8 | - name: Run diagnostic tasks 9 | hosts: all 10 | roles: 11 | - system 12 | - filesystem 13 | - network 14 | -------------------------------------------------------------------------------- /tools/deployers/release/diagnose/roles/filesystem/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get directories info 3 | command: "ls -la {{ item }}" 4 | with_items: 5 | - /etc 6 | - /var 7 | - /var/lib 8 | - /usr/bin 9 | - /root 10 | become: yes 11 | ignore_errors: True 12 | register: dirs 13 | 14 | - name: Display directories info 15 | debug: 16 | msg: "{{ dirs }}" 17 | 18 | - name: Get mounted volumes info 19 | command: "mount -a" 20 | become: yes 21 | register: mounted_volumes 22 | 23 | - name: Display mounted volumes info 24 | debug: 25 | var: mounted_volumes.stdout_lines 26 | -------------------------------------------------------------------------------- /tools/deployers/release/diagnose/roles/network/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get open ports info 3 | command: "netstat -tulpn" 4 | register: open_ports 5 | 6 | - name: Display open ports info 7 | debug: 8 | var: open_ports.stdout_lines 9 | 10 | - name: Get iptables info 11 | command: "iptables -L" 12 | become: yes 13 | register: iptables_info 14 | 15 | - name: Display iptables info 16 | debug: 17 | var: iptables_info.stdout_lines 18 | 19 | - name: Get IP settings info 20 | command: "ifconfig -a" 21 | become: yes 22 | register: ip_info 23 | 24 | - name: Display IP info 25 | debug: 26 | var: ip_info 27 | -------------------------------------------------------------------------------- /tools/finalizers/bin/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=finalizer-bin 3 | include $(CURDIR)/../../makelibs/commons.mk 4 | 5 | configured: ENV_PLATFORM_PACKAGE $(BUILD_DIR) ENV_OUTPUT 6 | 7 | clean: 8 | if docker ps -a | grep release-builder- > /dev/null; then docker ps -a | grep release-builder- | cut -d ' ' -f 1 | xargs -n 128 docker rm -f; fi 9 | docker rm -rf $(BUILD_DIR) 10 | 11 | build: PLAYBOOK=$(CURDIR)/container.yml 12 | build: configured $(ACTIVATE) 13 | @echo $(BUILD_DIR) 14 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e package=$(ENV_PLATFORM_PACKAGE) 15 | -------------------------------------------------------------------------------- /tools/finalizers/bin/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/finalizers/bin/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Remove build dir 8 | file: 9 | path: "{{ build_dir }}" 10 | state: absent 11 | roles: 12 | - role: finalize 13 | -------------------------------------------------------------------------------- /tools/finalizers/nauta/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=finalizer-nauta 3 | include $(CURDIR)/../../makelibs/commons.mk 4 | 5 | configured: ENV_PLATFORM_PACKAGE $(BUILD_DIR) ENV_OUTPUT ENV_DEPLOYER ENV_CHART ENV_BUILD_CONFIG 6 | 7 | build: PLAYBOOK=$(CURDIR)/container.yml 8 | build: configured $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e deployer=$(ENV_DEPLOYER) -e package=$(ENV_PLATFORM_PACKAGE) -e chart=$(ENV_CHART) -e @$(ENV_BUILD_CONFIG) 11 | -------------------------------------------------------------------------------- /tools/finalizers/nauta/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/finalizers/nauta/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Remove build dir 8 | file: 9 | path: "{{ build_dir }}" 10 | state: absent 11 | - name: Remove docker image 12 | docker_image: 13 | name: "nauta-repository:{{ VERSION_MAJOR }}.{{ VERSION_MINOR }}.{{ VERSION_NO }}-{{ VERSION_SUFFIX }}-{{ VERSION_ID }}" 14 | state: absent 15 | roles: 16 | - role: finalize 17 | -------------------------------------------------------------------------------- /tools/finalizers/nauta/roles/finalize/templates/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | FROM ${BASE_IMAGE} 3 | 4 | ADD docker.tar.gz /var/lib/registry 5 | 6 | ADD registry.yml /etc/docker/registry/config.yml 7 | -------------------------------------------------------------------------------- /tools/finalizers/nauta/roles/finalize/templates/registry.yml.j2: -------------------------------------------------------------------------------- 1 | version: 0.1 2 | log: 3 | fields: 4 | service: registry 5 | storage: 6 | cache: 7 | layerinfo: inmemory 8 | filesystem: 9 | rootdirectory: /var/lib/registry 10 | maintenance: 11 | readonly: 12 | enabled: true 13 | http: 14 | addr: :5000 15 | secret: NAUTAREGISTRY 16 | debug: 17 | addr: 127.0.0.1:5001 18 | -------------------------------------------------------------------------------- /tools/finalizers/platform/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=finalizer-platform 3 | include $(CURDIR)/../../makelibs/commons.mk 4 | 5 | configured: ENV_PLATFORM_PACKAGE $(BUILD_DIR) ENV_OUTPUT ENV_DEPLOYER ENV_CHART ENV_RPM_PACKAGE 6 | 7 | build: PLAYBOOK=$(CURDIR)/container.yml 8 | build: configured $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e deployer=$(ENV_DEPLOYER) -e package=$(ENV_PLATFORM_PACKAGE) -e chart=$(ENV_CHART) -e rpms=$(ENV_RPM_PACKAGE) 11 | -------------------------------------------------------------------------------- /tools/finalizers/platform/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/finalizers/platform/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Remove build dir 8 | file: 9 | path: "{{ build_dir }}" 10 | state: absent 11 | roles: 12 | - role: finalize 13 | -------------------------------------------------------------------------------- /tools/finalizers/release/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=finalizer-platform 3 | include $(CURDIR)/../../makelibs/commons.mk 4 | 5 | configured: ENV_PLATFORM_PACKAGE ENV_NAUTA_PACKAGE $(BUILD_DIR) ENV_OUTPUT ENV_BIN_PACKAGE ENV_DEPLOYER 6 | 7 | build: PLAYBOOK=$(CURDIR)/container.yml 8 | build: configured $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e platform_package=$(ENV_PLATFORM_PACKAGE) \ 11 | -e nauta_package=$(ENV_NAUTA_PACKAGE) -e bin_package=$(ENV_BIN_PACKAGE) -e deployer=$(ENV_DEPLOYER) 12 | -------------------------------------------------------------------------------- /tools/finalizers/release/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/finalizers/release/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Remove build dir 8 | file: 9 | path: "{{ build_dir }}" 10 | state: absent 11 | roles: 12 | - role: finalize 13 | -------------------------------------------------------------------------------- /tools/finalizers/rpm/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=finalizer-rpm 3 | include $(CURDIR)/../../makelibs/commons.mk 4 | 5 | configured: $(BUILD_DIR) ENV_RPM_PACKAGE ENV_OUTPUT ENV_BUILD_CONFIG 6 | 7 | build: PLAYBOOK=$(CURDIR)/container.yml 8 | build: configured $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e output=$(ENV_OUTPUT) -e rpm_package=$(ENV_RPM_PACKAGE) -e platform_package=$(ENV_PLATFORM_PACKAGE) -e @$(ENV_BUILD_CONFIG) 11 | -------------------------------------------------------------------------------- /tools/finalizers/rpm/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/finalizers/rpm/container.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | handlers: 7 | - name: Remove finalizer container 8 | docker_container: 9 | name: "finalizer-{{ build_name }}-{{ user | regex_findall('[A-Za-z]') | join('') }}-{{ version }}" 10 | state: absent 11 | stop_timeout: 0 12 | force_kill: True 13 | - name: Remove build dir 14 | file: 15 | path: "{{ build_dir }}" 16 | state: absent 17 | roles: 18 | - role: finalize 19 | -------------------------------------------------------------------------------- /tools/finalizers/rpm/group_vars/all/common.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | common_required: [] 4 | -------------------------------------------------------------------------------- /tools/finalizers/rpm/roles/finalize/tasks/build_rpm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Create rpms 4 | shell: rpmbuild -bb /data/rpmbuild/SPECS/{{ item }}.spec 5 | delegate_to: "{{ container_name }}" 6 | register: build_async 7 | failed_when: "'ansible_job_id' not in build_async" 8 | async: 1800 9 | poll: 0 10 | 11 | - set_fact: 12 | async_tasks: "{{ async_tasks | combine({item: build_async.ansible_job_id}) }}" 13 | -------------------------------------------------------------------------------- /tools/finalizers/rpm/tasks/wait.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Wait for task {{ name }} 4 | async_status: 5 | jid: "{{ task_id }}" 6 | changed_when: False 7 | register: task_state 8 | until: task_state.finished 9 | retries: "{{ retries | default(3600) }}" 10 | delay: "{{ delay | default(1) }}" 11 | delegate_to: "{{ container_name }}" 12 | -------------------------------------------------------------------------------- /tools/initializers/deps/Makefile: -------------------------------------------------------------------------------- 1 | PLATFORM_BUILD_DEPS = python3 virtualenv tar pigz docker git 2 | 3 | check-platform-dependencies: 4 | LOOP := $(foreach exec,$(PLATFORM_BUILD_DEPS),$(if $(shell which $(exec)),$(info $(exec) dependency installed),$(error $(exec) seems to be not installed))) 5 | -------------------------------------------------------------------------------- /tools/initializers/platform/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR)/../../ 2 | GLOBAL_WORKSPACE=$(CURDIR)/../../.workspace 3 | WORKSPACE_NAME:=initializers 4 | include $(CURDIR)/../../makelibs/commons.mk 5 | 6 | 7 | init: PLAYBOOK=$(CURDIR)/initialize.yml 8 | init: $(ACTIVATE) 9 | @echo $(BUILD_DIR) 10 | @$(ANSIBLE_PLAYBOOK_RUN) -e build_logs=$(BUILD_LOGS) 11 | -------------------------------------------------------------------------------- /tools/initializers/platform/ansible.cfg: -------------------------------------------------------------------------------- 1 | [defaults] 2 | host_key_checking = False 3 | timeout = 120 4 | callback_whitelist = profile_tasks 5 | forks = 20 6 | internal_poll_interval = 0.001 7 | 8 | [ssh_connection] 9 | ssh_args = -o GSSAPIAuthentication=no -o ControlMaster=auto -o ControlPersist=60s -o PreferredAuthentications=publickey 10 | pipelining = true 11 | -------------------------------------------------------------------------------- /tools/initializers/platform/initialize.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Run local tasks 4 | hosts: localhost 5 | become: False 6 | roles: 7 | - role: cpu-validation 8 | - role: gather-info 9 | -------------------------------------------------------------------------------- /tools/initializers/platform/roles/cpu-validation/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Get CPU flags 3 | shell: "cat /proc/cpuinfo | grep flags" 4 | register: cpuflags 5 | 6 | - name: Intersect required flags with flags avaible on CPU 7 | set_fact: 8 | flags: "{{ required_flags | intersect(cpuflags.stdout_lines[0].split()) }}" 9 | 10 | - fail: 11 | msg: "Your CPU is not supported. Please check 'Hardware Requirements' section in 'How to Build Nauta' doc" 12 | when: flags | length != required_flags | length 13 | -------------------------------------------------------------------------------- /tools/initializers/platform/roles/cpu-validation/vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | required_flags: ["avx", "sse", "sse2", "ssse3", "sse4_1", "sse4_2"] 3 | -------------------------------------------------------------------------------- /tools/makelibs/inventory: -------------------------------------------------------------------------------- 1 | [localhost] 2 | local ansible_connection=local 3 | 4 | [localhost:vars] 5 | ansible_python_interpreter={{ default_ansible_python_interpreter }} 6 | -------------------------------------------------------------------------------- /tools/push/Makefile: -------------------------------------------------------------------------------- 1 | DIRECTORY:=$(CURDIR) 2 | WORKSPACE_NAME:=rpms 3 | include $(CURDIR)/../makelibs/commons.mk 4 | 5 | configured: ENV_SRC ENV_DEST ENV_OUTPUT_ARTIFACT_DIRECTORY 6 | 7 | build: configured $(ACTIVATE) 8 | mkdir -p $(ENV_OUTPUT_ARTIFACT_DIRECTORY)/nauta/ 9 | cp -r $(ENV_SRC) $(ENV_OUTPUT_ARTIFACT_DIRECTORY)/nauta/ 10 | -------------------------------------------------------------------------------- /tools/requirements.txt: -------------------------------------------------------------------------------- 1 | ansible==2.7.16 2 | docker==3.3.0 3 | jmespath==0.9.3 4 | netaddr==0.7.19 5 | boto3==1.7.13 6 | -------------------------------------------------------------------------------- /tools/shared-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | local_images: {} 4 | --------------------------------------------------------------------------------