ci: Lab-CA mitliefern, 'fetch origin' einsparen (Fund aus Pipeline 159)
Der Probelauf des neuen Jobs ist an genau der Stelle gescheitert, an der man es nicht vermutet: 'git fetch gitea' lief durch (Gitea ist oeffentlich lesbar), 'git fetch origin main' dagegen brach ab mit 'unable to get local issuer certificate'. Der Runner stellt die Lab-CA nur seinem eigenen Klon-Schritt bereit, nicht dem Job-Script - der Klon oben im Log gelingt, der eigene git-Aufruf zwei Zeilen spaeter nicht. Zwei Aenderungen: 1. Die CA-Kette liegt jetzt als ci/lab-ca-chain.crt im Repo und wird per GIT_SSL_CAINFO gesetzt (CI_SERVER_TLS_CA_FILE zuerst, falls ein spaeterer Runner sie doch liefert). Ein CA-Zertifikat ist oeffentlich, kein Geheimnis - dieselbe Loesung wie im wiki-bookstack-Repo. Verifiziert: die Kette (aXionLabs Root + Intermediate) validiert https://git.lab. 2. 'git fetch origin main' faellt ganz weg. Der Runner hat main mit voller Historie schon ausgecheckt, CI_COMMIT_SHA ist dessen Stand - ein Netzaufruf weniger und eine Fehlerquelle weniger. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
This commit is contained in:
co-authored by
Claude Fable 5
parent
0a07da260f
commit
52573634df
+15
-7
@@ -53,17 +53,25 @@ canonize_rotation:
|
|||||||
script:
|
script:
|
||||||
- apk add --no-cache git ca-certificates >/dev/null
|
- apk add --no-cache git ca-certificates >/dev/null
|
||||||
- |
|
- |
|
||||||
# Lab-CA: der Runner legt sie je nach Version an unterschiedlichen Orten ab.
|
# Lab-CA. Der Runner stellt sie nur seinem eigenen Klon-Schritt bereit, nicht
|
||||||
for c in /etc/gitlab-runner/certs/git.lab.crt /etc/gitlab-runner/certs/ca.crt; do
|
# dem Job-Script - ein 'git fetch origin' im Script scheiterte deshalb an
|
||||||
[ -f "$c" ] && export GIT_SSL_CAINFO="$c" && break
|
# "unable to get local issuer certificate" (live gesehen, Pipeline 159).
|
||||||
done
|
# Deshalb liegt die Kette hier im Repo; sie ist ein oeffentliches Zertifikat,
|
||||||
echo "CA: ${GIT_SSL_CAINFO:-Systemspeicher}"
|
# kein Geheimnis. CI_SERVER_TLS_CA_FILE zuerst, falls der Runner sie doch liefert.
|
||||||
|
if [ -n "$CI_SERVER_TLS_CA_FILE" ] && [ -f "$CI_SERVER_TLS_CA_FILE" ]; then
|
||||||
|
export GIT_SSL_CAINFO="$CI_SERVER_TLS_CA_FILE"
|
||||||
|
else
|
||||||
|
export GIT_SSL_CAINFO="$CI_PROJECT_DIR/ci/lab-ca-chain.crt"
|
||||||
|
fi
|
||||||
|
echo "CA: $GIT_SSL_CAINFO"
|
||||||
|
test -f "$GIT_SSL_CAINFO" || { echo "ABBRUCH: CA-Datei fehlt."; exit 1; }
|
||||||
- git config --global user.email "ci@axion1337.chat"
|
- git config --global user.email "ci@axion1337.chat"
|
||||||
- git config --global user.name "TURN-Rotation (automatische Kanonisierung)"
|
- git config --global user.name "TURN-Rotation (automatische Kanonisierung)"
|
||||||
- git remote add gitea https://rohana.axion1337.de/sorb/axion1337.chat-gitops.git
|
- git remote add gitea https://rohana.axion1337.de/sorb/axion1337.chat-gitops.git
|
||||||
- git fetch --quiet gitea
|
- git fetch --quiet gitea
|
||||||
- git fetch --quiet origin main
|
# Kein 'fetch origin' noetig: der Runner hat main schon ausgecheckt (GIT_DEPTH 0),
|
||||||
- git checkout -B main origin/main
|
# CI_COMMIT_SHA ist der Stand von main beim Anlegen der Pipeline.
|
||||||
|
- git checkout -B main "$CI_COMMIT_SHA"
|
||||||
- |
|
- |
|
||||||
MERGED=0
|
MERGED=0
|
||||||
for ref in $(git for-each-ref --format='%(refname:short)' 'refs/remotes/gitea/turn-secret-rotation-*'); do
|
for ref in $(git for-each-ref --format='%(refname:short)' 'refs/remotes/gitea/turn-secret-rotation-*'); do
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIBrzCCAVWgAwIBAgIQMZ1JRdPpesdAzJqMZOa9tDAKBggqhkjOPQQDAjA2MRUw
|
||||||
|
EwYDVQQKEwxhWGlvbkxhYnMgQ0ExHTAbBgNVBAMTFGFYaW9uTGFicyBDQSBSb290
|
||||||
|
IENBMB4XDTI1MTIwMjIyMDEyMVoXDTM1MTEzMDIyMDEyMVowNjEVMBMGA1UEChMM
|
||||||
|
YVhpb25MYWJzIENBMR0wGwYDVQQDExRhWGlvbkxhYnMgQ0EgUm9vdCBDQTBZMBMG
|
||||||
|
ByqGSM49AgEGCCqGSM49AwEHA0IABFuhwykAsSg2BWI3wqWHjNuL+5xlGjhHyiSt
|
||||||
|
6YmoSd1tJGa7WA5pdRRm2JZriA3IWuhdkZVTUl8nLduRJVTb5KSjRTBDMA4GA1Ud
|
||||||
|
DwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEBMB0GA1UdDgQWBBRGPIQeqG1S
|
||||||
|
CyHYLwSQbe4jQ9RcZDAKBggqhkjOPQQDAgNIADBFAiEA1Z0Dxtj9hJOYkLJ8FLNT
|
||||||
|
96eatVP/OsKyaRk/MxReIwMCICrCeNSSOGUbiZ8Hd89jtlkCpWiLH1pCzZPUtYDX
|
||||||
|
R7gr
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIB2DCCAX6gAwIBAgIQLv6q8XwRjaYo8l0gB9NdyjAKBggqhkjOPQQDAjA2MRUw
|
||||||
|
EwYDVQQKEwxhWGlvbkxhYnMgQ0ExHTAbBgNVBAMTFGFYaW9uTGFicyBDQSBSb290
|
||||||
|
IENBMB4XDTI1MTIwMjIyMDEyMloXDTM1MTEzMDIyMDEyMlowPjEVMBMGA1UEChMM
|
||||||
|
YVhpb25MYWJzIENBMSUwIwYDVQQDExxhWGlvbkxhYnMgQ0EgSW50ZXJtZWRpYXRl
|
||||||
|
IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECj764yT9QNMsRjEfmHnuDI1o
|
||||||
|
11faTeMl5kcwZlnDetHF5O+Ey5d+kKuysqIOF1YX8bPt6o61aJYRmc4RxRDU/aNm
|
||||||
|
MGQwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE
|
||||||
|
FGpRTHbW0eTgBMJep8w+Qyvy9oWzMB8GA1UdIwQYMBaAFEY8hB6obVILIdgvBJBt
|
||||||
|
7iND1FxkMAoGCCqGSM49BAMCA0gAMEUCIEAbqm/Y14dyM7h+I5en2l596eDDh3cS
|
||||||
|
2GwVO3CKuBY2AiEAkjPO/8M8PaFEaoncc/JDFxk9KR2P9IY24BvUA7YVsAU=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
Reference in New Issue
Block a user