-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
STORY: Digital twin deployment on ZOS 3.0 #1065
Comments
as we don't allow custom flists for VMs there will be a longer starting time always in that case.
|
AM NOT SURE SPECS ARE STILL GOOD, FIRST THING TO DO CREATE SPECS, |
Current statusCurrently, a PR has been made in the Grid Weblets repository (threefoldtecharchive/grid_weblets#1033). The PR contains a weblet which is supporting FreeFlow to be deployed on top of Grid3. There are a few parameters needed:
We are using a gateway component to make the FreeFlow instance more accessible so we can just visit eg: We decided to communicate over IPv6 because:
Gateway communication via Yggdrasil is not possibleSince everything within FreeFlow relies on Yggdrasil locations, gateway communication via Yggdrasil was not an option. All data is stored in a Redis Database instance inside your chat container referenced with a Yggdrasil location (Yggdrasil IPv6 IP) Eg: I am container A and I want to see the avatar of container B: inside the Redis instance, we keep a list of all contacts. Important to know is that every chat container exposes its own API; eg: A contact is a key-value pair with the name as the key and a Yggdrasil IP as the value. When we want to retrieve the avatar of container B, we send a curl request to Why can't we use the Yggdrasil IP?Since the location is the most important part of communication. We always want to ensure this location is correct. Therefore, we want to have a static Yggdrasil IP address, since we never want to change a Yggdrasil IP afterward. We use the When the user wants to access its chat container, he has to authenticate first. When the authentication is done, we extract the But when the Yggdrasil IP got changed based on the derived seed, the gateway is not able to communicate anymore to the backend since it would redirect to the old Yggdrasil IP. That's why we DNSWhen deploying a FreeFlow container is deployed, a DNS will be provided based on their 3botname in the following format:
eg: ConclusionTo avoid the cost of a public IPv4 address, and due to the Yggdrasil communication issue: we used IPv6 as the communication protocol. This also requires that the gateway where we want to deploy our container needs to support IPv6. An extra filter is needed. DeploymentThe deployment part contains several parts: zinitWe are using zinit to launch our startup script, provide OpenSSH with the user their ssh key, .. qsfsWe will need to mount our data outside the container for updating the environments. eg: a new FreeFlow version is QA validated and is ready to set on production. We don't want the user force to create a new container so we will need to be able to update the existing container. Therefore, we will use flistSince FreeFlow is built with docker, this needs to be converted to a custom flist to deploy the chat container on the grid. Currently, the latest version of the flist is available at my hub.grid.tf profile. Currently, updating the flist is a manual action by pushing the docker image to docker hub, and converting it to a flist in the UI manually. Maybe this part can still be automated. Future plansIt would be cool to deploy the 3rd party apps within FreeFlow on your node. Those components would be the following:
When everything went well in step 1, this could be the next step. (Still has to be discussed) ExtrasWhen researching the grid client, flists, zinit, etc. I made some scripts deploying FreeFlow containers manually / deleting them which you can find here. |
deploy using ZOS primitives & RMB
make script in vlang
implementation
related issues
The text was updated successfully, but these errors were encountered: