Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,21 @@ jobs:
WEB_ADDR=`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web_kiwitcms_org`
sudo sh -c "echo '$WEB_ADDR web.kiwitcms.org' >> /etc/hosts"

- name: Wait for web server to be ready
run: |
for i in $(seq 1 30); do
if curl -sk -o /dev/null -w '%{http_code}' \
https://web.kiwitcms.org:8443/accounts/login/ \
| grep -q 200; then
echo "Web server is ready!"
exit 0
fi
echo "Waiting for web server... ($i/30)"
sleep 2
done
echo "Web server didn't become ready"
exit 1

- name: Install & configure Kerberos client
if: matrix.os == 'ubuntu-latest' && matrix.gssapi == 'with'
run: |
Expand All @@ -78,6 +93,22 @@ jobs:
- name: Verify web login with Kerberos
if: matrix.os == 'ubuntu-latest' && matrix.gssapi == 'with'
run: |
echo "=== Container logs ==="
docker logs web_kiwitcms_org 2>&1 | tail -50

echo "=== Keytab check ==="
docker exec web_kiwitcms_org klist -k /Kiwi/application.keytab 2>&1

echo "=== krb5.conf from container ==="
docker exec web_kiwitcms_org cat /etc/krb5.conf 2>&1

echo "=== httpd error log ==="
docker exec web_kiwitcms_org cat /var/log/httpd/error_log 2>&1 | tail -20 || echo "No error log found"

echo "=== Container status ==="
docker ps
docker inspect web_kiwitcms_org --format='{{.State.Health.Status}}' 2>&1 || echo "No health check"

make verify-web-login
klist

Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ verify-curl-with-kerberos:
.PHONY: verify-web-login
verify-web-login: verify-curl-with-kerberos
# grab the page
curl -k -L -o /tmp/curl.log --negotiate -u: \
curl -k -v -L -o /tmp/curl.log -X POST --negotiate -u: \
-b /tmp/cookie.jar -c /tmp/cookie.jar \
https://web.kiwitcms.org:8443/login/kerberos/
https://web.kiwitcms.org:8443/login/kerberos/ 2>&1 | tee /tmp/curl-verbose.log

# verify user has been logged in
cat /tmp/curl.log | grep 'Kiwi TCMS - Dashboard'
Expand Down
2 changes: 1 addition & 1 deletion tests/krb5/Dockerfile.kiwitcms
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM kiwitcms/kiwi

USER 0
RUN dnf -y --nodocs install gcc krb5-devel python3.12-devel && \
RUN dnf -y --nodocs install gcc krb5-devel krb5-workstation python3.12-devel && \
dnf clean all
USER 1001

Expand Down
Loading