|
|
|
@ -710,6 +710,22 @@ func ProvisionerToCertificates(p *linkedca.Provisioner) (provisioner.Interface,
|
|
|
|
|
Claims: claims,
|
|
|
|
|
Options: options,
|
|
|
|
|
}, nil
|
|
|
|
|
case *linkedca.ProvisionerDetails_Nebula:
|
|
|
|
|
var roots []byte
|
|
|
|
|
for i, root := range d.Nebula.GetRoots() {
|
|
|
|
|
if i > 0 {
|
|
|
|
|
roots = append(roots, '\n')
|
|
|
|
|
}
|
|
|
|
|
roots = append(roots, root...)
|
|
|
|
|
}
|
|
|
|
|
return &provisioner.Nebula{
|
|
|
|
|
ID: p.Id,
|
|
|
|
|
Type: p.Type.String(),
|
|
|
|
|
Name: p.Name,
|
|
|
|
|
Roots: roots,
|
|
|
|
|
Claims: claims,
|
|
|
|
|
Options: options,
|
|
|
|
|
}, nil
|
|
|
|
|
default:
|
|
|
|
|
return nil, fmt.Errorf("provisioner %s not implemented", p.Type)
|
|
|
|
|
}
|
|
|
|
@ -937,6 +953,26 @@ func ProvisionerToLinkedca(p provisioner.Interface) (*linkedca.Provisioner, erro
|
|
|
|
|
X509Template: x509Template,
|
|
|
|
|
SshTemplate: sshTemplate,
|
|
|
|
|
}, nil
|
|
|
|
|
case *provisioner.Nebula:
|
|
|
|
|
x509Template, sshTemplate, err := provisionerOptionsToLinkedca(p.Options)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
return &linkedca.Provisioner{
|
|
|
|
|
Id: p.ID,
|
|
|
|
|
Type: linkedca.Provisioner_NEBULA,
|
|
|
|
|
Name: p.GetName(),
|
|
|
|
|
Details: &linkedca.ProvisionerDetails{
|
|
|
|
|
Data: &linkedca.ProvisionerDetails_Nebula{
|
|
|
|
|
Nebula: &linkedca.NebulaProvisioner{
|
|
|
|
|
Roots: provisionerPEMToLinkedca(p.Roots),
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
Claims: claimsToLinkedca(p.Claims),
|
|
|
|
|
X509Template: x509Template,
|
|
|
|
|
SshTemplate: sshTemplate,
|
|
|
|
|
}, nil
|
|
|
|
|
default:
|
|
|
|
|
return nil, fmt.Errorf("provisioner %s not implemented", p.GetType())
|
|
|
|
|
}
|
|
|
|
|