func()

in pkg/agent/registration.go [35:82]


func (r *ssmRegistration) Register() (*state.State, error) {
	state := &state.State{}

	klog.Infof("creating %s keypair...", KeyType)
	keyPair, err := createKeypair()
	if err != nil {
		return nil, err
	}

	klog.Infof("encoding %s keypair...", KeyType)
	privateKey := keyPair.encodePrivateKey()

	publicKey, err := keyPair.encodePublicKey()
	if err != nil {
		return nil, err
	}

	klog.Infof("generating fingerprint...")
	fingerPrint, err := createFingerPrint()
	if err != nil {
		return nil, err
	}
	klog.Infof("fingerprint %s generated", fingerPrint)

	klog.Infof("registering at SSM with activationId %s...", r.activationConfig.ID)
	instanceID, err := r.ssm.RegisterManagedInstance(
		r.activationConfig.ID,
		r.activationConfig.Code,
		publicKey,
		KeyType,
		fingerPrint,
	)
	if err != nil {
		return nil, err
	}
	klog.Infof("successfully registered at SSM with InstanceID %s", instanceID)

	state.PrivateKey = privateKey
	state.PrivateKeyType = KeyType
	state.PrivateKeyCreatedDate = time.Now().Format(defaultDateStringFormat)

	state.FingerPrint = fingerPrint
	state.InstanceID = instanceID
	state.Region = r.ssm.Region()
	state.ActivationId = r.activationConfig.ID

	return state, nil
}