diff --git a/spec/acceptance/basic_spec.rb b/spec/acceptance/basic_spec.rb new file mode 100755 index 0000000..1eeacca --- /dev/null +++ b/spec/acceptance/basic_spec.rb @@ -0,0 +1,35 @@ +require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance' + +describe 'kerberos', if: os[:family] == 'ubuntu' do + + def pp_path + base_path = File.dirname(__FILE__) + File.join(base_path, 'fixtures') + end + + def puppet_manifest + manifest_path = File.join(pp_path, 'default.pp') + File.read(manifest_path) + end + + it 'should work with no errors' do + apply_manifest(puppet_manifest, catch_failures: true) + end + + # Realm needs to be manually set up before admin service will start + it 'set up the kerberos realm' do + shell('yes krbpass | krb5_newrealm') + shell('echo "addprinc -randkey host/krbtest.openstack.ci" | kadmin.local') + shell('echo "ktadd host/krbtest.openstack.ci" | kadmin.local') + shell('echo "addprinc -pw rootpw root@OPENSTACK.CI" | kadmin.local') + end + + it 'should be idempotent' do + apply_manifest(puppet_manifest, catch_changes: true) + end + + describe command('echo rootpw | kinit') do + its(:exit_status) { should eq 0 } + end + +end diff --git a/spec/acceptance/fixtures/default.pp b/spec/acceptance/fixtures/default.pp new file mode 100644 index 0000000..e62503f --- /dev/null +++ b/spec/acceptance/fixtures/default.pp @@ -0,0 +1,26 @@ +host { 'krbtest.openstack.ci': + ensure => present, + host_aliases => 'krbtest', + ip => '127.0.1.1', +} + +exec { 'set hostname': + command => '/bin/hostname krbtest', + unless => '/usr/bin/test "$(/bin/hostname)" == "krbtest"', +} + +class { 'kerberos::server': + realm => 'OPENSTACK.CI', + kdcs => [ + 'krbtest.openstack.ci', + ], + admin_server => 'krbtest.openstack.ci', + slaves => [ ], + slave => false, +} + +class { 'kerberos::client': + admin_server => 'krbtest.openstack.ci', + kdcs => ['krbtest.openstack.ci'], + realm => 'OPENSTACK.CI', +}