├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── microservices ├── ace_agent │ ├── 4.0 │ │ ├── README.md │ │ ├── clients │ │ │ ├── chat_client │ │ │ │ ├── chat_client.py │ │ │ │ └── requirements.txt │ │ │ ├── event_client │ │ │ │ ├── event_client.py │ │ │ │ ├── requirements.txt │ │ │ │ └── style.css │ │ │ └── speech_client │ │ │ │ ├── requirements.txt │ │ │ │ ├── setup.sh │ │ │ │ └── speech_client.py │ │ ├── deploy │ │ │ ├── docker │ │ │ │ ├── .env │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── docker_init.sh │ │ │ │ └── dockerfiles │ │ │ │ │ ├── chat_engine.Dockerfile │ │ │ │ │ ├── nlp_server.Dockerfile │ │ │ │ │ └── plugin_server.Dockerfile │ │ │ ├── ucs_apps │ │ │ │ ├── chat_bot │ │ │ │ │ ├── food_ordering_bot │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ │ └── app.yaml │ │ │ │ │ ├── rag_bot │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ │ └── app.yaml │ │ │ │ │ └── stock_bot │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ │ └── app.yaml │ │ │ │ └── speech_bot │ │ │ │ │ ├── colang2_sample_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ │ ├── ddg_langchain_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ │ ├── food_ordering_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ │ ├── npc_bots │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ │ ├── rag_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ │ └── stock_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ └── wheel │ │ │ │ └── aceagent-4.0.0-py3-none-any.whl │ │ ├── openapi │ │ │ ├── chat_engine_openapi.json │ │ │ ├── nlp_server_openapi.json │ │ │ └── plugin_server_openapi.json │ │ ├── proto │ │ │ └── ace_agent.proto │ │ └── samples │ │ │ ├── chitchat_bot │ │ │ ├── chitchat_bot_config.yml │ │ │ ├── colang │ │ │ │ ├── bot.co │ │ │ │ ├── fallback.co │ │ │ │ ├── flows.co │ │ │ │ └── user.co │ │ │ ├── model_config.yaml │ │ │ └── speech_config.yaml │ │ │ ├── colang_2_sample_bot │ │ │ ├── actions.py │ │ │ ├── colang │ │ │ │ ├── ccl_simple_chat.co │ │ │ │ └── main.co │ │ │ ├── colang_2_sample_bot_config.yml │ │ │ ├── model_config.yaml │ │ │ └── speech_config.yaml │ │ │ ├── ddg_langchain_bot │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ ├── langchain_agent.py │ │ │ │ ├── requirements_dev.txt │ │ │ │ └── schemas.py │ │ │ └── speech_config.yaml │ │ │ ├── event_interface_tutorial_bot │ │ │ ├── colang │ │ │ │ ├── ccl.co │ │ │ │ └── main.co │ │ │ ├── event_interface_tutorial_bot_config.yml │ │ │ └── speech_config.yaml │ │ │ ├── food_ordering_bot │ │ │ ├── colang │ │ │ │ ├── cart.co │ │ │ │ ├── events.co │ │ │ │ ├── fallback.co │ │ │ │ ├── general.co │ │ │ │ ├── order.co │ │ │ │ └── query_menu.co │ │ │ ├── food_ordering_bot_config.yaml │ │ │ ├── model_config.yaml │ │ │ ├── plugin │ │ │ │ ├── __init__.py │ │ │ │ ├── all_gtc_items_with_diff_sizes_v3.json │ │ │ │ ├── cart_manager.py │ │ │ │ ├── data_format.py │ │ │ │ ├── menu_api.py │ │ │ │ ├── order_food.py │ │ │ │ └── requirements.txt │ │ │ ├── plugin_config.yaml │ │ │ ├── slots.yaml │ │ │ └── speech_config.yaml │ │ │ ├── npc_bots │ │ │ ├── elara │ │ │ │ ├── bot_config.yaml │ │ │ │ └── flows.co │ │ │ ├── jin │ │ │ │ ├── bot_config.yaml │ │ │ │ └── flows.co │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ └── prompt_former.py │ │ │ └── speech_config.yaml │ │ │ ├── nv_langchain_bot │ │ │ ├── docker-compose-milvus.yml │ │ │ ├── flows.co │ │ │ ├── langchain_bot_config.yml │ │ │ ├── plugin_config.yaml │ │ │ └── plugins │ │ │ │ ├── ingest.py │ │ │ │ ├── nv_langchain_rag.py │ │ │ │ └── requirements_dev.txt │ │ │ ├── plan_and_execute │ │ │ ├── flows.co │ │ │ ├── langgraph_bot_config.yaml │ │ │ ├── model_config.yaml │ │ │ ├── plugin │ │ │ │ ├── plan_and_execute.py │ │ │ │ ├── requirements_dev.txt │ │ │ │ └── schemas.py │ │ │ ├── plugin_config.yaml │ │ │ └── speech_config.yaml │ │ │ ├── rag_bot │ │ │ ├── flows.co │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ ├── rag.py │ │ │ │ └── schemas.py │ │ │ ├── rag_bot_config.yml │ │ │ └── speech_config.yaml │ │ │ ├── spanish_bot_nmt │ │ │ ├── colang │ │ │ │ ├── date.co │ │ │ │ ├── general.co │ │ │ │ ├── open_domain.co │ │ │ │ └── weather.co │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ └── spanish_bot_nmt.yml │ │ │ ├── stock_bot │ │ │ ├── cmudict_ipa.txt │ │ │ ├── colang │ │ │ │ ├── contextual_query.co │ │ │ │ ├── fallback.co │ │ │ │ ├── general.co │ │ │ │ ├── off_topic.co │ │ │ │ ├── profanity_rail.co │ │ │ │ ├── stock_faq.co │ │ │ │ └── stock_price.co │ │ │ ├── kb │ │ │ │ └── stock_faq.md │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ └── yahoo_fin.py │ │ │ ├── speech_config.yaml │ │ │ └── stock_bot_config.yml │ │ │ └── training │ │ │ ├── pipeline_intent_slot.yaml │ │ │ ├── pipeline_ner.yaml │ │ │ └── pipeline_text_classification.yaml │ └── 4.1 │ │ ├── README.md │ │ ├── clients │ │ ├── chat_client │ │ │ ├── chat_client.py │ │ │ └── requirements.txt │ │ ├── event_client │ │ │ ├── event_client.py │ │ │ ├── requirements.txt │ │ │ └── style.css │ │ └── speech_client │ │ │ ├── requirements.txt │ │ │ ├── setup.sh │ │ │ └── speech_client.py │ │ ├── deploy │ │ ├── docker │ │ │ ├── .env │ │ │ ├── docker-compose.yml │ │ │ ├── docker_init.sh │ │ │ └── dockerfiles │ │ │ │ ├── chat_engine.Dockerfile │ │ │ │ ├── nlp_server.Dockerfile │ │ │ │ └── plugin_server.Dockerfile │ │ ├── ucs_apps │ │ │ ├── chat_bot │ │ │ │ ├── food_ordering_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ ├── llm_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ ├── rag_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ │ └── stock_bot │ │ │ │ │ ├── README.md │ │ │ │ │ ├── app-params.yaml │ │ │ │ │ └── app.yaml │ │ │ └── speech_bot │ │ │ │ ├── ddg_langchain_bot │ │ │ │ ├── README.md │ │ │ │ ├── app-params.yaml │ │ │ │ └── app.yaml │ │ │ │ ├── food_ordering_bot │ │ │ │ ├── README.md │ │ │ │ ├── app-params.yaml │ │ │ │ └── app.yaml │ │ │ │ ├── llm_bot │ │ │ │ ├── README.md │ │ │ │ ├── app-params.yaml │ │ │ │ └── app.yaml │ │ │ │ ├── npc_bots │ │ │ │ ├── README.md │ │ │ │ ├── app-params.yaml │ │ │ │ └── app.yaml │ │ │ │ ├── rag_bot │ │ │ │ ├── README.md │ │ │ │ ├── app-params.yaml │ │ │ │ └── app.yaml │ │ │ │ └── stock_bot │ │ │ │ ├── README.md │ │ │ │ ├── app-params.yaml │ │ │ │ └── app.yaml │ │ └── wheel │ │ │ └── aceagent-4.1.0-py3-none-any.whl │ │ ├── openapi │ │ ├── chat_engine_openapi.json │ │ ├── nlp_server_openapi.json │ │ └── plugin_server_openapi.json │ │ ├── proto │ │ └── ace_agent.proto │ │ ├── samples │ │ ├── chitchat_bot │ │ │ ├── README.md │ │ │ ├── chitchat_bot_config.yml │ │ │ ├── colang │ │ │ │ └── main.co │ │ │ ├── model_config.yaml │ │ │ └── speech_config.yaml │ │ ├── colang_1.0 │ │ │ ├── chitchat_bot │ │ │ │ ├── README.md │ │ │ │ ├── chitchat_bot_config.yml │ │ │ │ ├── colang │ │ │ │ │ ├── bot.co │ │ │ │ │ ├── fallback.co │ │ │ │ │ ├── flows.co │ │ │ │ │ └── user.co │ │ │ │ ├── model_config.yaml │ │ │ │ └── speech_config.yaml │ │ │ ├── npc_bots │ │ │ │ ├── README.md │ │ │ │ ├── elara │ │ │ │ │ ├── bot_config.yaml │ │ │ │ │ └── flows.co │ │ │ │ ├── jin │ │ │ │ │ ├── bot_config.yaml │ │ │ │ │ └── flows.co │ │ │ │ ├── model_config.yaml │ │ │ │ ├── plugin_config.yaml │ │ │ │ ├── plugins │ │ │ │ │ └── prompt_former.py │ │ │ │ └── speech_config.yaml │ │ │ ├── rag_bot │ │ │ │ ├── README.md │ │ │ │ ├── flows.co │ │ │ │ ├── model_config.yaml │ │ │ │ ├── plugin_config.yaml │ │ │ │ ├── plugins │ │ │ │ │ ├── rag.py │ │ │ │ │ └── schemas.py │ │ │ │ ├── rag_bot_config.yml │ │ │ │ └── speech_config.yaml │ │ │ ├── spanish_bot_nmt │ │ │ │ ├── README.md │ │ │ │ ├── colang │ │ │ │ │ ├── date.co │ │ │ │ │ ├── general.co │ │ │ │ │ ├── open_domain.co │ │ │ │ │ └── weather.co │ │ │ │ ├── model_config.yaml │ │ │ │ ├── plugin_config.yaml │ │ │ │ └── spanish_bot_nmt.yml │ │ │ └── stock_bot │ │ │ │ ├── README.md │ │ │ │ ├── cmudict_ipa.txt │ │ │ │ ├── colang │ │ │ │ ├── contextual_query.co │ │ │ │ ├── fallback.co │ │ │ │ ├── general.co │ │ │ │ ├── off_topic.co │ │ │ │ ├── profanity_rail.co │ │ │ │ ├── stock_faq.co │ │ │ │ └── stock_price.co │ │ │ │ ├── kb │ │ │ │ └── stock_faq.md │ │ │ │ ├── model_config.yaml │ │ │ │ ├── plugin_config.yaml │ │ │ │ ├── plugins │ │ │ │ └── yahoo_fin.py │ │ │ │ ├── speech_config.yaml │ │ │ │ └── stock_bot_config.yml │ │ ├── ddg_langchain_bot │ │ │ ├── README.md │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ ├── langchain_agent.py │ │ │ │ ├── requirements_dev.txt │ │ │ │ └── schemas.py │ │ │ └── speech_config.yaml │ │ ├── event_interface_tutorial_bot │ │ │ ├── README.md │ │ │ ├── speech_config.yaml │ │ │ ├── step_0 │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ ├── step_1 │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ ├── step_2 │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ ├── step_3 │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ ├── step_4 │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ ├── step_5 │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ ├── step_6 │ │ │ │ ├── actions.py │ │ │ │ ├── bot_config.yml │ │ │ │ └── main.co │ │ │ └── step_7 │ │ │ │ ├── bot_config.yml │ │ │ │ ├── main.co │ │ │ │ ├── plugin │ │ │ │ └── yahoo_fin.py │ │ │ │ └── plugin_config.yaml │ │ ├── food_ordering_bot │ │ │ ├── README.md │ │ │ ├── colang │ │ │ │ ├── bug_fix.co │ │ │ │ ├── cart.co │ │ │ │ ├── general.co │ │ │ │ ├── main.co │ │ │ │ ├── order.co │ │ │ │ └── query_menu.co │ │ │ ├── food_ordering_bot_config.yaml │ │ │ ├── model_config.yaml │ │ │ ├── plugin │ │ │ │ ├── __init__.py │ │ │ │ ├── all_gtc_items_with_diff_sizes_v3.json │ │ │ │ ├── cart_manager.py │ │ │ │ ├── data_format.py │ │ │ │ ├── menu_api.py │ │ │ │ ├── order_food.py │ │ │ │ └── requirements.txt │ │ │ ├── plugin_config.yaml │ │ │ ├── slots.yaml │ │ │ └── speech_config.yaml │ │ ├── langgraph_plan_and_execute │ │ │ ├── README.md │ │ │ ├── langgraph_bot_config.yaml │ │ │ ├── main.co │ │ │ ├── model_config.yaml │ │ │ ├── plugin │ │ │ │ ├── plan_and_execute.py │ │ │ │ ├── requirements_dev.txt │ │ │ │ └── schemas.py │ │ │ ├── plugin_config.yaml │ │ │ └── speech_config.yaml │ │ ├── llm_bot │ │ │ ├── actions.py │ │ │ ├── colang │ │ │ │ ├── main.co │ │ │ │ └── speech.co │ │ │ ├── docker-compose-nim-ms.yaml │ │ │ ├── llm_bot_config.yml │ │ │ ├── model_config.yaml │ │ │ └── speech_config.yaml │ │ ├── npc_bots │ │ │ ├── README.md │ │ │ ├── elara │ │ │ │ ├── actions.py │ │ │ │ ├── bot_config.yaml │ │ │ │ ├── colang │ │ │ │ │ ├── bug_fix.co │ │ │ │ │ ├── elara.co │ │ │ │ │ └── speech.co │ │ │ │ ├── model_config.yaml │ │ │ │ ├── plugin_config.yaml │ │ │ │ └── speech_config.yaml │ │ │ ├── jin │ │ │ │ ├── actions.py │ │ │ │ ├── bot_config.yaml │ │ │ │ ├── colang │ │ │ │ │ ├── bug_fix.co │ │ │ │ │ ├── jin.co │ │ │ │ │ └── speech.co │ │ │ │ ├── model_config.yaml │ │ │ │ ├── plugin_config.yaml │ │ │ │ └── speech_config.yaml │ │ │ └── plugins │ │ │ │ ├── prompt_former.py │ │ │ │ ├── requirements.txt │ │ │ │ ├── schemas.py │ │ │ │ └── slm_responder.py │ │ ├── rag_bot │ │ │ ├── RAG │ │ │ │ ├── basic_rag │ │ │ │ │ ├── docker-compose.yaml │ │ │ │ │ └── prompt.yaml │ │ │ │ ├── docker-compose-nim-ms.yaml │ │ │ │ ├── docker-compose-vectordb.yaml │ │ │ │ └── slm_rag │ │ │ │ │ ├── docker-compose.yaml │ │ │ │ │ └── prompt.yaml │ │ │ ├── README.md │ │ │ ├── actions.py │ │ │ ├── colang │ │ │ │ ├── main.co │ │ │ │ └── speech.co │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ ├── rag.py │ │ │ │ ├── schemas.py │ │ │ │ └── utils.py │ │ │ ├── rag_bot_config.yml │ │ │ └── speech_config.yaml │ │ ├── spanish_bot │ │ │ ├── README.md │ │ │ ├── colang │ │ │ │ ├── bug_fix.co │ │ │ │ ├── date.co │ │ │ │ ├── general.co │ │ │ │ ├── main.co │ │ │ │ ├── off_topic.co │ │ │ │ ├── open_domain.co │ │ │ │ └── weather.co │ │ │ ├── plugin_config.yaml │ │ │ └── spanish_bot_config.yaml │ │ ├── spanish_bot_nmt │ │ │ ├── README.md │ │ │ ├── colang │ │ │ │ ├── bug_fix.co │ │ │ │ ├── date.co │ │ │ │ ├── general.co │ │ │ │ ├── main.co │ │ │ │ ├── off_topic.co │ │ │ │ ├── open_domain.co │ │ │ │ └── weather.co │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ └── spanish_nmt_bot_config.yaml │ │ ├── stock_bot │ │ │ ├── README.md │ │ │ ├── cmudict_ipa.txt │ │ │ ├── colang │ │ │ │ ├── bug_fix.co │ │ │ │ ├── general.co │ │ │ │ ├── main.co │ │ │ │ ├── off_topic.co │ │ │ │ ├── profanity_rail.co │ │ │ │ ├── stock_faq.co │ │ │ │ └── stock_price.co │ │ │ ├── kb │ │ │ │ └── stock_faq.md │ │ │ ├── model_config.yaml │ │ │ ├── plugin_config.yaml │ │ │ ├── plugins │ │ │ │ └── yahoo_fin.py │ │ │ ├── speech_config.yaml │ │ │ └── stock_bot_config.yml │ │ └── training │ │ │ ├── pipeline_intent_slot.yaml │ │ │ ├── pipeline_ner.yaml │ │ │ └── pipeline_text_classification.yaml │ │ └── webui │ │ ├── README.md │ │ ├── client │ │ ├── .eslintrc.cjs │ │ ├── .yarnrc.yml │ │ ├── entrypoint.js │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ │ └── env.js │ │ ├── src │ │ │ ├── components │ │ │ │ ├── App │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── AppHeader │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── BotFace │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── ConversationHistory │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── ConversationMessage │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── Loading │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── TextInput │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── ToastNotices │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── Toggle │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ ├── UserSpeechInput │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ │ └── UserTextInput │ │ │ │ │ ├── index.css │ │ │ │ │ └── index.tsx │ │ │ ├── index.css │ │ │ ├── main.tsx │ │ │ ├── utils │ │ │ │ ├── audio-contexts.ts │ │ │ │ ├── linear-pcm-processor.worklet.js │ │ │ │ ├── useAudioPlayer.ts │ │ │ │ ├── useMicrophone.ts │ │ │ │ ├── useRealTimeVolume.ts │ │ │ │ ├── useRequestAnimationFrame.ts │ │ │ │ ├── useRerender.ts │ │ │ │ ├── useServerState.ts │ │ │ │ └── useToastNotices.ts │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ ├── vite.config.ts │ │ └── yarn.lock │ │ ├── docker-compose.yml │ │ ├── images │ │ ├── architecture_audio.png │ │ ├── architecture_bot_audio.png │ │ ├── architecture_high_level.png │ │ ├── example_task.png │ │ ├── image.png │ │ ├── screenshot_emoji_speech.png │ │ ├── screenshot_emoji_text.png │ │ ├── screenshot_speech.png │ │ └── tasks.png │ │ ├── server │ │ ├── .yarnrc.yml │ │ ├── chat-session │ │ │ ├── clients │ │ │ │ ├── GRPCClient.ts │ │ │ │ ├── HTTPClient.ts │ │ │ │ └── RedisClient.ts │ │ │ ├── logger.ts │ │ │ └── tasks │ │ │ │ ├── AbstractTask.ts │ │ │ │ ├── ChatSessionTask.ts │ │ │ │ ├── GRPCSpeechTask.test.ts │ │ │ │ ├── GRPCSpeechTask.ts │ │ │ │ ├── GRPCSpeechTranscriptionTask.test.ts │ │ │ │ ├── GRPCSpeechTranscriptionTask.ts │ │ │ │ ├── GRPCTextTask.ts │ │ │ │ ├── HTTPChatTask.ts │ │ │ │ ├── UMIMTask.ts │ │ │ │ ├── WebSocketTask.test.ts │ │ │ │ └── WebSocketTask.ts │ │ ├── config.ts │ │ ├── data │ │ │ └── emojis-all.json │ │ ├── emoji-finder │ │ │ ├── index.test.ts │ │ │ └── index.ts │ │ ├── grpc │ │ │ ├── ace_agent.proto │ │ │ ├── buf.gen.yaml │ │ │ └── gen │ │ │ │ ├── ace_agent_connect.d.ts │ │ │ │ ├── ace_agent_connect.js │ │ │ │ ├── ace_agent_pb.d.ts │ │ │ │ └── ace_agent_pb.js │ │ ├── index.ts │ │ ├── package.json │ │ ├── tsconfig.json │ │ ├── umim │ │ │ └── umim.ts │ │ ├── utils │ │ │ ├── sleep.ts │ │ │ └── waitAbortSignal.ts │ │ └── yarn.lock │ │ └── shared │ │ ├── package.json │ │ └── types.ts └── audio_2_face_microservice │ ├── 1.0 │ ├── README.md │ ├── example_audio │ │ ├── Claire_anger.wav │ │ ├── Claire_joy_mandarin.wav │ │ ├── Claire_neutral.wav │ │ ├── Claire_outofbreath_mandarin.wav │ │ ├── Claire_sadness.wav │ │ ├── Mark_anger.wav │ │ ├── Mark_joy.wav │ │ ├── Mark_neutral.wav │ │ ├── Mark_outofbreath.wav │ │ └── Mark_sadness.wav │ ├── proto │ │ ├── README.md │ │ ├── files_to_compile.yaml │ │ ├── generate_code_from_protos.py │ │ ├── protobuf_files │ │ │ ├── nvidia_ace.a2f.v1.proto │ │ │ ├── nvidia_ace.animation_data.v1.proto │ │ │ ├── nvidia_ace.animation_id.v1.proto │ │ │ ├── nvidia_ace.audio.v1.proto │ │ │ ├── nvidia_ace.controller.v1.proto │ │ │ ├── nvidia_ace.emotion_aggregate.v1.proto │ │ │ ├── nvidia_ace.emotion_with_timecode.v1.proto │ │ │ ├── nvidia_ace.services.a2f.v1.proto │ │ │ ├── nvidia_ace.services.a2f_controller.v1.proto │ │ │ ├── nvidia_ace.services.animation_controller.v1.proto │ │ │ ├── nvidia_ace.services.animation_data.v1.proto │ │ │ └── nvidia_ace.status.v1.proto │ │ ├── requirements.txt │ │ ├── sample_wheel │ │ │ └── nvidia_ace-1.0.0-py3-none-any.whl │ │ └── setup.py │ ├── quick-start │ │ ├── README.md │ │ ├── a2f_config.yaml │ │ ├── ac_a2f_config.yaml │ │ └── docker-compose.yml │ └── scripts │ │ ├── audio2face_api_client │ │ ├── README.md │ │ ├── a2f │ │ │ └── client │ │ │ │ ├── auth.py │ │ │ │ └── service.py │ │ ├── audio │ │ │ └── sample.wav │ │ ├── config │ │ │ ├── config_claire.yml │ │ │ └── config_mark.yml │ │ ├── nim_a2f_client.py │ │ └── requirements │ │ ├── audio2face_in_animation_pipeline_validation_app │ │ ├── README.md │ │ ├── requirements.txt │ │ └── validate.py │ │ └── audio2face_microservices_interaction_app │ │ ├── README.md │ │ ├── a2f.py │ │ ├── config_claire_v1.3.yml │ │ ├── config_mark_v2.2.yml │ │ └── requirements.txt │ └── 1.2 │ ├── README.md │ ├── example_audio │ ├── Claire_anger.wav │ ├── Claire_joy_mandarin.wav │ ├── Claire_neutral.wav │ ├── Claire_outofbreath_mandarin.wav │ ├── Claire_sadness.wav │ ├── Mark_anger.wav │ ├── Mark_joy.wav │ ├── Mark_neutral.wav │ ├── Mark_outofbreath.wav │ └── Mark_sadness.wav │ ├── proto │ ├── README.md │ ├── files_to_compile.yaml │ ├── generate_code_from_protos.py │ ├── protobuf_files │ │ ├── nvidia_ace.a2f.v1.proto │ │ ├── nvidia_ace.animation_data.v1.proto │ │ ├── nvidia_ace.animation_id.v1.proto │ │ ├── nvidia_ace.audio.v1.proto │ │ ├── nvidia_ace.controller.v1.proto │ │ ├── nvidia_ace.emotion_aggregate.v1.proto │ │ ├── nvidia_ace.emotion_with_timecode.v1.proto │ │ ├── nvidia_ace.services.a2f.v1.proto │ │ ├── nvidia_ace.services.a2f_controller.v1.proto │ │ ├── nvidia_ace.services.animation_controller.v1.proto │ │ ├── nvidia_ace.services.animation_data.v1.proto │ │ └── nvidia_ace.status.v1.proto │ ├── requirements.txt │ ├── sample_wheel │ │ └── nvidia_ace-1.0.0-py3-none-any.whl │ └── setup.py │ ├── quick-start │ ├── README.md │ ├── a2f_config.yaml │ ├── ac_a2f_config.yaml │ └── docker-compose.yml │ └── scripts │ ├── audio2face_api_client │ ├── README.md │ ├── a2f │ │ └── client │ │ │ ├── auth.py │ │ │ └── service.py │ ├── audio │ │ └── sample.wav │ ├── config │ │ ├── config_claire.yml │ │ └── config_mark.yml │ ├── nim_a2f_client.py │ └── requirements │ ├── audio2face_in_animation_pipeline_validation_app │ ├── README.md │ ├── requirements.txt │ └── validate.py │ └── audio2face_microservices_interaction_app │ ├── README.md │ ├── a2f.py │ ├── config_claire_v1.3.yml │ ├── config_mark_v2.2.yml │ └── requirements.txt ├── tools ├── avatar_configurator │ └── 1.0 │ │ ├── README.md │ │ └── template_scene.zip └── ucs_tools │ └── README.md └── workflows ├── animation_pipeline └── 1.0 │ ├── README.md │ └── deploy │ └── ucs_apps │ ├── animation_pipeline.yaml │ ├── animation_pipeline_params.yaml │ └── animation_pipeline_values.yaml └── tokkio ├── 4.0 ├── README.md ├── Tokkio_example.png ├── avatar_collage.jpg ├── llm-rag │ ├── tokkio-llm-app-params.yaml │ └── tokkio-llm-app.yaml ├── qsr │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml └── scripts │ └── one-click │ ├── aws │ ├── README.md │ ├── deploy-spec │ │ ├── backend.tf │ │ ├── main.tf │ │ ├── output.tf │ │ ├── provider.tf │ │ ├── variables.tf │ │ └── versions.tf │ ├── deploy-template.yml │ ├── examples │ │ ├── simple-coturn-llm │ │ │ └── deploy-template.yml │ │ ├── simple-coturn-qsr │ │ │ └── deploy-template.yml │ │ ├── simple-rp-llm │ │ │ └── deploy-template.yml │ │ └── simple-rp-qsr │ │ │ └── deploy-template.yml │ ├── modules │ │ ├── aws │ │ │ ├── acm-certificate │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── alb-listener │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── alb │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── ec2 │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── keypair │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── networking │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── security-group │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ └── target-group │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ └── tokkio │ │ │ ├── app │ │ │ ├── alb.tf │ │ │ ├── app-instance.tf │ │ │ ├── cloudfront.tf │ │ │ ├── config.tf │ │ │ ├── config │ │ │ │ ├── install-aws-cli.sh │ │ │ │ ├── install-cnc.sh │ │ │ │ ├── install-ngc-cli.sh │ │ │ │ ├── mount-data-disk.sh │ │ │ │ ├── setup-foundational-charts.sh │ │ │ │ ├── setup-ops-components.sh │ │ │ │ ├── setup-tokkio-api.sh │ │ │ │ ├── setup-tokkio-secrets.sh │ │ │ │ ├── setup-tokkio-ui.sh │ │ │ │ ├── tokkio-env.sh.tpl │ │ │ │ └── verify-gpu-operator-ready.sh │ │ │ ├── data.tf │ │ │ ├── iam.tf │ │ │ ├── locals.tf │ │ │ ├── output.tf │ │ │ ├── route53-api.tf │ │ │ ├── route53-ops.tf │ │ │ ├── route53-ui.tf │ │ │ ├── ui-bucket.tf │ │ │ ├── user-data │ │ │ │ └── user-data.sh.tpl │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ │ ├── base │ │ │ ├── bastion-instance.tf │ │ │ ├── certificates.tf │ │ │ ├── config-bucket.tf │ │ │ ├── keypair.tf │ │ │ ├── locals.tf │ │ │ ├── networking.tf │ │ │ ├── output.tf │ │ │ ├── sec-groups.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ │ ├── coturn │ │ │ ├── config.tf │ │ │ ├── config │ │ │ │ ├── coturn-server-env.sh.tpl │ │ │ │ ├── install-aws-cli.sh │ │ │ │ └── setup-coturn-server.sh │ │ │ ├── coturn-instance.tf │ │ │ ├── iam.tf │ │ │ ├── locals.tf │ │ │ ├── output.tf │ │ │ ├── user-data │ │ │ │ └── user-data.sh.tpl │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ │ └── rp │ │ │ ├── config.tf │ │ │ ├── config │ │ │ ├── install-aws-cli.sh │ │ │ ├── install-cns.sh │ │ │ ├── mount-data-disk.sh │ │ │ ├── rp-env.sh.tpl │ │ │ ├── setup-rp-chart.sh │ │ │ └── setup-rp-secrets.sh │ │ │ ├── iam.tf │ │ │ ├── locals.tf │ │ │ ├── output.tf │ │ │ ├── rp-instance.tf │ │ │ ├── user-data │ │ │ └── user-data.sh.tpl │ │ │ ├── variables.tf │ │ │ └── versions.tf │ ├── secrets.sh │ └── tokkio-deploy │ ├── azure │ ├── README.md │ ├── deploy-spec │ │ ├── backend.tf │ │ ├── main.tf │ │ ├── output.tf │ │ ├── provider.tf │ │ ├── variables.tf │ │ └── versions.tf │ ├── deploy-template.yml │ ├── examples │ │ ├── simple-coturn-llm │ │ │ └── deploy-template.yml │ │ ├── simple-coturn-qsr │ │ │ └── deploy-template.yml │ │ ├── simple-rp-llm │ │ │ └── deploy-template.yml │ │ └── simple-rp-qsr │ │ │ └── deploy-template.yml │ ├── modules │ │ ├── azure │ │ │ ├── application-gateway │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── cdn-for-static-website │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── custom-domain-for-cdn │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── dns-a-record │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── key-vault-certificate │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── key-vault │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── keypair │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── linux-virtual-machine │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── networking │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── resource-group │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── storage-account-backed-static-website │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ └── storage-account │ │ │ │ ├── main.tf │ │ │ │ ├── output.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ └── tokkio │ │ │ ├── app │ │ │ ├── api.tf │ │ │ ├── certificates.tf │ │ │ ├── config.tf │ │ │ ├── config │ │ │ │ ├── apply-tokkio-secrets.sh │ │ │ │ ├── install-cnc.sh │ │ │ │ ├── install-tokkio-api.sh │ │ │ │ ├── install-tokkio-ui.sh │ │ │ │ ├── mount-data-disk.sh │ │ │ │ ├── setup-foundational-charts.sh │ │ │ │ ├── setup-ops-components.sh │ │ │ │ ├── tokkio-env.sh.tpl │ │ │ │ └── verify-gpu-operator-ready.sh │ │ │ ├── locals.tf │ │ │ ├── mlops.tf │ │ │ ├── output.tf │ │ │ ├── ui.tf │ │ │ ├── user-data │ │ │ │ └── user-data.sh.tpl │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ │ ├── base │ │ │ ├── bastion.tf │ │ │ ├── config.tf │ │ │ ├── dns-and-certs.tf │ │ │ ├── keypair.tf │ │ │ ├── locals.tf │ │ │ ├── networking.tf │ │ │ ├── output.tf │ │ │ ├── resource-group.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ │ ├── coturn │ │ │ ├── config.tf │ │ │ ├── config │ │ │ │ ├── coturn-server-env.sh.tpl │ │ │ │ └── setup-coturn-server.sh │ │ │ ├── locals.tf │ │ │ ├── output.tf │ │ │ ├── user-data │ │ │ │ └── user-data.sh.tpl │ │ │ ├── variables.tf │ │ │ ├── versions.tf │ │ │ └── vm.tf │ │ │ └── rp │ │ │ ├── config.tf │ │ │ ├── config │ │ │ ├── apply-rp-secrets.sh │ │ │ ├── install-cns.sh │ │ │ ├── install-rp-chart.sh │ │ │ ├── mount-data-disk.sh │ │ │ └── rp-env.sh.tpl │ │ │ ├── locals.tf │ │ │ ├── output.tf │ │ │ ├── rp-vm.tf │ │ │ ├── user-data │ │ │ └── user-data.sh.tpl │ │ │ ├── variables.tf │ │ │ └── versions.tf │ ├── secrets.sh │ └── tokkio-deploy │ └── gcp │ ├── README.md │ ├── deploy-spec │ ├── backend.tf │ ├── main.tf │ ├── output.tf │ ├── provider.tf │ ├── variables.tf │ └── versions.tf │ ├── deploy-template.yml │ ├── examples │ ├── simple-coturn-llm │ │ └── deploy-template.yml │ ├── simple-coturn-qsr │ │ └── deploy-template.yml │ ├── simple-rp-llm │ │ └── deploy-template.yml │ └── simple-rp-qsr │ │ └── deploy-template.yml │ ├── modules │ ├── gcp │ │ ├── compute-backend-bucket │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ ├── compute-backend-service │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ ├── global-load-balancer │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ ├── instance-group-unmanaged │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ ├── instance │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ ├── networking │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ │ └── website-bucket │ │ │ ├── main.tf │ │ │ ├── output.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ └── tokkio │ │ ├── app │ │ ├── api.tf │ │ ├── config.tf │ │ ├── config │ │ │ ├── install-cns.sh │ │ │ ├── install-ngc-cli.sh │ │ │ ├── mount-data-disk.sh.tpl │ │ │ ├── setup-foundational-charts.sh │ │ │ ├── setup-ops-components.sh │ │ │ ├── setup-tokkio-api.sh │ │ │ ├── setup-tokkio-secrets.sh │ │ │ ├── setup-tokkio-ui.sh │ │ │ ├── tokkio-env.sh.tpl │ │ │ └── verify-gpu-operator-ready.sh │ │ ├── dns-and-certs.tf │ │ ├── iam.tf │ │ ├── locals.tf │ │ ├── output.tf │ │ ├── ui.tf │ │ ├── user-data │ │ │ └── user-data.sh.tpl │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── base │ │ ├── bastion.tf │ │ ├── config.tf │ │ ├── locals.tf │ │ ├── networking.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── coturn │ │ ├── config.tf │ │ ├── config │ │ │ ├── coturn-server-env.sh.tpl │ │ │ └── setup-coturn-server.sh │ │ ├── iam.tf │ │ ├── instance.tf │ │ ├── locals.tf │ │ ├── output.tf │ │ ├── user-data │ │ │ └── user-data.sh.tpl │ │ ├── variables.tf │ │ └── versions.tf │ │ └── rp │ │ ├── config.tf │ │ ├── config │ │ ├── install-cns.sh │ │ ├── install-gcloud-cli.sh │ │ ├── install-rp-chart.sh │ │ ├── mount-data-disk.sh │ │ ├── rp-env.sh.tpl │ │ └── setup-rp-secrets.sh │ │ ├── iam.tf │ │ ├── locals.tf │ │ ├── output.tf │ │ ├── rp-instance.tf │ │ ├── user-data │ │ └── user-data.sh.tpl │ │ └── variables.tf │ ├── secrets.sh │ └── tokkio-deploy └── 4.1 ├── 3-stream ├── config │ └── lp_grpc_in_udp_out_anim_tuning.json ├── tokkio-app-params.yaml └── tokkio-app.yaml ├── README.md ├── Tokkio_example.png ├── avatar_collage.jpg ├── llm-rag-ov ├── 1-stream │ ├── config │ │ └── lp_grpc_in_udp_out_anim_tuning.json │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml ├── 3-stream │ ├── config │ │ └── lp_grpc_in_udp_out_anim_tuning.json │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml └── 6-stream │ ├── config │ └── lp_grpc_in_udp_out_anim_tuning.json │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml ├── llm-rag-ue └── 3-stream │ ├── config │ └── lp_grpc_in_udp_out_anim_tuning.json │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml ├── retail ├── 3-stream │ ├── config │ │ └── lp_grpc_in_udp_out_anim_tuning.json │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml └── 6-stream │ ├── config │ └── lp_grpc_in_udp_out_anim_tuning.json │ ├── tokkio-app-params.yaml │ └── tokkio-app.yaml └── scripts └── one-click ├── aws ├── ansible-requirements.yml ├── app-tasks.yml ├── config-files │ ├── helm-release │ │ ├── rproxy-override-values.yml │ │ ├── tokkio-app-audio-video-app.yml │ │ ├── tokkio-fluent-bit-override-values.yml │ │ └── tokkio-logging-es-override-values.yml │ ├── k8s-manifest │ │ ├── es-replicas-update-deployment.yml │ │ ├── logging-es-replicas-update-configmap.yml │ │ ├── namespace.yml │ │ └── platform-ingress-rule.yml │ └── k8s-secret │ │ ├── docker-config-json.yml │ │ ├── ngc-api-key-secret.yml │ │ ├── nvidia-api-key-secret.yml │ │ └── openai-key-secret.yml ├── config-template-examples │ ├── llm-a2f-2d-rp-3x-streams │ │ ├── config-template.yml │ │ └── my-config.env │ ├── llm-ov-3d-rp-6x-streams │ │ ├── config-template.yml │ │ └── my-config.env │ ├── llm-ue-3d-coturn-3x-streams │ │ ├── config-template.yml │ │ ├── my-config.env │ │ └── user-helm-override-values.yml │ └── retail-ov-3d-rp-6x-streams │ │ ├── config-template.yml │ │ └── my-config.env ├── config-template.yml ├── envbuild.sh ├── iac-ref │ ├── backend.tf │ ├── cloudfront.tf │ ├── data.tf │ ├── iam.tf │ ├── locals.tf │ ├── main.tf │ ├── outputs.tf │ ├── provider.tf │ ├── route53.tf │ ├── templates │ │ └── ansible-hosts.tpl │ ├── ui-bucket.tf │ ├── variables.tf │ └── versions.tf ├── infra-tasks.yml ├── install-pre-requisites.sh ├── modules │ └── aws │ │ ├── acm-certificate │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── alb-listener │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── alb │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── compute │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── networking │ │ ├── examples │ │ │ └── quickstart │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── security-group │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ └── target-group │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf ├── platform-tasks.yml └── playbooks │ ├── add-sysctl-config.yml │ ├── app-pre-requisites.yml │ ├── authorize-ssh-keys.yml │ ├── bootstrap-cns-kubeconfig.yml │ ├── check-all-pods-in-namespace-up.yml │ ├── check-inventory.yml │ ├── cns-install.yml │ ├── cns-prepare.yml │ ├── cns-validate.yml │ ├── copy-task-config.yml │ ├── docker-compose.yml │ ├── docker-login.yml │ ├── empty_var_check.yml │ ├── get-network-interface.yml │ ├── helm-release.yml │ ├── helm-task-pre-requisites.yml │ ├── install-tokkio-ui-aws.yml │ ├── install-tokkio-ui-bm.yml │ ├── install-tokkio-ui-gcp.yml │ ├── install-tokkio-ui.yml │ ├── k8s-label.yml │ ├── k8s-manifest.yml │ ├── k8s-patch.yml │ ├── k8s-secret-check-empty-dockerconfig.yml │ ├── k8s-secret-check-empty-opaque.yml │ ├── k8s-secret-check-empty.yml │ ├── k8s-secret-dockerconfig.yml │ ├── k8s-secret-old.yml │ ├── k8s-secret-opaque.yml │ ├── k8s-secret.yml │ ├── k8s-taint.yml │ ├── k8s-task-pre-requisites.yml │ ├── mount-data-disk.yml │ ├── nvidia-container-toolkit-install.yml │ ├── nvidia-docker-install.yml │ ├── nvidia-driver-install.yml │ ├── output-jinja2-expression-to-file.yml │ ├── process-user-config.yml │ ├── scripts │ ├── coturn-setup-bm.sh │ ├── coturn-setup.sh │ ├── install-tokkio-ui-aws.sh │ ├── install-tokkio-ui-bm.sh │ ├── install-tokkio-ui-gcp.sh │ ├── install-tokkio-ui.sh │ ├── mount-data-disk-aws.sh │ ├── mount-data-disk-gcp.sh │ └── mount-data-disk.sh │ ├── setup-coturn-bm.yml │ ├── setup-coturn.yml │ ├── sleep.yml │ ├── tasks │ └── helm-release-prep-values.yml │ └── write-to-file.yml ├── azure ├── ansible-requirements.yml ├── app-tasks.yml ├── config-files │ ├── helm-release │ │ ├── hello-release-values.yml │ │ ├── rproxy-override-values.yml │ │ ├── tokkio-app-audio-video-app.yml │ │ ├── tokkio-fluent-bit-override-values.yml │ │ └── tokkio-logging-es-override-values.yml │ ├── k8s-manifest │ │ ├── es-replicas-update-deployment.yml │ │ ├── logging-es-replicas-update-configmap.yml │ │ ├── namespace.yml │ │ └── platform-ingress-rule.yml │ └── k8s-secret │ │ ├── docker-config-json.yml │ │ ├── ngc-api-key-secret.yml │ │ ├── nvidia-api-key-secret.yml │ │ └── openai-key-secret.yml ├── config-template-examples │ ├── llm-ov-3d-rp-3x-streams │ │ ├── config-template.yml │ │ └── my-config.env │ └── llm-ue-3d-coturn-3x-streams │ │ ├── config-template.yml │ │ ├── my-config.env │ │ └── user-helm-override-values.yml ├── config-template.yml ├── envbuild.sh ├── iac-ref │ ├── backend.tf │ ├── locals.tf │ ├── main.tf │ ├── outputs.tf │ ├── provider.tf │ ├── templates │ │ └── ansible-hosts.tpl │ ├── variables.tf │ └── versions.tf ├── infra-tasks.yml ├── install-pre-requisites.sh ├── modules │ └── azure │ │ ├── app-gateway │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── app-security-group │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── cdn-for-static-website │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── compute │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── custom-domain-for-cdn │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── dns-a-record │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── key-vault-certificate │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── key-vault │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── networking │ │ ├── examples │ │ │ └── quickstart │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ ├── resource-group │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── variables.tf │ │ └── versions.tf │ │ └── storage-account-backed-static-website │ │ ├── main.tf │ │ ├── output.tf │ │ ├── variables.tf │ │ └── versions.tf ├── platform-tasks.yml └── playbooks │ ├── add-sysctl-config.yml │ ├── app-pre-requisites.yml │ ├── authorize-ssh-keys.yml │ ├── bootstrap-cns-kubeconfig.yml │ ├── check-all-pods-in-namespace-up.yml │ ├── check-inventory.yml │ ├── cns-install.yml │ ├── cns-prepare.yml │ ├── cns-validate.yml │ ├── copy-task-config.yml │ ├── docker-compose.yml │ ├── docker-login.yml │ ├── empty_var_check.yml │ ├── get-network-interface.yml │ ├── helm-release.yml │ ├── helm-task-pre-requisites.yml │ ├── install-tokkio-ui-aws.yml │ ├── install-tokkio-ui-bm.yml │ ├── install-tokkio-ui-gcp.yml │ ├── install-tokkio-ui.yml │ ├── k8s-label.yml │ ├── k8s-manifest.yml │ ├── k8s-patch.yml │ ├── k8s-secret-check-empty-dockerconfig.yml │ ├── k8s-secret-check-empty-opaque.yml │ ├── k8s-secret-check-empty.yml │ ├── k8s-secret-dockerconfig.yml │ ├── k8s-secret-old.yml │ ├── k8s-secret-opaque.yml │ ├── k8s-secret.yml │ ├── k8s-taint.yml │ ├── k8s-task-pre-requisites.yml │ ├── mount-data-disk.yml │ ├── nvidia-container-toolkit-install.yml │ ├── nvidia-docker-install.yml │ ├── nvidia-driver-install.yml │ ├── output-jinja2-expression-to-file.yml │ ├── process-user-config.yml │ ├── scripts │ ├── coturn-setup-bm.sh │ ├── coturn-setup.sh │ ├── install-tokkio-ui-aws.sh │ ├── install-tokkio-ui-bm.sh │ ├── install-tokkio-ui-gcp.sh │ ├── install-tokkio-ui.sh │ ├── mount-data-disk-aws.sh │ ├── mount-data-disk-gcp.sh │ └── mount-data-disk.sh │ ├── setup-coturn-bm.yml │ ├── setup-coturn.yml │ ├── sleep.yml │ ├── tasks │ └── helm-release-prep-values.yml │ └── write-to-file.yml ├── baremetal ├── ansible-requirements.yml ├── app-tasks.yml ├── config-files │ ├── helm-release │ │ ├── rproxy-override-values.yml │ │ ├── tokkio-app-audio-video-app.yml │ │ ├── tokkio-fluent-bit-override-values.yml │ │ └── tokkio-logging-es-override-values.yml │ ├── k8s-manifest │ │ ├── es-replicas-update-deployment.yml │ │ ├── logging-es-replicas-update-configmap.yml │ │ └── namespace.yml │ └── k8s-secret │ │ ├── docker-config-json.yml │ │ ├── ngc-api-key-secret.yml │ │ ├── nvidia-api-key-secret.yml │ │ └── openai-key-secret.yml ├── config-template-examples │ └── llm-ov-3d-coturn-1x-stream │ │ ├── config-template.yml │ │ └── my-config.env ├── config-template.yml ├── envbuild.sh ├── iac-ref │ ├── backend.tf │ ├── locals.tf │ ├── outputs.tf │ ├── templates │ │ └── ansible-hosts.tpl │ ├── variables.tf │ └── versions.tf ├── infra-tasks.yml ├── install-pre-requisites.sh ├── platform-tasks.yml ├── playbooks │ ├── add-sysctl-config.yml │ ├── app-pre-requisites.yml │ ├── authorize-ssh-keys.yml │ ├── bootstrap-cns-kubeconfig.yml │ ├── check-all-pods-in-namespace-up.yml │ ├── check-inventory.yml │ ├── cns-install.yml │ ├── cns-prepare.yml │ ├── cns-validate.yml │ ├── copy-task-config.yml │ ├── docker-compose.yml │ ├── docker-login.yml │ ├── empty_var_check.yml │ ├── get-network-interface.yml │ ├── helm-release.yml │ ├── helm-task-pre-requisites.yml │ ├── install-tokkio-ui-aws.yml │ ├── install-tokkio-ui-bm.yml │ ├── install-tokkio-ui-gcp.yml │ ├── install-tokkio-ui.yml │ ├── k8s-label.yml │ ├── k8s-manifest.yml │ ├── k8s-patch.yml │ ├── k8s-secret-check-empty-dockerconfig.yml │ ├── k8s-secret-check-empty-opaque.yml │ ├── k8s-secret-check-empty.yml │ ├── k8s-secret-dockerconfig.yml │ ├── k8s-secret-old.yml │ ├── k8s-secret-opaque.yml │ ├── k8s-secret.yml │ ├── k8s-taint.yml │ ├── k8s-task-pre-requisites.yml │ ├── mount-data-disk.yml │ ├── nvidia-container-toolkit-install.yml │ ├── nvidia-docker-install.yml │ ├── nvidia-driver-install.yml │ ├── output-jinja2-expression-to-file.yml │ ├── process-user-config.yml │ ├── scripts │ │ ├── coturn-setup-bm.sh │ │ ├── coturn-setup.sh │ │ ├── install-tokkio-ui-aws.sh │ │ ├── install-tokkio-ui-bm.sh │ │ ├── install-tokkio-ui-gcp.sh │ │ ├── install-tokkio-ui.sh │ │ ├── mount-data-disk-aws.sh │ │ ├── mount-data-disk-gcp.sh │ │ └── mount-data-disk.sh │ ├── setup-coturn-bm.yml │ ├── setup-coturn.yml │ ├── sleep.yml │ ├── tasks │ │ └── helm-release-prep-values.yml │ └── write-to-file.yml └── setup-cns-access.sh └── gcp ├── ansible-requirements.yml ├── app-tasks.yml ├── config-files ├── helm-release │ ├── rproxy-override-values.yml │ ├── tokkio-app-audio-video-app.yml │ ├── tokkio-fluent-bit-override-values.yml │ └── tokkio-logging-es-override-values.yml ├── k8s-manifest │ ├── es-replicas-update-deployment.yml │ ├── logging-es-replicas-update-configmap.yml │ ├── namespace.yml │ └── platform-ingress-rule.yml └── k8s-secret │ ├── docker-config-json.yml │ ├── ngc-api-key-secret.yml │ ├── nvidia-api-key-secret.yml │ └── openai-key-secret.yml ├── config-template-examples ├── llm-ov-3d-rp-6x-streams │ ├── config-template.yml │ └── my-config.env └── llm-ue-3d-coturn-3x-streams │ ├── config-template.yml │ ├── my-config.env │ └── user-helm-override-values.yml ├── config-template.yml ├── envbuild.sh ├── iac-ref ├── backend.tf ├── dns-and-certs.tf ├── iam.tf ├── locals.tf ├── main.tf ├── outputs.tf ├── provider.tf ├── templates │ └── ansible-hosts.tpl ├── ui.tf ├── variables.tf └── versions.tf ├── infra-tasks.yml ├── install-pre-requisites.sh ├── modules └── gcp │ ├── compute-backend-bucket │ ├── main.tf │ ├── output.tf │ ├── variables.tf │ └── versions.tf │ ├── compute-backend-service │ ├── main.tf │ ├── output.tf │ ├── variables.tf │ └── versions.tf │ ├── compute │ ├── main.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf │ ├── firewall │ ├── main.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf │ ├── global-load-balancer │ ├── main.tf │ ├── output.tf │ ├── variables.tf │ └── versions.tf │ ├── instance-group-unmanaged │ ├── main.tf │ ├── output.tf │ ├── variables.tf │ └── versions.tf │ ├── load-balancer │ ├── main.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf │ ├── networking │ ├── examples │ │ └── quickstart-regional │ │ │ ├── main.tf │ │ │ ├── outputs.tf │ │ │ ├── variables.tf │ │ │ └── versions.tf │ ├── main.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf │ └── website-bucket │ ├── main.tf │ ├── output.tf │ ├── variables.tf │ └── versions.tf ├── platform-tasks.yml └── playbooks ├── add-sysctl-config.yml ├── app-pre-requisites.yml ├── authorize-ssh-keys.yml ├── bootstrap-cns-kubeconfig.yml ├── check-all-pods-in-namespace-up.yml ├── check-inventory.yml ├── cns-install.yml ├── cns-prepare.yml ├── cns-validate.yml ├── copy-task-config.yml ├── docker-compose.yml ├── docker-login.yml ├── empty_var_check.yml ├── get-network-interface.yml ├── helm-release.yml ├── helm-task-pre-requisites.yml ├── install-tokkio-ui-aws.yml ├── install-tokkio-ui-bm.yml ├── install-tokkio-ui-gcp.yml ├── install-tokkio-ui.yml ├── k8s-label.yml ├── k8s-manifest.yml ├── k8s-patch.yml ├── k8s-secret-check-empty-dockerconfig.yml ├── k8s-secret-check-empty-opaque.yml ├── k8s-secret-check-empty.yml ├── k8s-secret-dockerconfig.yml ├── k8s-secret-old.yml ├── k8s-secret-opaque.yml ├── k8s-secret.yml ├── k8s-taint.yml ├── k8s-task-pre-requisites.yml ├── mount-data-disk.yml ├── nvidia-container-toolkit-install.yml ├── nvidia-docker-install.yml ├── nvidia-driver-install.yml ├── output-jinja2-expression-to-file.yml ├── process-user-config.yml ├── scripts ├── coturn-setup-bm.sh ├── coturn-setup.sh ├── install-tokkio-ui-aws.sh ├── install-tokkio-ui-bm.sh ├── install-tokkio-ui-gcp.sh ├── install-tokkio-ui.sh ├── mount-data-disk-aws.sh ├── mount-data-disk-gcp.sh └── mount-data-disk.sh ├── setup-coturn-bm.yml ├── setup-coturn.yml ├── sleep.yml ├── tasks └── helm-release-prep-values.yml └── write-to-file.yml /.gitignore: -------------------------------------------------------------------------------- 1 | **.terraform/ 2 | **terraform.tfstate 3 | **terraform.tfstate.backup** 4 | **.terraform.lock.hcl 5 | **ignore.auto.tfvars 6 | **tfplan 7 | **gcp-credentials/ 8 | **logs/ 9 | .vscode -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/clients/chat_client/requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp==3.9.5 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/clients/event_client/requirements.txt: -------------------------------------------------------------------------------- 1 | textual==0.29.0 2 | typer==0.9.0 3 | redis==4.6.0 4 | transitions==0.9.0 5 | typing_extensions==4.7.1 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/clients/speech_client/requirements.txt: -------------------------------------------------------------------------------- 1 | grpcio-tools -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/docker/.env: -------------------------------------------------------------------------------- 1 | # Environment variables 2 | OPENAI_API_KEY=${OPENAI_API_KEY} 3 | 4 | # NGC CLI variables 5 | NGC_CLI_API_KEY=${NGC_CLI_API_KEY} 6 | NGC_CLI_ORG=nvidia 7 | NGC_CLI_TEAM=${NGC_CLI_TEAM} 8 | NGC_ORGANIZATION_ID=${NGC_ORGANIZATION_ID} 9 | 10 | # API Keys 11 | NVIDIA_API_KEY=${NVIDIA_API_KEY} -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/docker/docker_init.sh: -------------------------------------------------------------------------------- 1 | export PIPELINE=speech_lite 2 | export TAG=4.0.0 3 | export CLI_CMD="aceagent chat cli -c $PWD/$BOT_PATH --log-path ${PWD}/log" 4 | export DOCKER_REGISTRY=nvcr.io/eevaigoeixww/conversational-ai 5 | export DOCKER_GROUP=$(stat -c %g /var/run/docker.sock) 6 | export HOST_UID=$(id -u) 7 | export HOST_GID=$(id -g) 8 | export DOCKER_USER=$(id -u):$(id -g) 9 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/docker/dockerfiles/plugin_server.Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | 3 | FROM $BASE_IMAGE 4 | 5 | ARG HOST_UID 6 | ARG HOST_GID 7 | 8 | 9 | 10 | # Create specified user with home directory 11 | RUN mkdir -p /home/ace-agent 12 | RUN groupadd ace-agent --gid $HOST_GID \ 13 | && useradd ace-agent --uid $HOST_UID --gid $HOST_GID -d /home/ace-agent \ 14 | && chown -R $HOST_UID:$HOST_GID /home/ace-agent 15 | 16 | ############################## 17 | # Install custom dependencies 18 | ############################## 19 | 20 | WORKDIR /home/ace-agent 21 | USER $HOST_UID:$HOST_GID -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/ucs_apps/chat_bot/food_ordering_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: food_ordering_bot_config.yaml 3 | logLevel: "DEBUG" 4 | # gunicorn configs 5 | gunicornWorkers: "1" 6 | gunicornTimeout: "150" 7 | 8 | nlp-server: 9 | ucfVisibleGpus: [0] 10 | modelConfigPath: "model_config.yaml" 11 | customModelDir: "" 12 | # gunicorn configs 13 | gunicornWorkers: "4" 14 | gunicornTimeout: "120" 15 | 16 | plugin-server: 17 | pluginConfigPath: "plugin_config.yaml" 18 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/ucs_apps/chat_bot/rag_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: rag_bot_config.yml 3 | 4 | plugin-server: 5 | pluginConfigPath: "plugin_config.yaml" 6 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/ucs_apps/chat_bot/stock_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: stock_bot_config.yml 3 | logLevel: "DEBUG" 4 | # gunicorn configs 5 | gunicornWorkers: "1" 6 | gunicornTimeout: "150" 7 | 8 | plugin-server: 9 | pluginConfigPath: "plugin_config.yaml" 10 | pluginConfig: 11 | config: 12 | workers: 4 13 | timeout: 120 14 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/deploy/wheel/aceagent-4.0.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/ace_agent/4.0/deploy/wheel/aceagent-4.0.0-py3-none-any.whl -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/chitchat_bot/chitchat_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: chitchat 2 | 3 | # Using OpenAI 4 | models: 5 | - type: main 6 | engine: openai 7 | model: gpt-3.5-turbo-instruct 8 | parameters: 9 | stop: ["\n"] -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/chitchat_bot/colang/fallback.co: -------------------------------------------------------------------------------- 1 | define flow ... 2 | priority 0.1 3 | user ... 4 | bot responds truthfully 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/chitchat_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 6 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/colang_2_sample_bot/actions.py: -------------------------------------------------------------------------------- 1 | # Custom Actions can be defined in an actions.py file and called from Colang 2 | 3 | from nemoguardrails.actions.actions import action 4 | from datetime import datetime 5 | 6 | 7 | @action(name="GetCurrentDateTimeAction") 8 | async def get_current_date_time_action() -> str: 9 | return f"current time ISO Format: {datetime.now().isoformat()}" 10 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/colang_2_sample_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 5 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 6 | url: localhost:8001 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/ddg_langchain_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 6 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/ddg_langchain_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: langchain 7 | path: ./plugins/langchain_agent.py -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/ddg_langchain_bot/plugins/requirements_dev.txt: -------------------------------------------------------------------------------- 1 | langchain==0.1.1 2 | langchain-community==0.0.13 3 | langchain-core==0.1.12 4 | duckduckgo-search==5.2.2 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/event_interface_tutorial_bot/colang/main.co: -------------------------------------------------------------------------------- 1 | flow bot express greeting 2 | # meta: bot intent 3 | bot say "Welcome to the tutorial" 4 | 5 | # The main flow is the entry point 6 | flow main 7 | # meta: exclude from llm 8 | 9 | # Technical flows, see Colang 2.0 documentation for more details 10 | activate catch undefined flows 11 | activate catch colang errors 12 | activate poll llm request response 1.0 13 | activate track bot talking state 14 | 15 | bot express greeting 16 | 17 | # This will prevent the main flow finishing ever 18 | wait indefinitely -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/colang/events.co: -------------------------------------------------------------------------------- 1 | 2 | define bot welcome message 3 | "Hi, I am Violet, a food ordering assistant bot. How can I help you?" 4 | 5 | define subflow welcome user 6 | bot welcome message 7 | 8 | define flow entry_event 9 | event system.event_start 10 | do welcome user 11 | 12 | define flow exit_event 13 | event system.event_exit 14 | bot bye message 15 | 16 | define bot asr idle timeout 17 | "Do you need anything else?" 18 | "Anything else I can help with?" 19 | 20 | define flow asr_idle_timeout 21 | event system.event_asr_idle_timeout 22 | bot asr idle timeout 23 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/colang/fallback.co: -------------------------------------------------------------------------------- 1 | define flow ... 2 | priority 0.1 3 | user ... 4 | bot responds truthfully 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/colang/query_menu.co: -------------------------------------------------------------------------------- 1 | 2 | define flow query_menu 3 | user food_order.query_menu 4 | $result = execute plugin(endpoint="food_order/show_menu", request_type="post", user_id=$user_id) 5 | bot responds with summary of $result 6 | 7 | define flow show_options 8 | user food_order.show_options 9 | $result = execute plugin(endpoint="food_order/show_menu", request_type="post", user_id=$user_id) 10 | bot responds with summary of $result -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/food_ordering_bot_config.yaml: -------------------------------------------------------------------------------- 1 | bot: food_ordering 2 | 3 | configs: 4 | enable_intent_slot: True 5 | 6 | # Using OpenAI 7 | models: 8 | - type: main 9 | engine: openai 10 | model: gpt-3.5-turbo-instruct 11 | parameters: 12 | stop: ["\n"] 13 | 14 | nlp_models: 15 | - task_name: generate_user_intent 16 | model_name: riva_intent_drive_thru 17 | confidence_threshold: 0.5 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | # Defination of different natural processing models used by bot 2 | 3 | model_servers: 4 | - name: triton 5 | url: "localhost:8004" 6 | nlp_models: 7 | - nvidia/ucs-ms/rmir_nlp_tokkio_drive_thru_intent_slot_bert_base:1.2.4 8 | 9 | - name: riva 10 | url: "localhost:8001" 11 | speech_models: 12 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 #english 13 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 14 | 15 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/plugin/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | copyright(c) 2022 NVIDIA Corporation.All rights reserved. 3 | 4 | NVIDIA Corporation and its licensors retain all intellectual property 5 | and proprietary rights in and to this software, related documentation 6 | and any modifications thereto.Any use, reproduction, disclosure or 7 | distribution of this software and related documentation without an express 8 | license agreement from NVIDIA Corporation is strictly prohibited. 9 | """ 10 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/food_ordering_bot/plugin/requirements.txt: -------------------------------------------------------------------------------- 1 | word2number==1.1 2 | pykwalify==1.8.0 3 | tinydb==4.8.0 4 | editdistance==0.8.1 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/npc_bots/elara/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | if not $player_name: 4 | $player_name = "Kai" 5 | bot respond with helpful answer -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/npc_bots/jin/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | if not $player_name: 4 | $player_name = "Kai" 5 | bot respond with helpful answer -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/npc_bots/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/riva/rmir_asr_conformer_en_us_str:2.15.0 5 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 6 | url: localhost:8001 7 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/nv_langchain_bot/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | $answer = execute plugin(\ 4 | endpoint="langchain/generate",\ 5 | request_type="post",\ 6 | question=$last_user_message,\ 7 | session_id=$session_id,\ 8 | ) 9 | bot respond 10 | 11 | define bot respond 12 | "{{$answer}}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/nv_langchain_bot/langchain_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: langchain_bot 2 | 3 | models: [] 4 | 5 | streaming: True 6 | passthrough: true -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/nv_langchain_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: langchain 7 | path: ./plugins/nv_langchain_rag.py -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/nv_langchain_bot/plugins/requirements_dev.txt: -------------------------------------------------------------------------------- 1 | langchain==0.0.322 2 | langchain-community==0.0.16 3 | langchain-nvidia-ai-endpoints==0.0.1 4 | pypdf==3.10.0 5 | pymilvus==2.3.1 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/plan_and_execute/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | $answer = execute chat_plugin(\ 4 | endpoint="langgraph/chat",\ 5 | request_timeout=60\ 6 | ) 7 | bot respond 8 | 9 | define bot respond 10 | "{{$answer}}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/plan_and_execute/langgraph_bot_config.yaml: -------------------------------------------------------------------------------- 1 | bot: langchain_bot 2 | 3 | models: [] 4 | streaming: True -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/plan_and_execute/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 6 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/plan_and_execute/plugin/requirements_dev.txt: -------------------------------------------------------------------------------- 1 | tavily-python==0.3.3 2 | langgraph==0.0.31 3 | langchain-openai==0.1.2 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/plan_and_execute/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: langgraph 7 | path: ./plugin/plan_and_execute.py -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/rag_bot/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | $answer = execute chat_plugin(\ 4 | endpoint="rag/chat",\ 5 | ) 6 | bot respond 7 | 8 | define bot respond 9 | "{{$answer}}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/rag_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 6 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/rag_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: rag 7 | path: plugins/rag.py 8 | parameters: 9 | RAG_SERVER_URL: "http://localhost:8081" 10 | # STOP_WORDS: ["\n"] # Optional parameters for RAG 11 | # TEMPERATURE: 0.2 12 | # TOP_K: 0.7 13 | # MAX_TOKENS: 200 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/rag_bot/rag_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: genai_rag_bot 2 | 3 | models: [] 4 | streaming: True -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/spanish_bot_nmt/colang/date.co: -------------------------------------------------------------------------------- 1 | define user ask current date 2 | "What is the current time?" 3 | "What time is it now?" 4 | "What day is today?" 5 | "What time is it?" 6 | "What is today's date?" 7 | "What is the current date?" 8 | 9 | define flow current date 10 | user ask current date 11 | $date = execute plugin(endpoint="date/get_date") 12 | bot provide $date -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/spanish_bot_nmt/colang/general.co: -------------------------------------------------------------------------------- 1 | define user express greeting 2 | "Good morning" 3 | "Good afternoon" 4 | "Good night" 5 | "Goodbye" 6 | "Thank you" 7 | "Hello" 8 | 9 | define user ask how are you 10 | "How are you?" 11 | 12 | define flow user greets 13 | user express greeting 14 | bot express greeting 15 | 16 | define flow how are you 17 | user ask how are you 18 | bot responds accordingly -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/spanish_bot_nmt/colang/open_domain.co: -------------------------------------------------------------------------------- 1 | define user ask open domain query 2 | "What is the human life expectancy in the United States?" 3 | "Who is the Prime Minister of India?" 4 | "What is the capital of Spain?" 5 | "How far is the sun from the earth?" 6 | 7 | define flow open domain 8 | user ask open domain query 9 | bot responds truthfully -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/spanish_bot_nmt/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" # triton grpc url 4 | riva_url: "localhost:50051" # Riva GRPC API, Needed for NMT models 5 | nlp_models: 6 | - nvidia/riva/rmir_megatronnmt_any_en_500m:2.15.0 # NMT any language to english model 7 | - nvidia/riva/rmir_megatronnmt_en_any_500m:2.15.0 # NMT english to any language model -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/spanish_bot_nmt/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: weather 7 | - name: date -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/stock_bot/colang/fallback.co: -------------------------------------------------------------------------------- 1 | define flow ... 2 | priority 0.1 3 | user ... 4 | bot responds truthfully 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/stock_bot/colang/profanity_rail.co: -------------------------------------------------------------------------------- 1 | define user says profane words 2 | "you are stupid " 3 | "i want to kill you" 4 | "add a shit burger" 5 | "piss off" 6 | 7 | define bot asks to avoid abusive language 8 | "Please do not use abusive language." 9 | 10 | define flow 11 | user says profane words 12 | bot asks to avoid abusive language -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/stock_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ucs-ms/rmir_asr_parakeet_1-1b_en_us_str_vad:2.15.0 5 | - nvidia/riva/rmir_tts_radtts_hifigan_en_us_ipa:2.15.0 6 | url: localhost:8001 -------------------------------------------------------------------------------- /microservices/ace_agent/4.0/samples/stock_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: stock 7 | path: plugins/yahoo_fin.py 8 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/clients/chat_client/requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp==3.9.5 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/clients/event_client/requirements.txt: -------------------------------------------------------------------------------- 1 | textual==0.29.0 2 | typer==0.9.0 3 | redis==4.6.0 4 | transitions==0.9.0 5 | typing_extensions==4.7.1 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/clients/speech_client/requirements.txt: -------------------------------------------------------------------------------- 1 | grpcio-tools -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/docker/.env: -------------------------------------------------------------------------------- 1 | # Environment variables 2 | OPENAI_API_KEY=${OPENAI_API_KEY} 3 | 4 | # NGC CLI variables 5 | NGC_CLI_API_KEY=${NGC_CLI_API_KEY} 6 | NGC_CLI_ORG=nvidia 7 | NGC_CLI_TEAM=${NGC_CLI_TEAM} 8 | NGC_ORGANIZATION_ID=${NGC_ORGANIZATION_ID} 9 | 10 | # API Keys 11 | NVIDIA_API_KEY=${NVIDIA_API_KEY} -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/docker/docker_init.sh: -------------------------------------------------------------------------------- 1 | export PIPELINE=speech_umim 2 | export TAG=4.1.0 3 | export CLI_CMD="aceagent chat cli -c $PWD/$BOT_PATH --log-path ${PWD}/log" 4 | export DOCKER_REGISTRY=nvcr.io/nvidia/ace 5 | export DOCKER_GROUP=$(stat -c %g /var/run/docker.sock) 6 | export HOST_UID=$(id -u) 7 | export HOST_GID=$(id -g) 8 | export DOCKER_USER=$(id -u):$(id -g) 9 | mkdir -p $PWD/speech_logs -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/docker/dockerfiles/plugin_server.Dockerfile: -------------------------------------------------------------------------------- 1 | ARG BASE_IMAGE 2 | 3 | FROM $BASE_IMAGE 4 | 5 | ARG HOST_UID 6 | ARG HOST_GID 7 | 8 | 9 | 10 | # Create specified user with home directory 11 | RUN mkdir -p /home/ace-agent 12 | RUN groupadd ace-agent --gid $HOST_GID \ 13 | && useradd ace-agent --uid $HOST_UID --gid $HOST_GID -d /home/ace-agent \ 14 | && chown -R $HOST_UID:$HOST_GID /home/ace-agent 15 | 16 | ############################## 17 | # Install custom dependencies 18 | ############################## 19 | 20 | WORKDIR /home/ace-agent 21 | USER $HOST_UID:$HOST_GID -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/ucs_apps/chat_bot/food_ordering_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: food_ordering_bot_config.yaml 3 | logLevel: "DEBUG" 4 | interface: "event" 5 | # gunicorn configs 6 | gunicornWorkers: "1" 7 | gunicornTimeout: "150" 8 | 9 | nlp-server: 10 | ucfVisibleGpus: [0] 11 | modelConfigPath: "model_config.yaml" 12 | customModelDir: "" 13 | # gunicorn configs 14 | gunicornWorkers: "4" 15 | gunicornTimeout: "120" 16 | 17 | plugin-server: 18 | pluginConfigPath: "plugin_config.yaml" 19 | 20 | webapp: 21 | chatInterface: "event" 22 | speechFlags: "" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/ucs_apps/chat_bot/llm_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: llm_bot_config.yml 3 | logLevel: "DEBUG" 4 | interface: "event" 5 | # gunicorn configs 6 | gunicornWorkers: "1" 7 | gunicornTimeout: "150" 8 | 9 | webapp: 10 | chatInterface: "event" 11 | speechFlags: "" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/ucs_apps/chat_bot/rag_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: rag_bot_config.yml 3 | interface: "event" 4 | 5 | plugin-server: 6 | pluginConfigPath: "plugin_config.yaml" 7 | pluginConfig: 8 | plugins: 9 | rag: 10 | parameters: 11 | RAG_SERVER_URL: "http://{UPDATE_RAG_HOST_IP}:{UPDATE_RAG_PORT}" 12 | 13 | webapp: 14 | chatInterface: "event" 15 | speechFlags: "" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/ucs_apps/chat_bot/stock_bot/app-params.yaml: -------------------------------------------------------------------------------- 1 | chat-engine: 2 | botConfigName: stock_bot_config.yml 3 | interface: "event" 4 | logLevel: "DEBUG" 5 | # gunicorn configs 6 | gunicornWorkers: "1" 7 | gunicornTimeout: "150" 8 | 9 | plugin-server: 10 | pluginConfigPath: "plugin_config.yaml" 11 | pluginConfig: 12 | config: 13 | workers: 4 14 | timeout: 120 15 | 16 | webapp: 17 | chatInterface: "event" 18 | speechFlags: "" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/deploy/wheel/aceagent-4.1.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/ace_agent/4.1/deploy/wheel/aceagent-4.1.0-py3-none-any.whl -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/chitchat_bot/colang/main.co: -------------------------------------------------------------------------------- 1 | import core 2 | import llm 3 | 4 | flow technical helper 5 | activate notification of undefined flow start "I have encountered some technical issue!" 6 | activate notification of colang errors "I have encountered some technical issue!" 7 | 8 | flow chitchat 9 | user said something 10 | llm continue interaction 11 | 12 | flow main 13 | activate technical helper 14 | activate chitchat 15 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/chitchat_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/chitchat_bot/chitchat_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: chitchat 2 | 3 | # Using OpenAI 4 | models: 5 | - type: main 6 | engine: openai 7 | model: gpt-3.5-turbo-instruct 8 | parameters: 9 | stop: ["\n"] -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/chitchat_bot/colang/fallback.co: -------------------------------------------------------------------------------- 1 | define flow ... 2 | priority 0.1 3 | user ... 4 | bot responds truthfully 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/chitchat_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/npc_bots/elara/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | if not $player_name: 4 | $player_name = "Kai" 5 | bot respond with helpful answer -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/npc_bots/jin/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | if not $player_name: 4 | $player_name = "Kai" 5 | bot respond with helpful answer -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/npc_bots/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 5 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 6 | url: localhost:8001 7 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/rag_bot/flows.co: -------------------------------------------------------------------------------- 1 | define flow 2 | user ... 3 | $answer = execute chat_plugin(\ 4 | endpoint="rag/chat",\ 5 | ) 6 | bot respond 7 | 8 | define bot respond 9 | "{{$answer}}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/rag_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/rag_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: rag 7 | path: plugins/rag.py 8 | parameters: 9 | RAG_SERVER_URL: "http://localhost:8081" 10 | # STOP_WORDS: ["\n"] # Optional parameters for RAG 11 | # TEMPERATURE: 0.2 12 | # TOP_K: 0.7 13 | # MAX_TOKENS: 200 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/rag_bot/rag_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: genai_rag_bot 2 | 3 | models: [] 4 | streaming: True -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/spanish_bot_nmt/colang/date.co: -------------------------------------------------------------------------------- 1 | define user ask current date 2 | "What is the current time?" 3 | "What time is it now?" 4 | "What day is today?" 5 | "What time is it?" 6 | "What is today's date?" 7 | "What is the current date?" 8 | 9 | define flow current date 10 | user ask current date 11 | $date = execute plugin(endpoint="date/get_date") 12 | bot provide $date -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/spanish_bot_nmt/colang/general.co: -------------------------------------------------------------------------------- 1 | define user express greeting 2 | "Good morning" 3 | "Good afternoon" 4 | "Good night" 5 | "Goodbye" 6 | "Thank you" 7 | "Hello" 8 | 9 | define user ask how are you 10 | "How are you?" 11 | 12 | define flow user greets 13 | user express greeting 14 | bot express greeting 15 | 16 | define flow how are you 17 | user ask how are you 18 | bot responds accordingly -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/spanish_bot_nmt/colang/open_domain.co: -------------------------------------------------------------------------------- 1 | define user ask open domain query 2 | "What is the human life expectancy in the United States?" 3 | "Who is the Prime Minister of India?" 4 | "What is the capital of Spain?" 5 | "How far is the sun from the earth?" 6 | 7 | define flow open domain 8 | user ask open domain query 9 | bot responds truthfully -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/spanish_bot_nmt/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" # triton grpc url 4 | riva_url: "localhost:50051" # Riva GRPC API, Needed for NMT models 5 | nlp_models: 6 | - nvidia/riva/rmir_megatronnmt_any_en_500m:2.17.0 # NMT any language to english model 7 | - nvidia/riva/rmir_megatronnmt_en_any_500m:2.17.0 # NMT english to any language model -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/spanish_bot_nmt/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: weather 7 | - name: date -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/stock_bot/colang/fallback.co: -------------------------------------------------------------------------------- 1 | define flow ... 2 | priority 0.1 3 | user ... 4 | bot responds truthfully 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/stock_bot/colang/profanity_rail.co: -------------------------------------------------------------------------------- 1 | define user says profane words 2 | "you are stupid " 3 | "i want to kill you" 4 | "add a shit burger" 5 | "piss off" 6 | 7 | define bot asks to avoid abusive language 8 | "Please do not use abusive language." 9 | 10 | define flow 11 | user says profane words 12 | bot asks to avoid abusive language -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/stock_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 5 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 6 | url: localhost:8001 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/colang_1.0/stock_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: stock 7 | path: plugins/yahoo_fin.py 8 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/ddg_langchain_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/ddg_langchain_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: langchain 7 | path: ./plugins/langchain_agent.py -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/ddg_langchain_bot/plugins/requirements_dev.txt: -------------------------------------------------------------------------------- 1 | langchain==0.1.1 2 | langchain-community==0.0.13 3 | langchain-core==0.1.12 4 | duckduckgo-search==5.3.1b1 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/event_interface_tutorial_bot/step_6/actions.py: -------------------------------------------------------------------------------- 1 | from nemoguardrails.actions.actions import action 2 | 3 | 4 | @action(name="CountWordsAction") 5 | async def count_words_action(transcript: str) -> int: 6 | return len(transcript.split()) 7 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/event_interface_tutorial_bot/step_7/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: stock 7 | path: "./plugin/yahoo_fin.py" 8 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/food_ordering_bot/colang/general.co: -------------------------------------------------------------------------------- 1 | flow user makes filler statement 2 | """User says a filler question like 'I see' or 'Hi' """ 3 | user intent "food_order.filler" 4 | 5 | flow user goes off topic 6 | """User asks about something unrelated to food ordering""" 7 | user intent "food_order.nomatch" 8 | 9 | flow answer filler statement 10 | user makes filler statement 11 | llm continue interaction 12 | 13 | flow answer off topic question 14 | user goes off topic 15 | bot say "I can only answer questions related to food ordering." -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/food_ordering_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | # Defination of different natural processing models used by bot 2 | 3 | model_servers: 4 | - name: triton 5 | url: "localhost:8004" 6 | nlp_models: 7 | - nvidia/ace/rmir_nlp_tokkio_drive_thru_intent_slot_bert_base:1.2.4 8 | 9 | - name: riva 10 | url: "localhost:8001" 11 | speech_models: 12 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 #english 13 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 14 | 15 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/food_ordering_bot/plugin/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | copyright(c) 2022 NVIDIA Corporation.All rights reserved. 3 | 4 | NVIDIA Corporation and its licensors retain all intellectual property 5 | and proprietary rights in and to this software, related documentation 6 | and any modifications thereto.Any use, reproduction, disclosure or 7 | distribution of this software and related documentation without an express 8 | license agreement from NVIDIA Corporation is strictly prohibited. 9 | """ 10 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/food_ordering_bot/plugin/requirements.txt: -------------------------------------------------------------------------------- 1 | word2number==1.1 2 | pykwalify==1.8.0 3 | tinydb==4.8.0 4 | editdistance==0.8.1 5 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/langgraph_plan_and_execute/langgraph_bot_config.yaml: -------------------------------------------------------------------------------- 1 | bot: langchain_bot 2 | 3 | colang_version: "2.x" 4 | 5 | storage: 6 | name: cache 7 | 8 | configs: 9 | use_stateful_guardrails: True 10 | 11 | models: [] -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/langgraph_plan_and_execute/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/langgraph_plan_and_execute/plugin/requirements_dev.txt: -------------------------------------------------------------------------------- 1 | tavily-python==0.3.3 2 | langgraph==0.0.31 3 | langchain-openai==0.1.2 4 | langchain==0.1.12 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/langgraph_plan_and_execute/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: langgraph 7 | path: ./plugin/plan_and_execute.py -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/llm_bot/llm_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: llm_bot 2 | 3 | colang_version: "2.x" 4 | 5 | storage: 6 | name: cache 7 | 8 | configs: 9 | use_stateful_guardrails: True 10 | 11 | models: [] 12 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/llm_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/npc_bots/elara/bot_config.yaml: -------------------------------------------------------------------------------- 1 | bot: elara 2 | colang_version: "2.x" 3 | 4 | storage: 5 | name: cache 6 | 7 | configs: 8 | use_stateful_guardrails: True 9 | 10 | streaming: False 11 | 12 | models: [] -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/npc_bots/elara/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 5 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 6 | url: localhost:8001 7 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/npc_bots/jin/bot_config.yaml: -------------------------------------------------------------------------------- 1 | bot: jin 2 | colang_version: "2.x" 3 | 4 | storage: 5 | name: cache 6 | 7 | configs: 8 | use_stateful_guardrails: True 9 | 10 | streaming: False 11 | 12 | models: [] -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/npc_bots/jin/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 5 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 6 | url: localhost:8001 7 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/npc_bots/plugins/requirements.txt: -------------------------------------------------------------------------------- 1 | openai==1.44.0 2 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/rag_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" 4 | speech_models: 5 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 6 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/rag_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: rag 7 | path: plugins/rag.py 8 | parameters: 9 | RAG_SERVER_URL: "http://localhost:8081" 10 | # STOP_WORDS: ["\n"] # Optional parameters for RAG 11 | # TEMPERATURE: 0.2 12 | # TOP_K: 0.7 13 | # MAX_TOKENS: 200 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/rag_bot/plugins/utils.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | 4 | def validate_url(url: str): 5 | """ 6 | This function checks if the input string adheres to a format like "http://20.235.248.119:8081". 7 | 8 | Args: 9 | url: The URL string to validate. 10 | 11 | Returns: 12 | True if the URL is valid, False otherwise. 13 | """ 14 | regex = r"^https?://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:[1-9]\d{0,4}$" 15 | return re.match(regex, url) is not None 16 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/rag_bot/rag_bot_config.yml: -------------------------------------------------------------------------------- 1 | bot: genai_rag_bot 2 | 3 | colang_version: "2.x" 4 | 5 | storage: 6 | name: cache 7 | 8 | configs: 9 | use_stateful_guardrails: True 10 | 11 | models: [] -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot/colang/date.co: -------------------------------------------------------------------------------- 1 | flow user asked current date 2 | user said "¿Cuál es la hora actual?" 3 | or user said "¿Qué hora es ahora?" 4 | or user said"¿Qué día es hoy?" 5 | or user said "¿Qué hora es?" 6 | or user said "¿Cuál es la fecha de hoy?" 7 | or user said "¿Cuál es la fecha actual?" 8 | 9 | flow current date 10 | user asked current date 11 | $date = await InvokeFulfillmentAction(request_type="get", 12 | endpoint="/date/get_date") 13 | bot respond in spanish "Today's date is {$date}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot/colang/off_topic.co: -------------------------------------------------------------------------------- 1 | flow off topic 2 | unhandled user intent 3 | bot respond in spanish "Sorry, I am not designed to reply to that!" 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot/colang/open_domain.co: -------------------------------------------------------------------------------- 1 | flow user asked open domain query 2 | user said "¿Cuál es la esperanza de vida humana en los Estados Unidos?" 3 | or user said "¿Quién es el primer ministro de la India?" 4 | or user said "¿Cuál es la capital de España?" 5 | or user said "¿A qué distancia está el sol de la tierra?" 6 | 7 | flow open domain 8 | user asked open domain query 9 | $response = ..."Reply to previous query in spanish. Enclose the reply in quotes" 10 | bot say "{$response}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | # Default fulfillments 7 | - name: date 8 | - name: weather -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot_nmt/colang/date.co: -------------------------------------------------------------------------------- 1 | flow user asked current date 2 | user said "What is the current time?" 3 | or user said "What time is it now?" 4 | or user said "What day is today?" 5 | or user said "What time is it?" 6 | or user said "What is today's date?" 7 | or user said "What is the current date?" 8 | 9 | flow current date 10 | user asked current date 11 | $date = await InvokeFulfillmentAction(request_type="get", 12 | endpoint="/date/get_date") 13 | bot say "Today's date is {$date}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot_nmt/colang/off_topic.co: -------------------------------------------------------------------------------- 1 | flow off topic 2 | unhandled user intent 3 | bot say "Sorry, I am not designed to reply to that!" 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot_nmt/colang/open_domain.co: -------------------------------------------------------------------------------- 1 | flow user asked open domain query 2 | user said "What is the human life expectancy in the United States?" 3 | or user said "Who is the Prime Minister of India?" 4 | or user said "What is the capital of Spain?" 5 | or user said "How far is the sun from the earth?" 6 | 7 | flow open domain 8 | user asked open domain query 9 | $response = ..."Reply to user's previous query. Enclose the reply in quotes" 10 | bot say "{$response}" -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot_nmt/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | url: "localhost:8001" # triton grpc url 4 | riva_url: "localhost:50051" # Riva GRPC API, Needed for NMT models 5 | nlp_models: 6 | - nvidia/riva/rmir_megatronnmt_any_en_500m:2.17.0 # NMT any language to english model 7 | - nvidia/riva/rmir_megatronnmt_en_any_500m:2.17.0 # NMT english to any language model -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/spanish_bot_nmt/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: weather 7 | - name: date -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/stock_bot/colang/off_topic.co: -------------------------------------------------------------------------------- 1 | flow off topic 2 | unhandled user intent 3 | bot say "Sorry, I am not designed to reply to that!" 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/stock_bot/colang/profanity_rail.co: -------------------------------------------------------------------------------- 1 | flow user mentioned profane words 2 | user said "you are stupid" 3 | or user said "i want to kill you" 4 | or user said "piss off" 5 | or user said "damn it" 6 | or user said "son of a bitch" 7 | 8 | flow bot asks to avoid abusive language 9 | bot say "Please do not use abusive language." 10 | 11 | flow profanity rail 12 | user mentioned profane words 13 | bot asks to avoid abusive language 14 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/stock_bot/model_config.yaml: -------------------------------------------------------------------------------- 1 | model_servers: 2 | - name: riva 3 | speech_models: 4 | - nvidia/ace/rmir_asr_parakeet_1-1b_en_us_str_vad:2.17.0 5 | - nvidia/riva/rmir_tts_fastpitch_hifigan_en_us_ipa:2.17.0 6 | url: localhost:8001 -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/samples/stock_bot/plugin_config.yaml: -------------------------------------------------------------------------------- 1 | config: 2 | workers: 1 3 | timeout: 30 4 | 5 | plugins: 6 | - name: stock 7 | path: plugins/yahoo_fin.py 8 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/client/.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ACE Agent Bot Web UI 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/client/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/client/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/architecture_audio.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c9dcd7aef6af9521bb17f61c4017dcd14bbf00109f89f1f84759628a1f46b588 3 | size 142717 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/architecture_bot_audio.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e0b2cb0bc0246bff1967af5f7547c6bd1df7750a963ca85a7ed749b3525e8a12 3 | size 67866 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/architecture_high_level.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:69094cd449e0116e85f37aacd6139269587103f0529838cbf8c6051ee1d3ec74 3 | size 60143 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/example_task.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c3d7fd0b55cf659fb8a50641e776422356a0d930716f92a54987d35a134eeda3 3 | size 218614 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/image.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cb93a4e11a5671883f128a13646eb9d2cf58859258dcc5c3e8c833fa61ec76d1 3 | size 204232 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/screenshot_emoji_speech.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:60b8aefacd2902ba8aa9b21ea35e422f6d4f83d19b546f98830687dcef1c4f06 3 | size 164959 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/screenshot_emoji_text.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:776c4cfa34918631593b38c56b5f966ff8b1474395988057f309b88c6a52e382 3 | size 148273 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/screenshot_speech.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2cf3e996b63950c5b0839318998ca10f1d3e01f3bc6810f1576bdff8a6b5a4af 3 | size 206569 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/images/tasks.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:05eac494f85f83dc25ca9213658294358dcc436d0517670e9b149a84a95cbb7d 3 | size 204182 4 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/server/.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "resolveJsonModule": true, 4 | "moduleResolution": "Node", 5 | "lib": ["ES2023"], 6 | "module": "ES2022", 7 | "target": "ES2022", 8 | "skipLibCheck": true 9 | }, 10 | "exclude": ["**/*.test.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /microservices/ace_agent/4.1/webui/shared/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Claire_anger.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Claire_anger.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Claire_joy_mandarin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Claire_joy_mandarin.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Claire_neutral.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Claire_neutral.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Claire_outofbreath_mandarin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Claire_outofbreath_mandarin.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Claire_sadness.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Claire_sadness.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Mark_anger.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Mark_anger.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Mark_joy.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Mark_joy.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Mark_neutral.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Mark_neutral.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Mark_outofbreath.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Mark_outofbreath.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/example_audio/Mark_sadness.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/example_audio/Mark_sadness.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/proto/requirements.txt: -------------------------------------------------------------------------------- 1 | protobuf-gen==0.0.4 2 | PyYAML==6.0.1 3 | grpclib==0.4.7 4 | googleapis-common-protos==1.60.0 5 | protobuf==4.24.1 6 | protobuf-gen==0.0.4 7 | -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/proto/sample_wheel/nvidia_ace-1.0.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/proto/sample_wheel/nvidia_ace-1.0.0-py3-none-any.whl -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/scripts/audio2face_api_client/audio/sample.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.0/scripts/audio2face_api_client/audio/sample.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/scripts/audio2face_api_client/requirements: -------------------------------------------------------------------------------- 1 | numpy==1.26.4 2 | scipy==1.13.0 3 | grpcio==1.64.0 4 | protobuf==4.24.1 5 | PyYAML==6.0.1 6 | pandas==2.2.2 -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/scripts/audio2face_in_animation_pipeline_validation_app/requirements.txt: -------------------------------------------------------------------------------- 1 | grpcio==1.64.0 2 | protobuf==4.24.1 3 | numpy==1.26.4 4 | scipy==1.13.0 5 | -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.0/scripts/audio2face_microservices_interaction_app/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.26.4 2 | scipy==1.13.0 3 | grpcio==1.64.0 4 | protobuf==4.24.1 5 | PyYAML==6.0.1 6 | pandas==2.2.2 7 | -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Claire_anger.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Claire_anger.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Claire_joy_mandarin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Claire_joy_mandarin.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Claire_neutral.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Claire_neutral.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Claire_outofbreath_mandarin.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Claire_outofbreath_mandarin.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Claire_sadness.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Claire_sadness.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Mark_anger.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Mark_anger.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Mark_joy.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Mark_joy.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Mark_neutral.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Mark_neutral.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Mark_outofbreath.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Mark_outofbreath.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/example_audio/Mark_sadness.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/example_audio/Mark_sadness.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/proto/requirements.txt: -------------------------------------------------------------------------------- 1 | protobuf-gen==0.0.4 2 | PyYAML==6.0.1 3 | grpclib==0.4.7 4 | googleapis-common-protos==1.60.0 5 | protobuf==4.24.1 6 | protobuf-gen==0.0.4 7 | -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/proto/sample_wheel/nvidia_ace-1.0.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/proto/sample_wheel/nvidia_ace-1.0.0-py3-none-any.whl -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/scripts/audio2face_api_client/audio/sample.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NVIDIA/ACE/8bebcb6acb17da4690b926d3e4f5c930610acd7b/microservices/audio_2_face_microservice/1.2/scripts/audio2face_api_client/audio/sample.wav -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/scripts/audio2face_api_client/requirements: -------------------------------------------------------------------------------- 1 | numpy==1.26.4 2 | scipy==1.13.0 3 | grpcio==1.64.0 4 | protobuf==4.24.1 5 | PyYAML==6.0.1 6 | pandas==2.2.2 -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/scripts/audio2face_in_animation_pipeline_validation_app/requirements.txt: -------------------------------------------------------------------------------- 1 | grpcio==1.64.0 2 | protobuf==4.24.1 3 | numpy==1.26.4 4 | scipy==1.13.0 5 | -------------------------------------------------------------------------------- /microservices/audio_2_face_microservice/1.2/scripts/audio2face_microservices_interaction_app/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.26.4 2 | scipy==1.13.0 3 | grpcio==1.64.0 4 | protobuf==4.24.1 5 | PyYAML==6.0.1 6 | pandas==2.2.2 7 | -------------------------------------------------------------------------------- /tools/avatar_configurator/1.0/README.md: -------------------------------------------------------------------------------- 1 | # Avatar Configurator 2 | 3 | See [ACE documentation](https://docs.nvidia.com/ace/latest/modules/avatar_customization/index.html) for more information. 4 | -------------------------------------------------------------------------------- /tools/avatar_configurator/1.0/template_scene.zip: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:30e0a37853022a0ec5742999bd1049100f470deb0bede5c53a85715659eb4fb6 3 | size 38355553 4 | -------------------------------------------------------------------------------- /workflows/animation_pipeline/1.0/README.md: -------------------------------------------------------------------------------- 1 | # ACE Animation Pipeline Workflow 2 | 3 | See [ACE documentation](https://docs.nvidia.com/ace/latest/workflows/animation_pipeline/index.html) for more information. 4 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/Tokkio_example.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6995fdbeedab43e969f3cf413ac73c6e0f9c34fc50553f60ce3d860c5dbdd2c2 3 | size 77854 4 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/avatar_collage.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:684074c91f22635c04494a1ff03e9f31f76214cfbb69bd1bc962d9d832e2ae33 3 | size 809867 4 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/README.md: -------------------------------------------------------------------------------- 1 | For full documentation on how to use this setup script, please refer to its AWS Automated setup guide under [CSP Setup Guides](https://docs.nvidia.com/ace/latest/workflows/tokkio/index.html#csp-setup-guides) section of the Tokkio documentation. 2 | 3 | For further questions or more details contact your Nvidia representative. -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/deploy-spec/backend.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | backend "s3" { 4 | } 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/deploy-spec/provider.tf: -------------------------------------------------------------------------------- 1 | 2 | provider "aws" { 3 | region = var.provider_config.region 4 | access_key = var.provider_config.access_key 5 | secret_key = var.provider_config.secret_key 6 | } 7 | 8 | # fixed region for cloudfront certs 9 | provider "aws" { 10 | region = "us-east-1" 11 | alias = "cloudfront" 12 | access_key = var.provider_config.access_key 13 | secret_key = var.provider_config.secret_key 14 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/deploy-spec/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | version = "= 4.57.0" 7 | } 8 | random = { 9 | source = "hashicorp/random" 10 | version = "= 3.4.3" 11 | } 12 | } 13 | required_version = "= 1.2.4" 14 | } 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/acm-certificate/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "arn" { 3 | value = aws_acm_certificate_validation.this.certificate_arn 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/acm-certificate/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "domain_name" { 3 | type = string 4 | } 5 | 6 | variable "subject_alternative_names" { 7 | type = list(string) 8 | default = [] 9 | } 10 | 11 | variable "hosted_zone_name" { 12 | type = string 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/acm-certificate/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/alb-listener/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "arn" { 3 | value = aws_lb_listener.this.arn 4 | } 5 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/alb-listener/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/alb/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "security_group_id" { 3 | value = one(aws_security_group.this.*.id) 4 | } 5 | 6 | output "security_group_ids" { 7 | value = aws_lb.this.security_groups 8 | } 9 | 10 | output "arn" { 11 | value = aws_lb.this.arn 12 | } 13 | 14 | output "dns_name" { 15 | value = aws_lb.this.dns_name 16 | } 17 | 18 | output "zone_id" { 19 | value = aws_lb.this.zone_id 20 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/alb/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/ec2/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = var.include_public_ip ? aws_eip.this[0].public_ip : local.public_ip 4 | } 5 | 6 | output "private_ip" { 7 | value = aws_network_interface.this.private_ip 8 | } 9 | 10 | output "security_group_id" { 11 | value = one(aws_security_group.this.*.id) 12 | } 13 | 14 | output "security_group_ids" { 15 | value = aws_network_interface.this.security_groups 16 | } 17 | 18 | output "instance_id" { 19 | value = local.instance_id 20 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/ec2/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/keypair/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "aws_key_pair" "this" { 3 | public_key = var.public_key 4 | key_name = var.key_name 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/keypair/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "name" { 3 | value = aws_key_pair.this.key_name 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/keypair/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "public_key" { 3 | type = string 4 | } 5 | 6 | variable "key_name" { 7 | type = string 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/keypair/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/networking/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "vpc_id" { 3 | value = aws_vpc.this.id 4 | } 5 | 6 | output "private_subnet_ids" { 7 | value = aws_subnet.default_private.*.id 8 | } 9 | 10 | output "public_subnet_ids" { 11 | value = aws_subnet.default_public.*.id 12 | } 13 | 14 | output "nat_gateway_ip" { 15 | value = one(aws_nat_gateway.default.*.public_ip) 16 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/networking/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/security-group/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "security_group_id" { 3 | value = aws_security_group.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/security-group/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "vpc_id" { 7 | type = string 8 | } 9 | 10 | variable "ingress_rules" { 11 | type = list(object({ 12 | description = string 13 | from_port = number 14 | to_port = number 15 | protocol = string 16 | cidr_blocks = list(string) 17 | ipv6_cidr_blocks = list(string) 18 | security_groups = list(string) 19 | self = bool 20 | })) 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/security-group/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/target-group/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "arn" { 3 | value = aws_lb_target_group.this.arn 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/aws/target-group/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/config/install-aws-cli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | if ! hash aws 2>/dev/null; then 5 | echo "Installing awscli -- Start" 6 | { 7 | rm -f /tmp/awscliv2.zip 8 | curl --silent "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o /tmp/awscliv2.zip 9 | rm -rf /tmp/aws 10 | if ! hash unzip 2>/dev/null; then 11 | sudo apt-get -y update 12 | sudo apt-get -y install unzip 13 | fi 14 | unzip /tmp/awscliv2.zip -d /tmp 15 | sudo /tmp/aws/install 16 | } > /dev/null 17 | echo "Installing awscli -- End" 18 | fi -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/config/install-ngc-cli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | echo "Install NGC CLI -- Start" 5 | 6 | apt-get -y update 7 | apt-get -y install unzip 8 | wget --quiet --content-disposition https://ngc.nvidia.com/downloads/ngccli_linux.zip -O /tmp/ngccli_linux.zip 9 | mkdir -p /usr/local/lib 10 | unzip -q /tmp/ngccli_linux.zip -d /usr/local/lib 11 | ln -s /usr/local/lib/ngc-cli/ngc /usr/local/bin/ngc 12 | 13 | echo "Install NGC CLI -- End" -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/config/verify-gpu-operator-ready.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | echo "Verify GPU Operator Ready -- Start" 5 | 6 | while [[ "$(kubectl --kubeconfig /etc/kubernetes/admin.conf --namespace nvidia-gpu-operator --no-headers --field-selector="status.phase!=Succeeded,status.phase!=Running" get pods | wc -l)" != 0 ]]; do 7 | sleep 10 8 | echo "Waiting for GPU Operator to get READY..." 9 | done 10 | 11 | echo "Verify GPU Operator Ready -- End" 12 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/data.tf: -------------------------------------------------------------------------------- 1 | 2 | data "aws_route53_zone" "zone" { 3 | name = local.base_domain 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/route53-api.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "aws_route53_record" "alb_dns" { 3 | zone_id = data.aws_route53_zone.zone.zone_id 4 | name = local.api_domain 5 | type = "A" 6 | 7 | alias { 8 | name = module.alb.dns_name 9 | zone_id = module.alb.zone_id 10 | evaluate_target_health = true 11 | } 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/route53-ui.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "aws_route53_record" "cloudfront_dns" { 3 | zone_id = data.aws_route53_zone.zone.zone_id 4 | name = local.ui_domain 5 | type = "A" 6 | 7 | alias { 8 | name = aws_cloudfront_distribution.ui_distribution.domain_name 9 | zone_id = aws_cloudfront_distribution.ui_distribution.hosted_zone_id 10 | evaluate_target_health = false 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/app/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | aws = { 4 | source = "hashicorp/aws" 5 | configuration_aliases = [ 6 | aws.cloudfront 7 | ] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/base/certificates.tf: -------------------------------------------------------------------------------- 1 | 2 | module "star_alb_certificate" { 3 | source = "../../aws/acm-certificate" 4 | domain_name = local.star_base_domain 5 | hosted_zone_name = var.base_domain 6 | } 7 | 8 | module "star_cloudfront_certificate" { 9 | source = "../../aws/acm-certificate" 10 | domain_name = local.star_base_domain 11 | hosted_zone_name = var.base_domain 12 | providers = { 13 | aws = aws.cloudfront 14 | } 15 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/base/keypair.tf: -------------------------------------------------------------------------------- 1 | 2 | module "key_pair" { 3 | source = "../../aws/keypair" 4 | public_key = var.ssh_public_key 5 | key_name = format("%s-key", var.name) 6 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/base/networking.tf: -------------------------------------------------------------------------------- 1 | 2 | module "networking" { 3 | source = "../../aws/networking" 4 | cidr_block = var.cidr_block 5 | vpc_name = format("%s-vpc", var.name) 6 | public_subnet_names = [for i in range(1, 3) : format("%s-pub-%s", var.name, i)] 7 | private_subnet_names = [for i in range(1, 3) : format("%s-prv-%s", var.name, i)] 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/base/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | configuration_aliases = [ 7 | aws.cloudfront 8 | ] 9 | } 10 | random = { 11 | source = "hashicorp/random" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/coturn/config/coturn-server-env.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | export TURNSERVER_PRIVATE_IP="$(curl http://169.254.169.254/latest/meta-data/local-ipv4)" 5 | export TURNSERVER_PUBLIC_IP="$(curl http://169.254.169.254/latest/meta-data/public-ipv4)" 6 | export TURNSERVER_REALM="${coturn.realm}" 7 | export TURNSERVER_USERNAME="${coturn.username}" 8 | export TURNSERVER_PASSWORD="${coturn.password}" -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/coturn/config/install-aws-cli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | if ! hash aws 2>/dev/null; then 5 | echo "Installing awscli -- Start" 6 | { 7 | rm -f /tmp/awscliv2.zip 8 | curl --silent "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o /tmp/awscliv2.zip 9 | rm -rf /tmp/aws 10 | if ! hash unzip 2>/dev/null; then 11 | sudo apt-get -y update 12 | sudo apt-get -y install unzip 13 | fi 14 | unzip /tmp/awscliv2.zip -d /tmp 15 | sudo /tmp/aws/install 16 | } > /dev/null 17 | echo "Installing awscli -- End" 18 | fi -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/coturn/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = module.coturn_instance.public_ip 4 | } 5 | output "private_ip" { 6 | value = module.coturn_instance.private_ip 7 | } 8 | output "coturn_instance" { 9 | value = module.coturn_instance 10 | } 11 | output "port" { 12 | value = 3478 13 | } 14 | output "realm" { 15 | value = var.coturn_settings.realm 16 | } 17 | output "username" { 18 | value = var.coturn_settings.username 19 | sensitive = true 20 | } 21 | output "password" { 22 | value = var.coturn_settings.password 23 | sensitive = true 24 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/coturn/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/rp/config/rp-env.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | 5 | export NGC_CLI_API_KEY="${ngc_api_key}" 6 | export RP_CHART_URL="${chart_url}" 7 | export CNS_COMMIT=${cns_commit} 8 | export CNS_VERSION=${cns_version} -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/rp/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = element([for instance_suffix in var.instance_suffixes : module.rp_instance[instance_suffix].public_ip], 0) 4 | } 5 | 6 | output "private_ip" { 7 | value = element([for instance_suffix in var.instance_suffixes : module.rp_instance[instance_suffix].private_ip], 0) 8 | } 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/aws/modules/tokkio/rp/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_providers { 3 | aws = { 4 | source = "hashicorp/aws" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/README.md: -------------------------------------------------------------------------------- 1 | For full documentation on how to use this setup script, please refer to its AWS Automated setup guide under [CSP Setup Guides](https://docs.nvidia.com/ace/latest/workflows/tokkio/index.html#csp-setup-guides) section of the Tokkio documentation. 2 | 3 | For further questions or more details contact your Nvidia representative. -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/deploy-spec/backend.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | backend "azurerm" { 4 | } 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/deploy-spec/provider.tf: -------------------------------------------------------------------------------- 1 | 2 | provider "azurerm" { 3 | tenant_id = var.provider_config.tenant_id 4 | subscription_id = var.provider_config.subscription_id 5 | client_id = var.provider_config.client_id 6 | client_secret = var.provider_config.client_secret 7 | features {} 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/deploy-spec/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | version = "= 3.32.0" 7 | } 8 | } 9 | required_version = "= 1.2.4" 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/application-gateway/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = { for frontend_ip_configuration in var.frontend_ip_configurations : frontend_ip_configuration.public_ip_name => azurerm_public_ip.public_ip[frontend_ip_configuration.public_ip_name].ip_address } 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/application-gateway/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/cdn-for-static-website/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "endpoint_id" { 3 | value = azurerm_cdn_endpoint.cdn_endpoint.id 4 | } 5 | 6 | output "endpoint_fqdn" { 7 | value = azurerm_cdn_endpoint.cdn_endpoint.fqdn 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/cdn-for-static-website/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "resource_group_name" { 3 | type = string 4 | } 5 | 6 | variable "target_host_name" { 7 | type = string 8 | } 9 | 10 | variable "cdn_profile_name" { 11 | type = string 12 | } 13 | 14 | variable "cdn_endpoint_name" { 15 | type = string 16 | } 17 | 18 | variable "additional_tags" { 19 | type = map(string) 20 | default = {} 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/cdn-for-static-website/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/custom-domain-for-cdn/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "custom_domain_fqdn" { 3 | value = azurerm_cdn_endpoint_custom_domain.custom_domain.host_name 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/custom-domain-for-cdn/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "cdn_endpoint_id" { 3 | type = string 4 | } 5 | 6 | variable "cdn_endpoint_fqdn" { 7 | type = string 8 | } 9 | 10 | variable "base_domain" { 11 | type = string 12 | } 13 | 14 | variable "ui_sub_domain" { 15 | type = string 16 | } 17 | 18 | variable "additional_tags" { 19 | type = map(string) 20 | default = {} 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/custom-domain-for-cdn/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/dns-a-record/main.tf: -------------------------------------------------------------------------------- 1 | 2 | data "azurerm_dns_zone" "dns_zone" { 3 | name = var.base_domain 4 | } 5 | 6 | resource "azurerm_dns_a_record" "a_record" { 7 | name = var.name 8 | zone_name = data.azurerm_dns_zone.dns_zone.name 9 | resource_group_name = data.azurerm_dns_zone.dns_zone.resource_group_name 10 | ttl = var.ttl 11 | records = var.ip_addresses 12 | target_resource_id = var.azure_resource_id 13 | tags = var.additional_tags 14 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/dns-a-record/output.tf: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/dns-a-record/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "base_domain" { 7 | type = string 8 | } 9 | 10 | variable "ttl" { 11 | type = number 12 | } 13 | 14 | variable "ip_addresses" { 15 | type = list(string) 16 | } 17 | 18 | variable "azure_resource_id" { 19 | type = string 20 | } 21 | 22 | variable "additional_tags" { 23 | type = map(string) 24 | default = {} 25 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/dns-a-record/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/key-vault-certificate/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "azurerm_key_vault_certificate" "certificate" { 3 | name = var.name 4 | key_vault_id = var.key_vault_id 5 | certificate { 6 | contents = var.contents 7 | password = var.password 8 | } 9 | tags = var.additional_tags 10 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/key-vault-certificate/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = azurerm_key_vault_certificate.certificate.id 4 | } 5 | 6 | output "versionless_id" { 7 | value = azurerm_key_vault_certificate.certificate.versionless_id 8 | } 9 | 10 | output "secret_id" { 11 | value = azurerm_key_vault_certificate.certificate.secret_id 12 | } 13 | 14 | output "versionless_secret_id" { 15 | value = azurerm_key_vault_certificate.certificate.versionless_secret_id 16 | } 17 | 18 | output "name" { 19 | value = azurerm_key_vault_certificate.certificate.name 20 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/key-vault-certificate/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "key_vault_id" { 7 | type = string 8 | } 9 | 10 | variable "contents" { 11 | type = string 12 | } 13 | 14 | variable "password" { 15 | type = string 16 | } 17 | 18 | variable "additional_tags" { 19 | type = map(string) 20 | default = {} 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/key-vault-certificate/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/key-vault/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = azurerm_key_vault.key_vault.id 4 | } 5 | 6 | output "name" { 7 | value = azurerm_key_vault.key_vault.name 8 | } 9 | 10 | output "access_policy" { 11 | value = { for access_policy in var.access_policies : azurerm_key_vault_access_policy.access_policy[access_policy.identifier].id => access_policy.object_id } 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/key-vault/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/keypair/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "azurerm_ssh_public_key" "this" { 3 | name = var.name 4 | resource_group_name = var.resource_group_name 5 | location = var.region 6 | public_key = var.public_key 7 | tags = var.additional_tags 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/keypair/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "name" { 3 | value = azurerm_ssh_public_key.this.name 4 | } 5 | 6 | output "public_key" { 7 | value = azurerm_ssh_public_key.this.public_key 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/keypair/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "resource_group_name" { 7 | type = string 8 | } 9 | 10 | variable "region" { 11 | type = string 12 | } 13 | 14 | variable "public_key" { 15 | type = string 16 | } 17 | 18 | variable "additional_tags" { 19 | type = map(string) 20 | default = {} 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/keypair/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/linux-virtual-machine/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = one(azurerm_public_ip.public_ip.*.ip_address) 4 | } 5 | 6 | output "private_ip" { 7 | value = azurerm_network_interface.network_interface.private_ip_address 8 | } 9 | 10 | output "network_interface_id" { 11 | value = azurerm_network_interface.network_interface.id 12 | } 13 | 14 | output "ip_configuration_name" { 15 | value = azurerm_network_interface.network_interface.ip_configuration[0].name 16 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/linux-virtual-machine/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/networking/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "region" { 3 | value = azurerm_virtual_network.virtual_network.location 4 | } 5 | 6 | output "virtual_network_id" { 7 | value = azurerm_virtual_network.virtual_network.id 8 | } 9 | 10 | output "subnet_ids" { 11 | value = { for subnet in var.subnet_details : subnet.identifier => azurerm_subnet.subnet[subnet.identifier].id } 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/networking/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/resource-group/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "azurerm_resource_group" "this" { 3 | name = var.name 4 | location = var.region 5 | tags = var.additional_tags 6 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/resource-group/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = azurerm_resource_group.this.id 4 | } 5 | 6 | output "name" { 7 | value = azurerm_resource_group.this.name 8 | } 9 | 10 | output "location" { 11 | value = azurerm_resource_group.this.location 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/resource-group/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | } 9 | 10 | variable "additional_tags" { 11 | type = map(string) 12 | default = {} 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/resource-group/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account-backed-static-website/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = azurerm_storage_account.storage_account.id 4 | } 5 | 6 | output "name" { 7 | value = azurerm_storage_account.storage_account.name 8 | } 9 | 10 | output "primary_web_host" { 11 | value = azurerm_storage_account.storage_account.primary_web_host 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account-backed-static-website/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "resource_group_name" { 3 | type = string 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | } 9 | 10 | variable "name" { 11 | type = string 12 | } 13 | 14 | variable "index_document" { 15 | type = string 16 | } 17 | 18 | variable "error_404_document" { 19 | type = string 20 | } 21 | 22 | variable "additional_tags" { 23 | type = map(string) 24 | default = {} 25 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account-backed-static-website/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "azurerm_storage_account" "storage_account" { 3 | name = replace(var.name, "/\\W/", "") 4 | resource_group_name = var.resource_group_name 5 | location = var.region 6 | account_tier = "Standard" 7 | account_replication_type = var.replication_type 8 | allow_nested_items_to_be_public = false 9 | tags = var.additional_tags 10 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = azurerm_storage_account.storage_account.id 4 | } 5 | 6 | output "name" { 7 | value = azurerm_storage_account.storage_account.name 8 | } 9 | 10 | output "primary_access_key" { 11 | value = azurerm_storage_account.storage_account.primary_access_key 12 | sensitive = true 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "resource_group_name" { 7 | type = string 8 | } 9 | 10 | variable "region" { 11 | type = string 12 | } 13 | 14 | variable "replication_type" { 15 | type = string 16 | default = "LRS" 17 | } 18 | 19 | variable "additional_tags" { 20 | type = map(string) 21 | default = {} 22 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/azure/storage-account/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/app/config/verify-gpu-operator-ready.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | echo "Verify GPU Operator Ready -- Start" 5 | 6 | while [[ "$(kubectl --kubeconfig /etc/kubernetes/admin.conf --namespace nvidia-gpu-operator --no-headers --field-selector="status.phase!=Succeeded,status.phase!=Running" get pods | wc -l)" != 0 ]]; do 7 | sleep 10 8 | echo "Waiting for GPU Operator to get READY..." 9 | done 10 | 11 | echo "Verify GPU Operator Ready -- End" -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/app/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "private_ips" { 3 | value = [for instance_suffix in var.instance_suffixes : module.api_vm[instance_suffix].private_ip] 4 | } 5 | output "ui_endpoint" { 6 | value = local.ui_endpoint 7 | } 8 | output "api_endpoint" { 9 | value = local.api_endpoint 10 | } 11 | output "elasticsearch_endpoint" { 12 | value = "https://${local.elastic_domain}" 13 | } 14 | output "kibana_endpoint" { 15 | value = "https://${local.kibana_domain}" 16 | } 17 | output "grafana_endpoint" { 18 | value = "https://${local.grafana_domain}" 19 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/app/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/base/keypair.tf: -------------------------------------------------------------------------------- 1 | 2 | module "keypair" { 3 | source = "../../azure/keypair" 4 | name = var.name 5 | resource_group_name = module.resource_group.name 6 | region = var.region 7 | public_key = var.ssh_public_key 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/base/networking.tf: -------------------------------------------------------------------------------- 1 | 2 | module "networking" { 3 | source = "../../azure/networking" 4 | name = var.name 5 | resource_group_name = module.resource_group.name 6 | region = var.region 7 | virtual_network_address_space = var.virtual_network_address_space 8 | subnet_details = local.subnet_details 9 | network_security_groups = local.network_security_groups 10 | network_security_rules = local.network_security_rules 11 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/base/resource-group.tf: -------------------------------------------------------------------------------- 1 | 2 | module "resource_group" { 3 | source = "../../azure/resource-group" 4 | name = var.name 5 | region = var.region 6 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/base/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/coturn/config/coturn-server-env.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | export TURNSERVER_PRIVATE_IP="$(curl -s -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | jq -r '.network.interface[0].ipv4.ipAddress[0].privateIpAddress')" 5 | export TURNSERVER_PUBLIC_IP="$${INSTANCE_PUBLIC_IP}" 6 | export TURNSERVER_REALM="${turnserver_realm}" 7 | export TURNSERVER_USERNAME="${turnserver_username}" 8 | export TURNSERVER_PASSWORD="${turnserver_password}" -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/coturn/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = module.coturn_vm.public_ip 4 | } 5 | output "private_ip" { 6 | value = module.coturn_vm.private_ip 7 | } 8 | output "port" { 9 | value = 3478 10 | } 11 | output "realm" { 12 | value = var.turnserver_realm 13 | } 14 | output "username" { 15 | value = var.turnserver_username 16 | sensitive = true 17 | } 18 | output "password" { 19 | value = var.turnserver_password 20 | sensitive = true 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/coturn/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/rp/config/rp-env.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | 5 | export NGC_CLI_API_KEY="${ngc_api_key}" 6 | export RP_CHART_URL="${chart_url}" 7 | export CNS_COMMIT=${cns_commit} 8 | export CNS_VERSION=${cns_version} 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/rp/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = module.rp_vm.public_ip 4 | 5 | } 6 | 7 | output "private_ip" { 8 | value = module.rp_vm.private_ip 9 | } 10 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/azure/modules/tokkio/rp/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/README.md: -------------------------------------------------------------------------------- 1 | For full documentation on how to use this setup script, please refer to its AWS Automated setup guide under [CSP Setup Guides](https://docs.nvidia.com/ace/latest/workflows/tokkio/index.html#csp-setup-guides) section of the Tokkio documentation. 2 | 3 | For further questions or more details contact your Nvidia representative. -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/deploy-spec/backend.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | backend "gcs" { 4 | } 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/deploy-spec/provider.tf: -------------------------------------------------------------------------------- 1 | 2 | provider "google" { 3 | project = var.provider_config.project 4 | credentials = var.provider_config.credentials 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/deploy-spec/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | version = "= 4.44.1" 7 | } 8 | } 9 | required_version = "= 1.2.4" 10 | experiments = [module_variable_optional_attrs] 11 | } 12 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_compute_backend_bucket" "this" { 3 | name = format("%s-backend", var.name) 4 | bucket_name = var.bucket_name 5 | enable_cdn = var.enable_cdn 6 | compression_mode = var.compression_mode 7 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = google_compute_backend_bucket.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | variable "bucket_name" { 6 | type = string 7 | } 8 | variable "enable_cdn" { 9 | type = bool 10 | } 11 | variable "compression_mode" { 12 | type = string 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/compute-backend-service/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = google_compute_backend_service.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/compute-backend-service/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/global-load-balancer/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "ip_address" { 3 | value = google_compute_global_address.this.address 4 | } 5 | 6 | output "self_link" { 7 | value = google_compute_url_map.https.self_link 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/global-load-balancer/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | experiments = [module_variable_optional_attrs] 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | } 8 | } 9 | } 10 | # terraform { 11 | # required_providers { 12 | # google = { 13 | # source = "hashicorp/google" 14 | # version = "= 4.44.1" 15 | # } 16 | # } 17 | # required_version = "= 1.2.4" 18 | # } 19 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_compute_instance_group" "this" { 3 | name = var.name 4 | zone = var.zone 5 | instances = var.instance_self_links 6 | dynamic "named_port" { 7 | for_each = var.named_ports 8 | content { 9 | name = named_port.value["name"] 10 | port = named_port.value["port"] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = google_compute_instance_group.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | variable "zone" { 6 | type = string 7 | } 8 | variable "instance_self_links" { 9 | type = list(string) 10 | } 11 | variable "named_ports" { 12 | type = list(object({ 13 | name = string 14 | port = number 15 | })) 16 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/instance/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/networking/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "network_name" { 3 | value = google_compute_network.this.name 4 | } 5 | output "subnetworks" { 6 | value = { 7 | for subnet in var.subnets : subnet.name => { 8 | name = google_compute_subnetwork.this[subnet.name].name 9 | private = subnet.private 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/networking/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/website-bucket/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_storage_bucket" "this" { 3 | name = format("%s-web-assets", var.name) 4 | location = var.location 5 | force_destroy = var.force_destroy 6 | uniform_bucket_level_access = true 7 | website { 8 | main_page_suffix = var.website_main_page_suffix 9 | not_found_page = var.website_not_found_page 10 | } 11 | custom_placement_config { 12 | data_locations = [ 13 | upper(var.region), 14 | upper(var.alternate_region) 15 | ] 16 | } 17 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/website-bucket/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "name" { 3 | value = google_storage_bucket.this.name 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/website-bucket/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | variable "location" { 6 | type = string 7 | } 8 | variable "region" { 9 | type = string 10 | } 11 | variable "alternate_region" { 12 | type = string 13 | } 14 | variable "force_destroy" { 15 | type = bool 16 | } 17 | variable "website_main_page_suffix" { 18 | type = string 19 | } 20 | variable "website_not_found_page" { 21 | type = string 22 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/gcp/website-bucket/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/app/config/install-ngc-cli.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | echo "Install NGC CLI -- Start" 5 | 6 | apt-get -y update 7 | apt-get -y install unzip 8 | wget --quiet --content-disposition https://ngc.nvidia.com/downloads/ngccli_linux.zip -O /tmp/ngccli_linux.zip 9 | mkdir -p /usr/local/lib 10 | unzip -q /tmp/ngccli_linux.zip -d /usr/local/lib 11 | ln -s /usr/local/lib/ngc-cli/ngc /usr/local/bin/ngc 12 | 13 | echo "Install NGC CLI -- End" -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/app/config/verify-gpu-operator-ready.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | echo "Verify GPU Operator Ready -- Start" 5 | 6 | while [[ "$(kubectl --kubeconfig /etc/kubernetes/admin.conf --namespace nvidia-gpu-operator --no-headers --field-selector="status.phase!=Succeeded,status.phase!=Running" get pods | wc -l)" != 0 ]]; do 7 | sleep 10 8 | echo "Waiting for GPU Operator to get READY..." 9 | done 10 | 11 | echo "Verify GPU Operator Ready -- End" 12 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/app/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "private_ips" { 3 | value = [for instance_suffix in var.instance_suffixes : module.api_instance[instance_suffix].private_ip] 4 | } 5 | output "ui_endpoint" { 6 | value = "https://${local.ui_domain}" 7 | } 8 | output "api_endpoint" { 9 | value = "https://${local.api_domain}" 10 | } 11 | output "elasticsearch_endpoint" { 12 | value = "https://${local.elastic_domain}" 13 | } 14 | output "kibana_endpoint" { 15 | value = "https://${local.kibana_domain}" 16 | } 17 | output "grafana_endpoint" { 18 | value = "https://${local.grafana_domain}" 19 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/app/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | version = "= 4.44.1" 7 | } 8 | } 9 | required_version = "= 1.2.4" 10 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/base/config.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_storage_bucket" "config_bucket" { 3 | name = local.config_bucket_details.name 4 | location = local.config_bucket_details.location 5 | force_destroy = local.config_bucket_details.force_destroy 6 | uniform_bucket_level_access = true 7 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/base/networking.tf: -------------------------------------------------------------------------------- 1 | 2 | module "networking" { 3 | source = "../../gcp/networking" 4 | name = local.networking.name 5 | region = local.networking.region 6 | subnets = local.networking.subnets 7 | router_bgp = local.networking.router_bgp 8 | firewalls = local.networking.firewalls 9 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/base/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | version = "= 4.44.1" 7 | } 8 | } 9 | required_version = "= 1.2.4" 10 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/coturn/config/coturn-server-env.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | export TURNSERVER_PRIVATE_IP="$(hostname -I)" 5 | export TURNSERVER_PUBLIC_IP="$(curl -H "Metadata-Flavor: Google" http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip)" 6 | export TURNSERVER_REALM="${coturn.realm}" 7 | export TURNSERVER_USERNAME="${coturn.username}" 8 | export TURNSERVER_PASSWORD="${coturn.password}" -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/coturn/iam.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_service_account" "service_account" { 3 | account_id = local.name 4 | } 5 | 6 | resource "google_storage_bucket_iam_member" "config_viewer_access" { 7 | bucket = local.config_bucket_name 8 | role = "roles/storage.objectViewer" 9 | member = format("serviceAccount:%s", google_service_account.service_account.email) 10 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/coturn/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "public_ip" { 3 | value = module.instance.public_ip 4 | } 5 | output "private_ip" { 6 | value = module.instance.private_ip 7 | } 8 | output "port" { 9 | value = 3478 10 | } 11 | output "realm" { 12 | value = var.coturn_settings.realm 13 | } 14 | output "username" { 15 | value = var.coturn_settings.username 16 | sensitive = true 17 | } 18 | output "password" { 19 | value = var.coturn_settings.password 20 | sensitive = true 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/coturn/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | version = "= 4.44.1" 7 | } 8 | } 9 | required_version = "= 1.2.4" 10 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/rp/config/rp-env.sh.tpl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | 5 | export NGC_CLI_API_KEY="${ngc_api_key}" 6 | export RP_CHART_URL="${chart_url}" 7 | export CNS_COMMIT=${cns_commit} 8 | export CNS_VERSION=${cns_version} -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/rp/iam.tf: -------------------------------------------------------------------------------- 1 | resource "google_service_account" "service_account" { 2 | account_id = local.name 3 | } 4 | 5 | resource "google_storage_bucket_iam_member" "config_viewer_access" { 6 | bucket = local.config_bucket_name 7 | role = "roles/storage.objectViewer" 8 | member = format("serviceAccount:%s", google_service_account.service_account.email) 9 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/modules/tokkio/rp/output.tf: -------------------------------------------------------------------------------- 1 | output "public_ip" { 2 | value = element([for instance_suffix in var.instance_suffixes : module.rp_instance[instance_suffix].public_ip], 0) 3 | } 4 | 5 | output "private_ip" { 6 | value = element([for instance_suffix in var.instance_suffixes : module.rp_instance[instance_suffix].private_ip], 0) 7 | } 8 | -------------------------------------------------------------------------------- /workflows/tokkio/4.0/scripts/one-click/gcp/secrets.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | # _ssh_public_key -> Your public ssh key's content 5 | export _ssh_public_key='' 6 | # _ngc_api_key -> Your ngc api key value 7 | export _ngc_api_key='' 8 | # _turnserver_password -> Password for turn server 9 | export _turnserver_password='' 10 | # Set the open ai API key 11 | export _openai_api_key='' 12 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/Tokkio_example.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6995fdbeedab43e969f3cf413ac73c6e0f9c34fc50553f60ce3d860c5dbdd2c2 3 | size 77854 4 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/avatar_collage.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:684074c91f22635c04494a1ff03e9f31f76214cfbb69bd1bc962d9d832e2ae33 3 | size 809867 4 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/ansible-requirements.yml: -------------------------------------------------------------------------------- 1 | collections: 2 | - name: ansible.posix 3 | version: 1.5.4 4 | - name: community.general 5 | version: 8.3.0 6 | - name: kubernetes.core 7 | version: 3.2.0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/helm-release/rproxy-override-values.yml: -------------------------------------------------------------------------------- 1 | rProxySpec: 2 | publicInterfaceName: "{{ task_vars.network_interface_name }}" 3 | privateInterfaceName: "{{ task_vars.network_interface_name }}" 4 | imagePullSecrets: 5 | - name: ngc-docker-reg-secret 6 | checkIPUri: "http://checkip.amazonaws.com" 7 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/helm-release/tokkio-logging-es-override-values.yml: -------------------------------------------------------------------------------- 1 | elasticsearch: 2 | clusterName: "{{ task_vars.ops_es_cluster_name }}" 3 | volumeClaimTemplate: 4 | storageClassName: mdx-local-path 5 | kibana: 6 | elasticsearchHosts: "http://{{ task_vars.ops_es_cluster_name }}-master-headless:9200" 7 | service: 8 | nodePort: "31565" 9 | ingress: 10 | enabled: false -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/k8s-manifest/namespace.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | definition: 3 | apiVersion: v1 4 | kind: Namespace 5 | metadata: 6 | name: "{{ task_vars.name }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/k8s-secret/docker-config-json.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: "kubernetes.io/dockerconfigjson" 5 | data: 6 | .dockerconfigjson: "{{ task_vars.docker_config_json | to_json | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/k8s-secret/ngc-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NGC_CLI_API_KEY: "{{ task_vars.ngc_cli_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/k8s-secret/nvidia-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NVIDIA_API_KEY: "{{ task_vars.nvidia_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-files/k8s-secret/openai-key-secret.yml: -------------------------------------------------------------------------------- 1 | name: "{{ task_vars.name }}" 2 | namespace: "{{ task_vars.namespace }}" 3 | type: Opaque 4 | data: 5 | OPENAI_API_KEY: "{{ task_vars.openai_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-template-examples/llm-a2f-2d-rp-3x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export AWS_SECRET_ACCESS_KEY="" 5 | export AWS_ACCESS_KEY_ID="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-template-examples/llm-ov-3d-rp-6x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export AWS_SECRET_ACCESS_KEY="" 5 | export AWS_ACCESS_KEY_ID="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-template-examples/llm-ue-3d-coturn-3x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export AWS_SECRET_ACCESS_KEY="" 5 | export AWS_ACCESS_KEY_ID="" 6 | export GITHUB_USERNAME="" 7 | export GITHUB_ACCESS_TOKEN="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/config-template-examples/retail-ov-3d-rp-6x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export AWS_SECRET_ACCESS_KEY="" 5 | export AWS_ACCESS_KEY_ID="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/iac-ref/backend.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | backend "s3" { 3 | } 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/iac-ref/data.tf: -------------------------------------------------------------------------------- 1 | 2 | data "aws_route53_zone" "zone" { 3 | name = local.base_domain 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/iac-ref/provider.tf: -------------------------------------------------------------------------------- 1 | provider "aws" { 2 | region = var.region 3 | access_key = var.provider_config.access_key 4 | secret_key = var.provider_config.secret_key 5 | } 6 | 7 | provider "aws" { 8 | region = "us-east-1" 9 | alias = "cloudfront" 10 | access_key = var.provider_config.access_key 11 | secret_key = var.provider_config.secret_key 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/iac-ref/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "= 4.57.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/acm-certificate/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "arn" { 3 | value = aws_acm_certificate_validation.this.certificate_arn 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/acm-certificate/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "domain_name" { 3 | type = string 4 | } 5 | 6 | variable "subject_alternative_names" { 7 | type = list(string) 8 | default = [] 9 | } 10 | 11 | variable "hosted_zone_name" { 12 | type = string 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/acm-certificate/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/alb-listener/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "arn" { 3 | value = aws_lb_listener.this.arn 4 | } 5 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/alb-listener/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/alb/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "security_group_id" { 3 | value = one(aws_security_group.this.*.id) 4 | } 5 | 6 | output "security_group_ids" { 7 | value = aws_lb.this.security_groups 8 | } 9 | 10 | output "arn" { 11 | value = aws_lb.this.arn 12 | } 13 | 14 | output "dns_name" { 15 | value = aws_lb.this.dns_name 16 | } 17 | 18 | output "zone_id" { 19 | value = aws_lb.this.zone_id 20 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/alb/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/compute/outputs.tf: -------------------------------------------------------------------------------- 1 | output "public_ip" { 2 | value = one(aws_eip.default[*].public_ip) 3 | } 4 | 5 | output "private_ip" { 6 | value = aws_network_interface.default.private_ip 7 | } 8 | 9 | output "security_group_ids" { 10 | value = aws_network_interface.default.security_groups 11 | } 12 | 13 | output "instance_id" { 14 | value = aws_instance.default.id 15 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/compute/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "= 4.57.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/networking/examples/quickstart/variables.tf: -------------------------------------------------------------------------------- 1 | variable "name" { 2 | type = string 3 | description = "The name for the VPC." 4 | nullable = false 5 | } 6 | 7 | variable "vpc_cidr_block" { 8 | type = string 9 | description = "The IPv4 CIDR block for the VPC." 10 | default = null 11 | } 12 | 13 | variable "availability_zone_names" { 14 | type = list(string) 15 | description = "The name of the availability zones to create subnets in." 16 | default = [] 17 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/networking/examples/quickstart/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "= 4.57.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/networking/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "= 4.57.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/security-group/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "security_group_id" { 3 | value = aws_security_group.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/security-group/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "vpc_id" { 7 | type = string 8 | } 9 | 10 | variable "ingress_rules" { 11 | type = list(object({ 12 | description = string 13 | from_port = number 14 | to_port = number 15 | protocol = string 16 | cidr_blocks = list(string) 17 | ipv6_cidr_blocks = list(string) 18 | security_groups = list(string) 19 | self = bool 20 | })) 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/security-group/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = "= 4.57.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/target-group/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "arn" { 3 | value = aws_lb_target_group.this.arn 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/modules/aws/target-group/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | aws = { 5 | source = "hashicorp/aws" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/app-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install required packages 6 | become: yes 7 | become_user: root 8 | apt: 9 | state: present 10 | update_cache: yes 11 | name: 12 | - unzip -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/authorize-ssh-keys.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: authorize key 7 | ansible.posix.authorized_key: 8 | state: "{{ state | default('present') }}" 9 | user: "{{ task_config.user }}" 10 | key: "{{ item }}" 11 | loop: "{{ task_config['keys'] }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/check-inventory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | become: false 5 | tasks: 6 | - name: check sudo privileges 7 | become: true 8 | stat: 9 | path: /root 10 | no_log: true 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/cns-validate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: validate cns 3 | when: state == "present" and not ansible_check_mode and dry_run_mode == "true" 4 | import_playbook: "../cns/playbooks/cns-validation.yaml" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/copy-task-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: no 5 | become: false 6 | tasks: 7 | - name: copy task config 8 | shell: "yq eval '.' {{ config_source }} -o json | jq '{task_config: .}' | yq -P > {{ config_destination }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/empty_var_check.yml: -------------------------------------------------------------------------------- 1 | - hosts: all 2 | gather_facts: yes 3 | become: false 4 | tasks: 5 | - name: Fail if variable is empty 6 | fail: 7 | msg: "The variable 'item.key' is empty. Please provide a valid value." 8 | when: my_var | length == 0 9 | loop: "{{ task_vars }}" 10 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/helm-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install helm diff plugin 6 | kubernetes.core.helm_plugin: 7 | plugin_path: https://github.com/databus23/helm-diff 8 | state: present -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-patch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: apply patch 6 | ignore_errors: "{{ task_config.ignore_errors | default(false) }}" 7 | kubernetes.core.k8s_json_patch: 8 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 9 | api_version: "{{ task_config.api_version | default('v1') }}" 10 | kind: "{{ task_config.kind }}" 11 | namespace: "{{ task_config.namespace }}" 12 | name: "{{ task_config.name }}" 13 | patch: 14 | "{{ task_config.patch }}" 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-secret-check-empty-dockerconfig.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The password for {{ item.username }} is empty. Please provide a valid value." 4 | when: item.password | length == 0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-secret-check-empty-opaque.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The variable {{ item.key }} is empty. Please provide a valid value." 4 | when: item.value | length == 0 5 | with_items: "{{ item.entries }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-secret-check-empty.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: check if k8s secrets are empty of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-check-empty-opaque.yml 9 | 10 | - name: check if k8s secrets are empty of type dockerconfigjson 11 | loop: "{{ task_config.k8s_secrets }}" 12 | when: item.type == "dockerconfigjson" 13 | include_tasks: k8s-secret-check-empty-dockerconfig.yml 14 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-secret-old.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install secret 6 | kubernetes.core.k8s: 7 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 8 | state: "{{ state | default('present') }}" 9 | definition: 10 | apiVersion: v1 11 | kind: Secret 12 | type: "{{ task_config.type }}" 13 | metadata: 14 | name: "{{ task_config.name }}" 15 | namespace: "{{ task_config.namespace | default('default') }}" 16 | data: 17 | "{{ task_config.data }}" 18 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-secret.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install k8s secret of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-opaque.yml 9 | 10 | 11 | - name: Install k8s secret of type dockerconfigjson 12 | loop: "{{ task_config.k8s_secrets }}" 13 | when: item.type == "dockerconfigjson" 14 | include_tasks: k8s-secret-dockerconfig.yml 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/k8s-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install pip3 6 | become: yes 7 | become_user: root 8 | apt: 9 | name: python3-pip 10 | state: present 11 | - name: install pre-requisites 12 | pip: 13 | name: 14 | - jsonpatch 15 | - kubernetes>=12.0.0 16 | - PyYAML>3.11 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/process-user-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: yes 5 | become: false 6 | tasks: 7 | - name: populate output file 8 | copy: 9 | content: "{{ lookup('template', input_file) }}" 10 | dest: "{{ output_file }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/sleep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: "sleep {{ task_vars.time }}" 7 | shell: | 8 | sleep "{{ task_vars.time }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/tasks/helm-release-prep-values.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: read file content 3 | set_fact: 4 | item_content: "{{ lookup('template', item) }}" 5 | - name: output content to file 6 | copy: 7 | content: "{{ item_content }}" 8 | dest: "{{ ansible_user_dir }}/helm-values/ns-{{ task_config.namespace }}/release-{{ task_config.release_name }}/{{ item | basename }}" 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/aws/playbooks/write-to-file.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: ensure dir exists 7 | file: 8 | path: "{{ task_config.dest | dirname }}" 9 | state: directory 10 | mode: '0755' 11 | - name: write content to file 12 | copy: 13 | content: "{{ task_config.content }}" 14 | dest: "{{ task_config.dest }}" 15 | mode: "{{ task_config.mode | default(omit) }}" 16 | backup: "{{ task_config.backup | default(omit) }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/ansible-requirements.yml: -------------------------------------------------------------------------------- 1 | collections: 2 | - name: ansible.posix 3 | version: 1.5.4 4 | - name: community.general 5 | version: 8.3.0 6 | - name: kubernetes.core 7 | version: 3.2.0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/helm-release/hello-release-values.yml: -------------------------------------------------------------------------------- 1 | ingress: 2 | enabled: true 3 | className: nginx -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/helm-release/rproxy-override-values.yml: -------------------------------------------------------------------------------- 1 | rProxySpec: 2 | # nodeSelector: 3 | # type: rp 4 | # tolerations: 5 | # - key: "rproxy-node" 6 | # operator: "Exists" 7 | publicInterfaceName: "eth0" 8 | privateInterfaceName: "eth0" 9 | imagePullSecrets: 10 | - name: ngc-docker-reg-secret 11 | checkIPUri: "http://checkip.amazonaws.com" 12 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/helm-release/tokkio-logging-es-override-values.yml: -------------------------------------------------------------------------------- 1 | elasticsearch: 2 | clusterName: "{{ task_vars.ops_es_cluster_name }}" 3 | volumeClaimTemplate: 4 | storageClassName: mdx-local-path 5 | kibana: 6 | elasticsearchHosts: "http://{{ task_vars.ops_es_cluster_name }}-master-headless:9200" 7 | service: 8 | nodePort: "31565" 9 | ingress: 10 | enabled: false -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/k8s-manifest/namespace.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | definition: 3 | apiVersion: v1 4 | kind: Namespace 5 | metadata: 6 | name: "{{ task_vars.name }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/k8s-secret/docker-config-json.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: "kubernetes.io/dockerconfigjson" 5 | data: 6 | .dockerconfigjson: "{{ task_vars.docker_config_json | to_json | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/k8s-secret/ngc-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NGC_CLI_API_KEY: "{{ task_vars.ngc_cli_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/k8s-secret/nvidia-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NVIDIA_API_KEY: "{{ task_vars.nvidia_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-files/k8s-secret/openai-key-secret.yml: -------------------------------------------------------------------------------- 1 | name: "{{ task_vars.name }}" 2 | namespace: "{{ task_vars.namespace }}" 3 | type: Opaque 4 | data: 5 | OPENAI_API_KEY: "{{ task_vars.openai_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-template-examples/llm-ov-3d-rp-3x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export ARM_TENANT_ID="" 5 | export ARM_SUBSCRIPTION_ID="" 6 | export ARM_CLIENT_ID="" 7 | export ARM_CLIENT_SECRET='"" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/config-template-examples/llm-ue-3d-coturn-3x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export ARM_TENANT_ID="" 5 | export ARM_SUBSCRIPTION_ID="" 6 | export ARM_CLIENT_ID="" 7 | export ARM_CLIENT_SECRET='"" 8 | export GITHUB_USERNAME="" 9 | export GITHUB_ACCESS_TOKEN="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/iac-ref/backend.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | backend "azurerm" { 3 | } 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/iac-ref/provider.tf: -------------------------------------------------------------------------------- 1 | provider "azurerm" { 2 | tenant_id = var.provider_config.tenant_id 3 | subscription_id = var.provider_config.subscription_id 4 | client_id = var.provider_config.client_id 5 | client_secret = var.provider_config.client_secret 6 | features { 7 | resource_group { 8 | prevent_deletion_if_contains_resources = false 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/iac-ref/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = "3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/app-gateway/outputs.tf: -------------------------------------------------------------------------------- 1 | output "public_ip" { 2 | value = { 3 | for frontend_ip_configuration in var.frontend_ip_configurations : 4 | frontend_ip_configuration.public_ip_address["name"] => 5 | azurerm_public_ip.public_ip[frontend_ip_configuration.public_ip_address["name"]].ip_address 6 | if frontend_ip_configuration.public_ip_address != null 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/app-gateway/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/app-security-group/outputs.tf: -------------------------------------------------------------------------------- 1 | output "application_security_group" { 2 | value = { 3 | for k, v in azurerm_application_security_group.default : k => v.id 4 | } 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/app-security-group/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/cdn-for-static-website/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "endpoint_id" { 3 | value = azurerm_cdn_endpoint.cdn_endpoint.id 4 | } 5 | 6 | output "endpoint_fqdn" { 7 | value = azurerm_cdn_endpoint.cdn_endpoint.fqdn 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/cdn-for-static-website/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "resource_group_name" { 3 | type = string 4 | } 5 | 6 | variable "target_host_name" { 7 | type = string 8 | } 9 | 10 | variable "cdn_profile_name" { 11 | type = string 12 | } 13 | 14 | variable "cdn_endpoint_name" { 15 | type = string 16 | } 17 | 18 | variable "additional_tags" { 19 | type = map(string) 20 | default = {} 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/cdn-for-static-website/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/compute/outputs.tf: -------------------------------------------------------------------------------- 1 | output "id" { 2 | value = azurerm_linux_virtual_machine.default.id 3 | } 4 | 5 | output "public_ip" { 6 | value = azurerm_linux_virtual_machine.default.public_ip_address 7 | } 8 | 9 | output "private_ip" { 10 | value = azurerm_linux_virtual_machine.default.private_ip_address 11 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/compute/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/custom-domain-for-cdn/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "custom_domain_fqdn" { 3 | value = azurerm_cdn_endpoint_custom_domain.custom_domain.host_name 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/custom-domain-for-cdn/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "cdn_endpoint_id" { 3 | type = string 4 | } 5 | 6 | variable "cdn_endpoint_fqdn" { 7 | type = string 8 | } 9 | 10 | variable "base_domain" { 11 | type = string 12 | } 13 | 14 | variable "ui_sub_domain" { 15 | type = string 16 | } 17 | 18 | variable "additional_tags" { 19 | type = map(string) 20 | default = {} 21 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/custom-domain-for-cdn/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/dns-a-record/main.tf: -------------------------------------------------------------------------------- 1 | 2 | data "azurerm_dns_zone" "dns_zone" { 3 | name = var.base_domain 4 | } 5 | 6 | resource "azurerm_dns_a_record" "a_record" { 7 | name = var.name 8 | zone_name = data.azurerm_dns_zone.dns_zone.name 9 | resource_group_name = data.azurerm_dns_zone.dns_zone.resource_group_name 10 | ttl = var.ttl 11 | records = var.ip_addresses 12 | target_resource_id = var.azure_resource_id 13 | tags = var.additional_tags 14 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/dns-a-record/output.tf: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/dns-a-record/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | 6 | variable "base_domain" { 7 | type = string 8 | } 9 | 10 | variable "ttl" { 11 | type = number 12 | } 13 | 14 | variable "ip_addresses" { 15 | type = list(string) 16 | } 17 | 18 | variable "azure_resource_id" { 19 | type = string 20 | } 21 | 22 | variable "additional_tags" { 23 | type = map(string) 24 | default = {} 25 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/dns-a-record/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/networking/examples/quickstart/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/networking/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/resource-group/main.tf: -------------------------------------------------------------------------------- 1 | resource "azurerm_resource_group" "default" { 2 | name = var.name 3 | location = var.location 4 | tags = var.tags 5 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/resource-group/outputs.tf: -------------------------------------------------------------------------------- 1 | output "name" { 2 | value = azurerm_resource_group.default.name 3 | } 4 | 5 | output "location" { 6 | value = azurerm_resource_group.default.location 7 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/resource-group/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | azurerm = { 6 | source = "hashicorp/azurerm" 7 | version = ">= 3.32.0" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/storage-account-backed-static-website/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = azurerm_storage_account.storage_account.id 4 | } 5 | 6 | output "name" { 7 | value = azurerm_storage_account.storage_account.name 8 | } 9 | 10 | output "primary_web_host" { 11 | value = azurerm_storage_account.storage_account.primary_web_host 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/storage-account-backed-static-website/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "resource_group_name" { 3 | type = string 4 | } 5 | 6 | variable "region" { 7 | type = string 8 | } 9 | 10 | variable "name" { 11 | type = string 12 | } 13 | 14 | variable "index_document" { 15 | type = string 16 | } 17 | 18 | variable "error_404_document" { 19 | type = string 20 | } 21 | 22 | variable "additional_tags" { 23 | type = map(string) 24 | default = {} 25 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/modules/azure/storage-account-backed-static-website/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | azurerm = { 5 | source = "hashicorp/azurerm" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/app-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install required packages 6 | become: yes 7 | become_user: root 8 | apt: 9 | state: present 10 | update_cache: yes 11 | name: 12 | - unzip -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/authorize-ssh-keys.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: authorize key 7 | ansible.posix.authorized_key: 8 | state: "{{ state | default('present') }}" 9 | user: "{{ task_config.user }}" 10 | key: "{{ item }}" 11 | loop: "{{ task_config['keys'] }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/check-inventory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | become: false 5 | tasks: 6 | - name: check sudo privileges 7 | become: true 8 | stat: 9 | path: /root 10 | no_log: true 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/cns-validate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: validate cns 3 | when: state == "present" and not ansible_check_mode and dry_run_mode == "true" 4 | import_playbook: "../cns/playbooks/cns-validation.yaml" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/copy-task-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: no 5 | become: false 6 | tasks: 7 | - name: copy task config 8 | shell: "yq eval '.' {{ config_source }} -o json | jq '{task_config: .}' | yq -P > {{ config_destination }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/empty_var_check.yml: -------------------------------------------------------------------------------- 1 | - hosts: all 2 | gather_facts: yes 3 | become: false 4 | tasks: 5 | - name: Fail if variable is empty 6 | fail: 7 | msg: "The variable 'item.key' is empty. Please provide a valid value." 8 | when: my_var | length == 0 9 | loop: "{{ task_vars }}" 10 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/helm-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install helm diff plugin 6 | kubernetes.core.helm_plugin: 7 | plugin_path: https://github.com/databus23/helm-diff 8 | state: present -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-patch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: apply patch 6 | ignore_errors: "{{ task_config.ignore_errors | default(false) }}" 7 | kubernetes.core.k8s_json_patch: 8 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 9 | api_version: "{{ task_config.api_version | default('v1') }}" 10 | kind: "{{ task_config.kind }}" 11 | namespace: "{{ task_config.namespace }}" 12 | name: "{{ task_config.name }}" 13 | patch: 14 | "{{ task_config.patch }}" 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-secret-check-empty-dockerconfig.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The password for {{ item.username }} is empty. Please provide a valid value." 4 | when: item.password | length == 0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-secret-check-empty-opaque.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The variable {{ item.key }} is empty. Please provide a valid value." 4 | when: item.value | length == 0 5 | with_items: "{{ item.entries }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-secret-check-empty.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: check if k8s secrets are empty of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-check-empty-opaque.yml 9 | 10 | - name: check if k8s secrets are empty of type dockerconfigjson 11 | loop: "{{ task_config.k8s_secrets }}" 12 | when: item.type == "dockerconfigjson" 13 | include_tasks: k8s-secret-check-empty-dockerconfig.yml 14 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-secret-old.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install secret 6 | kubernetes.core.k8s: 7 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 8 | state: "{{ state | default('present') }}" 9 | definition: 10 | apiVersion: v1 11 | kind: Secret 12 | type: "{{ task_config.type }}" 13 | metadata: 14 | name: "{{ task_config.name }}" 15 | namespace: "{{ task_config.namespace | default('default') }}" 16 | data: 17 | "{{ task_config.data }}" 18 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-secret.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install k8s secret of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-opaque.yml 9 | 10 | 11 | - name: Install k8s secret of type dockerconfigjson 12 | loop: "{{ task_config.k8s_secrets }}" 13 | when: item.type == "dockerconfigjson" 14 | include_tasks: k8s-secret-dockerconfig.yml 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/k8s-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install pip3 6 | become: yes 7 | become_user: root 8 | apt: 9 | name: python3-pip 10 | state: present 11 | - name: install pre-requisites 12 | pip: 13 | name: 14 | - jsonpatch 15 | - kubernetes>=12.0.0 16 | - PyYAML>3.11 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/process-user-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: yes 5 | become: false 6 | tasks: 7 | - name: populate output file 8 | copy: 9 | content: "{{ lookup('template', input_file) }}" 10 | dest: "{{ output_file }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/sleep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: "sleep {{ task_vars.time }}" 7 | shell: | 8 | sleep "{{ task_vars.time }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/tasks/helm-release-prep-values.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: read file content 3 | set_fact: 4 | item_content: "{{ lookup('template', item) }}" 5 | - name: output content to file 6 | copy: 7 | content: "{{ item_content }}" 8 | dest: "{{ ansible_user_dir }}/helm-values/ns-{{ task_config.namespace }}/release-{{ task_config.release_name }}/{{ item | basename }}" 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/azure/playbooks/write-to-file.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: ensure dir exists 7 | file: 8 | path: "{{ task_config.dest | dirname }}" 9 | state: directory 10 | mode: '0755' 11 | - name: write content to file 12 | copy: 13 | content: "{{ task_config.content }}" 14 | dest: "{{ task_config.dest }}" 15 | mode: "{{ task_config.mode | default(omit) }}" 16 | backup: "{{ task_config.backup | default(omit) }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/ansible-requirements.yml: -------------------------------------------------------------------------------- 1 | collections: 2 | - name: ansible.posix 3 | version: 1.5.4 4 | - name: community.general 5 | version: 8.3.0 6 | - name: kubernetes.core 7 | version: 3.2.0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/helm-release/rproxy-override-values.yml: -------------------------------------------------------------------------------- 1 | rProxySpec: 2 | publicInterfaceName: "{{ task_vars.network_interface_name }}" 3 | privateInterfaceName: "{{ task_vars.network_interface_name }}" 4 | imagePullSecrets: 5 | - name: ngc-docker-reg-secret 6 | checkIPUri: "http://checkip.amazonaws.com" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/helm-release/tokkio-logging-es-override-values.yml: -------------------------------------------------------------------------------- 1 | elasticsearch: 2 | clusterName: "{{ task_vars.ops_es_cluster_name }}" 3 | volumeClaimTemplate: 4 | storageClassName: mdx-local-path 5 | kibana: 6 | elasticsearchHosts: "http://{{ task_vars.ops_es_cluster_name }}-master-headless:9200" 7 | service: 8 | nodePort: "31565" 9 | ingress: 10 | enabled: false -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/k8s-manifest/namespace.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | definition: 3 | apiVersion: v1 4 | kind: Namespace 5 | metadata: 6 | name: "{{ task_vars.name }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/k8s-secret/docker-config-json.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: "kubernetes.io/dockerconfigjson" 5 | data: 6 | .dockerconfigjson: "{{ task_vars.docker_config_json | to_json | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/k8s-secret/ngc-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NGC_CLI_API_KEY: "{{ task_vars.ngc_cli_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/k8s-secret/nvidia-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NVIDIA_API_KEY: "{{ task_vars.nvidia_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-files/k8s-secret/openai-key-secret.yml: -------------------------------------------------------------------------------- 1 | name: "{{ task_vars.name }}" 2 | namespace: "{{ task_vars.namespace }}" 3 | type: Opaque 4 | data: 5 | OPENAI_API_KEY: "{{ task_vars.openai_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/config-template-examples/llm-ov-3d-coturn-1x-stream/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export APP_HOST_IPV4_ADDR="" 5 | export APP_HOST_SSH_USER="" 6 | export COTURN_HOST_IPV4_ADDR="" 7 | export COTURN_HOST_SSH_USER="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/iac-ref/backend.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | backend "local" { 3 | } 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/iac-ref/locals.tf: -------------------------------------------------------------------------------- 1 | locals { 2 | cluster_names = sort(keys(var.clusters)) 3 | bastion_inventory_name = "bastion" 4 | master_inventory_name = "master" 5 | ansible_ssh_extra_args = "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" 6 | turn_server_provider = var.turn_server_provider 7 | use_reverse_proxy = local.turn_server_provider == "rp" ? true : false 8 | use_twilio_stun_turn = local.turn_server_provider == "twilio" ? true : false 9 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/iac-ref/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers {} 5 | } 6 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/app-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install required packages 6 | become: yes 7 | become_user: root 8 | apt: 9 | state: present 10 | update_cache: yes 11 | name: 12 | - unzip -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/authorize-ssh-keys.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: authorize key 7 | ansible.posix.authorized_key: 8 | state: "{{ state | default('present') }}" 9 | user: "{{ task_config.user }}" 10 | key: "{{ item }}" 11 | loop: "{{ task_config['keys'] }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/check-inventory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | become: false 5 | tasks: 6 | - name: check sudo privileges 7 | become: true 8 | stat: 9 | path: /root 10 | no_log: true 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/cns-validate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: validate cns 3 | when: state == "present" and not ansible_check_mode and dry_run_mode == "true" 4 | import_playbook: "../cns/playbooks/cns-validation.yaml" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/copy-task-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: no 5 | become: false 6 | tasks: 7 | - name: copy task config 8 | shell: "yq eval '.' {{ config_source }} -o json | jq '{task_config: .}' | yq -P > {{ config_destination }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/empty_var_check.yml: -------------------------------------------------------------------------------- 1 | - hosts: all 2 | gather_facts: yes 3 | become: false 4 | tasks: 5 | - name: Fail if variable is empty 6 | fail: 7 | msg: "The variable 'item.key' is empty. Please provide a valid value." 8 | when: my_var | length == 0 9 | loop: "{{ task_vars }}" 10 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/helm-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install helm diff plugin 6 | kubernetes.core.helm_plugin: 7 | plugin_path: https://github.com/databus23/helm-diff 8 | state: present -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-patch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: apply patch 6 | ignore_errors: "{{ task_config.ignore_errors | default(false) }}" 7 | kubernetes.core.k8s_json_patch: 8 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 9 | api_version: "{{ task_config.api_version | default('v1') }}" 10 | kind: "{{ task_config.kind }}" 11 | namespace: "{{ task_config.namespace }}" 12 | name: "{{ task_config.name }}" 13 | patch: 14 | "{{ task_config.patch }}" 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-secret-check-empty-dockerconfig.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The password for {{ item.username }} is empty. Please provide a valid value." 4 | when: item.password | length == 0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-secret-check-empty-opaque.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The variable {{ item.key }} is empty. Please provide a valid value." 4 | when: item.value | length == 0 5 | with_items: "{{ item.entries }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-secret-check-empty.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: check if k8s secrets are empty of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-check-empty-opaque.yml 9 | 10 | - name: check if k8s secrets are empty of type dockerconfigjson 11 | loop: "{{ task_config.k8s_secrets }}" 12 | when: item.type == "dockerconfigjson" 13 | include_tasks: k8s-secret-check-empty-dockerconfig.yml 14 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-secret-old.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install secret 6 | kubernetes.core.k8s: 7 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 8 | state: "{{ state | default('present') }}" 9 | definition: 10 | apiVersion: v1 11 | kind: Secret 12 | type: "{{ task_config.type }}" 13 | metadata: 14 | name: "{{ task_config.name }}" 15 | namespace: "{{ task_config.namespace | default('default') }}" 16 | data: 17 | "{{ task_config.data }}" 18 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-secret.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install k8s secret of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-opaque.yml 9 | 10 | 11 | - name: Install k8s secret of type dockerconfigjson 12 | loop: "{{ task_config.k8s_secrets }}" 13 | when: item.type == "dockerconfigjson" 14 | include_tasks: k8s-secret-dockerconfig.yml 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/k8s-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install pip3 6 | become: yes 7 | become_user: root 8 | apt: 9 | name: python3-pip 10 | state: present 11 | - name: install pre-requisites 12 | pip: 13 | name: 14 | - jsonpatch 15 | - kubernetes>=12.0.0 16 | - PyYAML>3.11 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/process-user-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: yes 5 | become: false 6 | tasks: 7 | - name: populate output file 8 | copy: 9 | content: "{{ lookup('template', input_file) }}" 10 | dest: "{{ output_file }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/sleep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: "sleep {{ task_vars.time }}" 7 | shell: | 8 | sleep "{{ task_vars.time }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/tasks/helm-release-prep-values.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: read file content 3 | set_fact: 4 | item_content: "{{ lookup('template', item) }}" 5 | - name: output content to file 6 | copy: 7 | content: "{{ item_content }}" 8 | dest: "{{ ansible_user_dir }}/helm-values/ns-{{ task_config.namespace }}/release-{{ task_config.release_name }}/{{ item | basename }}" 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/baremetal/playbooks/write-to-file.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: ensure dir exists 7 | file: 8 | path: "{{ task_config.dest | dirname }}" 9 | state: directory 10 | mode: '0755' 11 | - name: write content to file 12 | copy: 13 | content: "{{ task_config.content }}" 14 | dest: "{{ task_config.dest }}" 15 | mode: "{{ task_config.mode | default(omit) }}" 16 | backup: "{{ task_config.backup | default(omit) }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/ansible-requirements.yml: -------------------------------------------------------------------------------- 1 | collections: 2 | - name: ansible.posix 3 | version: 1.5.4 4 | - name: community.general 5 | version: 8.3.0 6 | - name: kubernetes.core 7 | version: 3.2.0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/helm-release/rproxy-override-values.yml: -------------------------------------------------------------------------------- 1 | rProxySpec: 2 | publicInterfaceName: "{{ task_vars.network_interface_name }}" 3 | privateInterfaceName: "{{ task_vars.network_interface_name }}" 4 | imagePullSecrets: 5 | - name: ngc-docker-reg-secret 6 | checkIPUri: "http://checkip.amazonaws.com" 7 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/helm-release/tokkio-logging-es-override-values.yml: -------------------------------------------------------------------------------- 1 | elasticsearch: 2 | clusterName: "{{ task_vars.ops_es_cluster_name }}" 3 | volumeClaimTemplate: 4 | storageClassName: mdx-local-path 5 | kibana: 6 | elasticsearchHosts: "http://{{ task_vars.ops_es_cluster_name }}-master-headless:9200" 7 | service: 8 | nodePort: "31565" 9 | ingress: 10 | enabled: false -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/k8s-manifest/namespace.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | definition: 3 | apiVersion: v1 4 | kind: Namespace 5 | metadata: 6 | name: "{{ task_vars.name }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/k8s-secret/docker-config-json.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: "kubernetes.io/dockerconfigjson" 5 | data: 6 | .dockerconfigjson: "{{ task_vars.docker_config_json | to_json | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/k8s-secret/ngc-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NGC_CLI_API_KEY: "{{ task_vars.ngc_cli_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/k8s-secret/nvidia-api-key-secret.yml: -------------------------------------------------------------------------------- 1 | kubeconfig: "{{ task_vars.kubeconfig | default(omit) }}" 2 | name: "{{ task_vars.name }}" 3 | namespace: "{{ task_vars.namespace }}" 4 | type: Opaque 5 | data: 6 | NVIDIA_API_KEY: "{{ task_vars.nvidia_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-files/k8s-secret/openai-key-secret.yml: -------------------------------------------------------------------------------- 1 | name: "{{ task_vars.name }}" 2 | namespace: "{{ task_vars.namespace }}" 3 | type: Opaque 4 | data: 5 | OPENAI_API_KEY: "{{ task_vars.openai_api_key | b64encode }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-template-examples/llm-ov-3d-rp-6x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE="" 5 | export CLOUDSDK_CORE_PROJECT="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/config-template-examples/llm-ue-3d-coturn-3x-streams/my-config.env: -------------------------------------------------------------------------------- 1 | export OPENAI_API_KEY="" 2 | export NGC_CLI_API_KEY="" 3 | export NVIDIA_API_KEY="" 4 | export CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE="" 5 | export CLOUDSDK_CORE_PROJECT="" 6 | export GITHUB_USERNAME="" 7 | export GITHUB_ACCESS_TOKEN="" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/iac-ref/backend.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | backend "gcs" { 3 | } 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/iac-ref/provider.tf: -------------------------------------------------------------------------------- 1 | provider "google" { 2 | region = var.region 3 | project = var.provider_config.project 4 | credentials = var.provider_config.credentials 5 | } 6 | 7 | provider "google-beta" { 8 | region = var.region 9 | project = var.provider_config.project 10 | credentials = var.provider_config.credentials 11 | } 12 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/iac-ref/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | version = "= 4.44.1" 8 | } 9 | # google-beta = { 10 | # source = "hashicorp/google-beta" 11 | # version = "~> 6.0.1" 12 | # } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_compute_backend_bucket" "this" { 3 | name = format("%s-backend", var.name) 4 | bucket_name = var.bucket_name 5 | enable_cdn = var.enable_cdn 6 | compression_mode = var.compression_mode 7 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = google_compute_backend_bucket.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | variable "bucket_name" { 6 | type = string 7 | } 8 | variable "enable_cdn" { 9 | type = bool 10 | } 11 | variable "compression_mode" { 12 | type = string 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute-backend-bucket/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute-backend-service/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = google_compute_backend_service.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute-backend-service/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute/outputs.tf: -------------------------------------------------------------------------------- 1 | output "instance" { 2 | value = google_compute_instance.default 3 | description = "The outputs of the instance" 4 | } 5 | 6 | output "private_ip" { 7 | value = try(google_compute_instance.default.network_interface[0].network_ip, null) 8 | } 9 | 10 | output "public_ip" { 11 | value = try(google_compute_instance.default.network_interface[0].access_config[0].nat_ip, null) 12 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/compute/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | version = "= 4.44.1" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/firewall/outputs.tf: -------------------------------------------------------------------------------- 1 | output "firewall_policies" { 2 | value = { 3 | for k, v in google_compute_network_firewall_policy.default : k => v 4 | } 5 | description = "The outputs of the created firewall policies." 6 | } 7 | 8 | output "firewall_policy_rules" { 9 | value = { 10 | for k, v in google_compute_network_firewall_policy_rule.default : k => v 11 | } 12 | description = "The outputs of the created firewall policy rules." 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/firewall/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | version = "= 4.44.1" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/global-load-balancer/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "ip_address" { 3 | value = google_compute_global_address.this.address 4 | } 5 | 6 | output "self_link" { 7 | value = google_compute_url_map.https.self_link 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/global-load-balancer/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | #experiments = [module_variable_optional_attrs] 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | } 8 | } 9 | } 10 | # terraform { 11 | # required_providers { 12 | # google = { 13 | # source = "hashicorp/google" 14 | # version = "= 4.44.1" 15 | # } 16 | # } 17 | # required_version = "= 1.2.4" 18 | # } 19 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_compute_instance_group" "this" { 3 | name = var.name 4 | zone = var.zone 5 | instances = var.instance_self_links 6 | dynamic "named_port" { 7 | for_each = var.named_ports 8 | content { 9 | name = named_port.value["name"] 10 | port = named_port.value["port"] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "id" { 3 | value = google_compute_instance_group.this.id 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | variable "zone" { 6 | type = string 7 | } 8 | variable "instance_self_links" { 9 | type = list(string) 10 | } 11 | variable "named_ports" { 12 | type = list(object({ 13 | name = string 14 | port = number 15 | })) 16 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/instance-group-unmanaged/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/load-balancer/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | version = "= 4.44.1" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/networking/examples/quickstart-regional/variables.tf: -------------------------------------------------------------------------------- 1 | variable "name" { 2 | type = string 3 | description = "(Required) The name for the network." 4 | nullable = false 5 | } 6 | 7 | variable "region" { 8 | type = string 9 | description = "(Required) The GCP region in which the resources belong to." 10 | nullable = false 11 | } 12 | 13 | variable "ip_cidr_range" { 14 | type = string 15 | description = "(Optional) The IPv4 CIDR range for the network." 16 | default = null 17 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/networking/examples/quickstart-regional/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | version = "= 4.44.1" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/networking/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = "= 1.5.7" 3 | 4 | required_providers { 5 | google = { 6 | source = "hashicorp/google" 7 | version = "= 4.44.1" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/website-bucket/main.tf: -------------------------------------------------------------------------------- 1 | 2 | resource "google_storage_bucket" "this" { 3 | name = format("%s-web-assets", var.name) 4 | location = var.location 5 | force_destroy = var.force_destroy 6 | uniform_bucket_level_access = true 7 | website { 8 | main_page_suffix = var.website_main_page_suffix 9 | not_found_page = var.website_not_found_page 10 | } 11 | custom_placement_config { 12 | data_locations = [ 13 | upper(var.region), 14 | upper(var.alternate_region) 15 | ] 16 | } 17 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/website-bucket/output.tf: -------------------------------------------------------------------------------- 1 | 2 | output "name" { 3 | value = google_storage_bucket.this.name 4 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/website-bucket/variables.tf: -------------------------------------------------------------------------------- 1 | 2 | variable "name" { 3 | type = string 4 | } 5 | variable "location" { 6 | type = string 7 | } 8 | variable "region" { 9 | type = string 10 | } 11 | variable "alternate_region" { 12 | type = string 13 | } 14 | variable "force_destroy" { 15 | type = bool 16 | } 17 | variable "website_main_page_suffix" { 18 | type = string 19 | } 20 | variable "website_not_found_page" { 21 | type = string 22 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/modules/gcp/website-bucket/versions.tf: -------------------------------------------------------------------------------- 1 | 2 | terraform { 3 | required_providers { 4 | google = { 5 | source = "hashicorp/google" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/app-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install required packages 6 | become: yes 7 | become_user: root 8 | apt: 9 | state: present 10 | update_cache: yes 11 | name: 12 | - unzip -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/authorize-ssh-keys.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: authorize key 7 | ansible.posix.authorized_key: 8 | state: "{{ state | default('present') }}" 9 | user: "{{ task_config.user }}" 10 | key: "{{ item }}" 11 | loop: "{{ task_config['keys'] }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/check-inventory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | become: false 5 | tasks: 6 | - name: check sudo privileges 7 | become: true 8 | stat: 9 | path: /root 10 | no_log: true 11 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/cns-validate.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: validate cns 3 | when: state == "present" and not ansible_check_mode and dry_run_mode == "true" 4 | import_playbook: "../cns/playbooks/cns-validation.yaml" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/copy-task-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: no 5 | become: false 6 | tasks: 7 | - name: copy task config 8 | shell: "yq eval '.' {{ config_source }} -o json | jq '{task_config: .}' | yq -P > {{ config_destination }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/empty_var_check.yml: -------------------------------------------------------------------------------- 1 | - hosts: all 2 | gather_facts: yes 3 | become: false 4 | tasks: 5 | - name: Fail if variable is empty 6 | fail: 7 | msg: "The variable 'item.key' is empty. Please provide a valid value." 8 | when: my_var | length == 0 9 | loop: "{{ task_vars }}" 10 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/helm-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install helm diff plugin 6 | kubernetes.core.helm_plugin: 7 | plugin_path: https://github.com/databus23/helm-diff 8 | state: present -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-patch.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: apply patch 6 | ignore_errors: "{{ task_config.ignore_errors | default(false) }}" 7 | kubernetes.core.k8s_json_patch: 8 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 9 | api_version: "{{ task_config.api_version | default('v1') }}" 10 | kind: "{{ task_config.kind }}" 11 | namespace: "{{ task_config.namespace }}" 12 | name: "{{ task_config.name }}" 13 | patch: 14 | "{{ task_config.patch }}" 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-secret-check-empty-dockerconfig.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The password for {{ item.username }} is empty. Please provide a valid value." 4 | when: item.password | length == 0 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-secret-check-empty-opaque.yml: -------------------------------------------------------------------------------- 1 | - name: Fail if variable is empty 2 | fail: 3 | msg: "The variable {{ item.key }} is empty. Please provide a valid value." 4 | when: item.value | length == 0 5 | with_items: "{{ item.entries }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-secret-check-empty.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: check if k8s secrets are empty of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-check-empty-opaque.yml 9 | 10 | - name: check if k8s secrets are empty of type dockerconfigjson 11 | loop: "{{ task_config.k8s_secrets }}" 12 | when: item.type == "dockerconfigjson" 13 | include_tasks: k8s-secret-check-empty-dockerconfig.yml 14 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-secret-old.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install secret 6 | kubernetes.core.k8s: 7 | kubeconfig: "{{ task_config.kubeconfig | default(omit) }}" 8 | state: "{{ state | default('present') }}" 9 | definition: 10 | apiVersion: v1 11 | kind: Secret 12 | type: "{{ task_config.type }}" 13 | metadata: 14 | name: "{{ task_config.name }}" 15 | namespace: "{{ task_config.namespace | default('default') }}" 16 | data: 17 | "{{ task_config.data }}" 18 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-secret.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | tasks: 5 | - name: install k8s secret of type Opaque 6 | loop: "{{ task_config.k8s_secrets }}" 7 | when: item.type == "Opaque" 8 | include_tasks: k8s-secret-opaque.yml 9 | 10 | 11 | - name: Install k8s secret of type dockerconfigjson 12 | loop: "{{ task_config.k8s_secrets }}" 13 | when: item.type == "dockerconfigjson" 14 | include_tasks: k8s-secret-dockerconfig.yml 15 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/k8s-task-pre-requisites.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: no 4 | tasks: 5 | - name: install pip3 6 | become: yes 7 | become_user: root 8 | apt: 9 | name: python3-pip 10 | state: present 11 | - name: install pre-requisites 12 | pip: 13 | name: 14 | - jsonpatch 15 | - kubernetes>=12.0.0 16 | - PyYAML>3.11 -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/process-user-config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | gather_facts: yes 5 | become: false 6 | tasks: 7 | - name: populate output file 8 | copy: 9 | content: "{{ lookup('template', input_file) }}" 10 | dest: "{{ output_file }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/sleep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: "sleep {{ task_vars.time }}" 7 | shell: | 8 | sleep "{{ task_vars.time }}" -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/tasks/helm-release-prep-values.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: read file content 3 | set_fact: 4 | item_content: "{{ lookup('template', item) }}" 5 | - name: output content to file 6 | copy: 7 | content: "{{ item_content }}" 8 | dest: "{{ ansible_user_dir }}/helm-values/ns-{{ task_config.namespace }}/release-{{ task_config.release_name }}/{{ item | basename }}" 9 | -------------------------------------------------------------------------------- /workflows/tokkio/4.1/scripts/one-click/gcp/playbooks/write-to-file.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: all 3 | gather_facts: yes 4 | become: false 5 | tasks: 6 | - name: ensure dir exists 7 | file: 8 | path: "{{ task_config.dest | dirname }}" 9 | state: directory 10 | mode: '0755' 11 | - name: write content to file 12 | copy: 13 | content: "{{ task_config.content }}" 14 | dest: "{{ task_config.dest }}" 15 | mode: "{{ task_config.mode | default(omit) }}" 16 | backup: "{{ task_config.backup | default(omit) }}" --------------------------------------------------------------------------------