When using apt::ppa from puppetlabs-apt on Ubuntu Utopic, PPAs are added successfully, but on subsequent agent runs the add-apt-repository Exec is re-ran. This means that an apt-get update is triggered on every puppet run for all Utopic machines using the apt::ppa define.
The cause of this appears to be that 'add-apt-repository' creates a source list named 'username-ubuntu-ppa_name-lsbdistcodename.list', whereas apt::ppa expects the source list to be named 'username-ppa_name-lsbdistcodename.list' (see https://github.com/puppetlabs/puppetlabs-apt/blob/master/manifests/ppa.pp#L24).
For example, when adding 'ppa:gencfsm/ppa' like so:
add-apt-repository creates a file called 'gencfsm-ubuntu-ppa-utopic.list' but the module expects a file called 'gencfsm-ppa-utopic.list'