This patchset implements the Secure Key Management feature
as described in Gerrit 1429, enabling support for native charms
deployed to machines provisioned by the Resource Orchestrator.
- Implement GetPublicKey, which will provide the public key to be
injected into new machines
- Support machine placement, to provision an existing machine for use
with juju
- Automatically create a SSH keypair to be used for provisioning
- Add method to check if a charm is deployed (CI)
- Update integration tests to use new ssh key workflow
Signed-off-by: Adam Israel <adam.israel@canonical.com>
########################################################
to = ""
if machine_spec.keys():
########################################################
to = ""
if machine_spec.keys():
- if all(k in machine_spec for k in ['hostname', 'username']):
- # Get the path to the previously generated ssh private key.
- # Machines we're manually provisioned must have N2VC's public
- # key injected, so if we don't have a keypair, raise an error.
- private_key_path = ""
-
- # Enlist the existing machine in Juju
- machine = await self.model.add_machine(
- spec='ssh:{}@{}:{}'.format(
- specs['host'],
- specs['user'],
- private_key_path,
- )
- )
- # Set the machine id that the deploy below will use.
+ if all(k in machine_spec for k in ['host', 'user']):
+ # Enlist an existing machine as a Juju unit
+ machine = await model.add_machine(spec='ssh:{}@{}:{}'.format(
+ machine_spec['user'],
+ machine_spec['host'],
+ self.GetPrivateKeyPath(),
+ ))
#######################################
# Get the initial charm configuration #
#######################################
# Get the initial charm configuration #