I've defined the sshpackages in common.yaml and RedHat.yaml - they're slightly different (I was using the different packages to test lookups).
[root@puppet-dev ~]# cat /etc/puppet/environments/development/hieradata/common.yaml
---
sshpackages: - 'openssh'
- 'openssh-clients'
permit_root_login : 'no'
[root@puppet-dev ~]# cat /etc/puppet/environments/development/hieradata/RedHat.yaml
---
ssh_packages: - 'openssh'
- 'openssh-clients'
- 'openssh-server'
Output from hiera debug:
[root@puppet-dev ~]# hiera -d -c /etc/puppet/hiera.yaml sshpackages environment=development
DEBUG: Wed Jul 11 07:52:41 -0500 2012: Hiera YAML backend starting
DEBUG: Wed Jul 11 07:52:41 -0500 2012: Looking up sshpackages in YAML backend
DEBUG: Wed Jul 11 07:52:42 -0500 2012: Looking for data source common
["openssh", "openssh-clients"]
I would think that hiera would look up 'RedHat.yaml' first, since 'operatingsystem' is listed first in the hierarchy.
The hiera gems are installed:
[root@puppet-dev specifications]# gem list hiera
*** LOCAL GEMS ***
hiera (0.3.0)
hiera-puppet (0.3.0)