You can create an alliance with a puppet, but I'm not sure about the requirements. I think in peace time all you have to do is guarantee their independence and offer a non-aggression pact.
In war time there is more than that. I once played a game in which I Dowed UK as lone nation. I wanted to create an alliance with Australia, so I annexed it and released it as puppet. I guaranteed their independence, offered a non-aggression pact and still had a 0% chance. Later, when I annexed New Zealand I had a 100% chance and could create the alliance. Maybe puppets don't like it when an enemy capital is within certain range?
When a lone nation releases a puppet, a new alliance should be automatically created.