mirror of https://github.com/portainer/portainer
25 lines
765 B
Go
25 lines
765 B
Go
package chisel
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"fmt"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// GenerateEdgeKey will generate a key that can be used by an Edge agent to register with a Portainer instance.
|
|
// The key represents the following data in this particular format:
|
|
// portainer_instance_url|tunnel_server_addr|tunnel_server_fingerprint|endpoint_ID
|
|
// The key returned by this function is a base64 encoded version of the data.
|
|
func (service *Service) GenerateEdgeKey(url, host string, endpointIdentifier int) string {
|
|
keyInformation := []string{
|
|
url,
|
|
fmt.Sprintf("%s:%s", host, service.serverPort),
|
|
service.serverFingerprint,
|
|
strconv.Itoa(endpointIdentifier),
|
|
}
|
|
|
|
key := strings.Join(keyInformation, "|")
|
|
return base64.RawStdEncoding.EncodeToString([]byte(key))
|
|
}
|