Equivalent of FMGCPVirtualNetwork set_assign_public_ip in FMAWSVirtualNetwork

Solved!
abdoulaye
Level 3
Equivalent of FMGCPVirtualNetwork set_assign_public_ip in FMAWSVirtualNetwork

Hello, I've used 

FMAWSVirtualNetwork(FMVirtualNetwork)

to create and manage virtual network in fleet manager, I'm looking for a setting that is equivalent in gcp to not assign a public ip address to instance once they are created using templated network.

Based on dataikuapi, I can see clearly that this exist for gcp in this class

FMGCPVirtualNetwork(FMVirtualNetwork)

but in aws I can how to set false in settings, is there any equivalent parameter to set to false or None when using FMAWSVirtualNetwork(FMVirtualNetwork)?

Thanks

0 Kudos
1 Solution
ZachM
Dataiker

Hi @abdoulaye,

You can change this setting for FMAWSVirtualNetwork by directly setting the "awsAssignPublicIP" field. For example:

import dataikuapi

client = dataikuapi.FMClientAWS(HOST, KEY_ID, KEY_SECRET)

# Get an existing virtual network
virtual_network = client.get_virtual_network(VIRTUAL_NETWORK_ID)

# Disable assigning public IPs
virtual_network.vn_data["awsAssignPublicIP"] = False
virtual_network.save()

 

View solution in original post

5 Replies
ZachM
Dataiker

Hi @abdoulaye,

You can change this setting for FMAWSVirtualNetwork by directly setting the "awsAssignPublicIP" field. For example:

import dataikuapi

client = dataikuapi.FMClientAWS(HOST, KEY_ID, KEY_SECRET)

# Get an existing virtual network
virtual_network = client.get_virtual_network(VIRTUAL_NETWORK_ID)

# Disable assigning public IPs
virtual_network.vn_data["awsAssignPublicIP"] = False
virtual_network.save()

 

abdoulaye
Level 3
Author

Hi I want to do the same for this checkbox "Use private IP". What the exact key?

tpl = client.get_instance_template('ist-xxxxxxx')
tpl.ist_data["setupActions"]['Use private IP']

Thanks

0 Kudos
ZachM
Dataiker

Hi @abdoulaye,

Instance templates can have multiple setup actions, so first you'll need to find the setup action that's the right type (SETUP_K8S_AND_SPARK).

Then you can set the use_private_ip param on the setup action.

Example:

 

import dataikuapi

client = dataikuapi.FMClientAWS(HOST, KEY_ID, KEY_SECRET)
tpl = client.get_instance_template("ist-xxxxxxxxxxxx")

setup_actions = tpl.ist_data["setupActions"]
print("setupActions:", setup_actions)

# Get the first setup action where the type is "SETUP_K8S_AND_SPARK"
k8s_setup_action = next(a for a in setup_actions if a["type"] == "SETUP_K8S_AND_SPARK")

k8s_setup_action["params"]["use_private_ip"] = True
tpl.save()

 

abdoulaye
Level 3
Author

Thanks lot.

abdoulaye
Level 3
Author

Hi I was not able to set value directly using:

k8s_setup_action["params"]["use_private_ip"] = Tru

I used first to set the dict

k8s_setup_action['params'] = {}
k8s_setup_action["params"]["use_private_ip"] = True

there was no default params for params.