1+ ---
2+ # Tasks for testing IPA integration with Keystone
3+ - name : Check if IPA is enabled
4+ ansible.builtin.fail :
5+ msg : " IPA is not enabled (enable_tlse is not true). Skipping IPA tests."
6+ when : enable_tlse is not defined or not enable_tlse
7+
8+ - name : Wait for Keystone to be fully operational
9+ ansible.builtin.shell : |
10+ {{ shell_header }}
11+ {{ oc_header }}
12+ oc wait pod --for condition=Ready --selector=service=keystone
13+ register : keystone_wait_result
14+ until : keystone_wait_result is success
15+ retries : 60
16+ delay : 2
17+ when : enable_tlse
18+
19+ - name : Wait for openstackclient pod to be ready
20+ ansible.builtin.shell : |
21+ {{ shell_header }}
22+ {{ oc_header }}
23+ oc wait pod --for condition=Ready --selector=service=openstackclient
24+ register : osc_wait_result
25+ until : osc_wait_result is success
26+ retries : 60
27+ delay : 2
28+ when : enable_tlse
29+
30+ - name : Get Keystone route
31+ ansible.builtin.shell : |
32+ {{ shell_header }}
33+ {{ oc_header }}
34+ oc get route keystone-public -n openstack -o jsonpath='{.spec.host}'
35+ register : keystone_route
36+ when : enable_tlse
37+
38+ - name : Create IPA test user cloudrc file
39+ ansible.builtin.template :
40+ src : ipauser.j2
41+ dest : " {{ ansible_user_dir }}/ipauser"
42+ mode : " 0600"
43+ vars :
44+ auth_url : " https://{{ keystone_route.stdout }}/v3"
45+ username : " ipauser1"
46+ password : " {{ ipa_user_password }}"
47+ domain : " REDHAT"
48+ when : enable_tlse
49+
50+ - name : Copy IPA test user cloudrc to openstackclient pod
51+ ansible.builtin.shell : |
52+ {{ shell_header }}
53+ {{ oc_header }}
54+ oc cp {{ ansible_user_dir }}/ipauser openstackclient:/home/cloud-admin/ipauser
55+ when : enable_tlse
56+
57+ - name : Test IPA user authentication
58+ ansible.builtin.shell : |
59+ {{ shell_header }}
60+ {{ oc_header }}
61+ oc exec -t openstackclient -- bash -c "
62+ source /home/cloud-admin/ipauser &&
63+ export OS_IDENTITY_API_VERSION=3 &&
64+ openstack token issue -f value -c id > /dev/null &&
65+ echo 'IPA user authentication successful' ||
66+ echo 'IPA user authentication failed'"
67+ register : ipa_auth_test
68+ failed_when : " 'IPA user authentication failed' in ipa_auth_test.stdout"
69+ when : enable_tlse
70+
71+ - name : List IPA users via Keystone
72+ ansible.builtin.shell : |
73+ {{ shell_header }}
74+ {{ oc_header }}
75+ oc exec -t openstackclient -- bash -c "
76+ source /home/cloud-admin/ipauser &&
77+ export OS_IDENTITY_API_VERSION=3 &&
78+ openstack user list --domain REDHAT"
79+ register : ipa_user_list
80+ when : enable_tlse
81+
82+ - name : Verify IPA users are accessible
83+ ansible.builtin.assert :
84+ that :
85+ - " 'ipauser1' in ipa_user_list.stdout"
86+ - " 'ipauser2' in ipa_user_list.stdout"
87+ - " 'ipauser3' in ipa_user_list.stdout"
88+ when : enable_tlse
89+
90+ - name : List IPA groups via Keystone
91+ ansible.builtin.shell : |
92+ {{ shell_header }}
93+ {{ oc_header }}
94+ oc exec -t openstackclient -- bash -c "
95+ source /home/cloud-admin/ipauser &&
96+ export OS_IDENTITY_API_VERSION=3 &&
97+ openstack group list --domain REDHAT"
98+ register : ipa_group_list
99+ when : enable_tlse
100+
101+ - name : Verify IPA groups are accessible
102+ ansible.builtin.assert :
103+ that :
104+ - " 'grp-openstack' in ipa_group_list.stdout"
105+ - " 'grp-openstack-admin' in ipa_group_list.stdout"
106+ - " 'grp-openstack-demo' in ipa_group_list.stdout"
107+ when : enable_tlse
108+
109+ - name : Verify group memberships
110+ block :
111+ - name : Check ipauser1 in grp-openstack-admin
112+ ansible.builtin.shell : |
113+ {{ shell_header }}
114+ {{ oc_header }}
115+ oc exec -t openstackclient -- bash -c "
116+ source /home/cloud-admin/ipauser &&
117+ export OS_IDENTITY_API_VERSION=3 &&
118+ openstack group contains user --group-domain REDHAT --user-domain REDHAT grp-openstack-admin ipauser1"
119+ register : user1_group_result
120+ failed_when : " 'ipauser1 in group grp-openstack-admin' not in user1_group_result.stdout"
121+
122+ - name : Check ipauser2 in grp-openstack-demo
123+ ansible.builtin.shell : |
124+ {{ shell_header }}
125+ {{ oc_header }}
126+ oc exec -t openstackclient -- bash -c "
127+ source /home/cloud-admin/ipauser &&
128+ export OS_IDENTITY_API_VERSION=3 &&
129+ openstack group contains user --group-domain REDHAT --user-domain REDHAT grp-openstack-demo ipauser2"
130+ register : user2_group_result
131+ failed_when : " 'ipauser2 in group grp-openstack-demo' not in user2_group_result.stdout"
132+
133+ - name : Check ipauser3 in grp-openstack
134+ ansible.builtin.shell : |
135+ {{ shell_header }}
136+ {{ oc_header }}
137+ oc exec -t openstackclient -- bash -c "
138+ source /home/cloud-admin/ipauser &&
139+ export OS_IDENTITY_API_VERSION=3 &&
140+ openstack group contains user --group-domain REDHAT --user-domain REDHAT grp-openstack ipauser3"
141+ register : user3_group_result
142+ failed_when : " 'ipauser3 in group grp-openstack' not in user3_group_result.stdout"
143+ when : enable_tlse
0 commit comments