- # Parse ~/.local/share/juju/controllers.yaml
- # controllers.testing.api-endpoints|ca-cert|uuid
- print("Getting controller endpoints")
- with open(os.path.expanduser(
- "~/.local/share/juju/controllers.yaml"
- )) as f:
- controllers = yaml.load(f, Loader=yaml.Loader)
- controller = controllers['controllers'][cluster_uuid]
- endpoints = controller['api-endpoints']
- self.juju_endpoint = endpoints[0]
- self.juju_ca_cert = controller['ca-cert']
-
- # Parse ~/.local/share/juju/accounts
- # controllers.testing.user|password
- print("Getting accounts")
- with open(os.path.expanduser(
- "~/.local/share/juju/accounts.yaml"
- )) as f:
- controllers = yaml.load(f, Loader=yaml.Loader)
- controller = controllers['controllers'][cluster_uuid]
-
- self.juju_user = controller['user']
- self.juju_secret = controller['password']
-
- print("user: {}".format(self.juju_user))
- print("secret: {}".format(self.juju_secret))
- print("endpoint: {}".format(self.juju_endpoint))
- print("ca-cert: {}".format(self.juju_ca_cert))
-
- # raise Exception("EOL")
-
- self.juju_public_key = None
-
- config = {
- 'endpoint': self.juju_endpoint,
- 'username': self.juju_user,
- 'secret': self.juju_secret,
- 'cacert': self.juju_ca_cert,
- 'namespace': namespace,
- 'microk8s': microk8s,
- }
-
- # Store the cluster configuration so it
- # can be used for subsequent calls
- print("Setting config")
- await self.set_config(cluster_uuid, config)
+ # Create cleanup dictionary to clean up created resources
+ # if it fails in the middle of the process
+ cleanup_data = []
+ try:
+ kubectl.create_cluster_role(
+ name=metadata_name,
+ labels=labels,
+ )
+ cleanup_data.append(
+ {
+ "delete": kubectl.delete_cluster_role,
+ "args": (metadata_name,),
+ }
+ )