uffizzi icon indicating copy to clipboard operation
uffizzi copied to clipboard

Remote dataplanes for Uffizzi

Open waveywaves opened this issue 1 year ago • 0 comments

Tell us about your request

I want a user to be able to run their environments in multiple places

Which service(s) is this request for?**

Cloud, Open-Source, CLI

Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?

Be able to connect to a multiple remote data planes as a Uffizzi user.

Describe the solution you'd like

AS A uffizzi user I WANT TO connect to create clusters in a remote dataplane SO THAT I can run my workloads in a remote specialized environment

SCENARIO 1: CONNECT TO THE REMOTE DATAPLANE USING THE CLI GIVEN uffizzi user has permission to create uffizzi clusters on the dataplane, AND the dataplane is hosted with a "exampleuffizzidataplane.com" domain and is accessible to the user, AND uffizzi user is logged in,

WHEN uffizzi user runs

$ uffizzi cluster data-plane connect example_gpu_dp https://controller.uffizzigpu.examplecompany.com

example_gpu_dp is the name of the data_plane here and https:// controller.uffizzigpu.examplecompany.com is the controller endpoint here. THEN

  • the cli checks if the dataplane exists
  • checks if the user is allowed to access the dataplane
  • adds data_plane to list of dataplane if it exists
  • default dataplane is set to the one recently added
Successfully connected to Uffizzi data plane example_gpu_dp (https://controller.uffizzigpu.examplecompany.com) !
Data plane example_gpu_dp has been set as default
To create a cluster on this environment run the following command

# uffizzi cluster create 

WHEN the user runs uffizzi user runs uffizzi config list, THEN the output should show (notice the data_planes (previously_vclusters_controller_url), notice the **swd),

$ uffizzi config list
server = https://app.qa.uffizzi.com/
account = {
    :id=>5, 
    :name=>"waveywaves", 
    :has_installation=>true, 
    :data_planes=> {
        :uffizzi=>"https://controller.app.qa.uffizzi.com", 
        :example_wasm_dp=>"https://controller.uffizziwasm.examplecompany.com"
        :example_gpu_dp=>"https://controller.uffizzigpu.examplecompany.com"
    }
   :default_data_plane=>"example_gpu_dp"
}
...

WHEN the user is not able to access the dataplane THEN the following output is given

Unable to connect to Uffizzi data plane example_gpu_dp (https://controller.uffizzigpu.examplecompany.com)
Contact your admin to check if you have permissions to access 

WHEN uffizzi user runs

$ uffizzi cluster data-plane connect example_wasm_dp

THEN

  • do the same checks as the first WHEN statement
  • set the data-plane as default in the config as a default_data_plane value

WHEN the user runs uffizzi user runs uffizzi config list after the above, THEN the output should show (notice the default_data_plane updated),

$ uffizzi config list
server = https://app.qa.uffizzi.com/
account = {
    :id=>5, 
    :name=>"waveywaves", 
    :has_installation=>true, 
    :data_planes=> {
        :uffizzi=>"https://controller.app.qa.uffizzi.com", 
        :example_wasm_dp= "https://controller.uffizziwasm.examplecompany.com"
        :example_gpu_dp=>"https://controller.uffizzigpu.examplecompany.com"
    }
  :default_data_plane=>"example_wasm_dp"
}
...

waveywaves avatar Mar 22 '24 15:03 waveywaves