func (a *actionAddMember) Start(ctx context.Context) (bool, error) {
	newID, err := a.actionCtx.CreateMember(ctx, a.action.Group, a.action.MemberID, topology.WithTopologyMod)
	if err != nil {
		log.Debug().Err(err).Msg("Failed to create member")
		return false, errors.WithStack(err)
	}
	a.newMemberID = newID
	return true, nil
}
Start performs the start of the action.
Returns true if the action is completely finished, false in case
the start time needs to be recorded and a ready condition needs to be checked.
package reconcile
import (
	"context"
	"time"
	"github.com/arangodb/kube-arangodb/pkg/deployment/topology"
	"github.com/arangodb/kube-arangodb/pkg/util/errors"
	api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
	"github.com/rs/zerolog"
	"github.com/rs/zerolog/log"
)
func init() {
	registerAction(api.ActionTypeAddMember, newAddMemberAction)
}
func newAddMemberAction(log zerolog.Logger, action api.Action, actionCtx ActionContext) Action {
	a := &actionAddMember{}
	a.actionImpl = newBaseActionImpl(log, action, actionCtx, func(deploymentSpec api.DeploymentSpec) time.Duration {
		return deploymentSpec.Timeouts.Get().AddMember.Get(addMemberTimeout)
	}, &a.newMemberID)
	return a
}
var _ ActionPlanAppender = &actionAddMember{}
type actionAddMember struct {
	actionImpl
	actionEmptyCheckProgress
	newMemberID string
}