git-runner-cm.yaml 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. apiVersion: v1
  2. data:
  3. check-live: |
  4. #!/bin/bash
  5. if /usr/bin/pgrep -f .*register-the-runner; then
  6. exit 0
  7. elif /usr/bin/pgrep gitlab.*runner; then
  8. exit 0
  9. else
  10. exit 1
  11. fi
  12. config.toml: |
  13. concurrent = 10
  14. check_interval = 3
  15. log_level = "info"
  16. listen_address = '[::]:9252'
  17. configure: |
  18. set -e
  19. cp /init-secrets/* /secrets
  20. entrypoint: |
  21. #!/bin/bash
  22. set -e
  23. mkdir -p /home/gitlab-runner/.gitlab-runner/
  24. cp /scripts/config.toml /home/gitlab-runner/.gitlab-runner/
  25. # Register the runner
  26. if [[ -f /secrets/accesskey && -f /secrets/secretkey ]]; then
  27. export CACHE_S3_ACCESS_KEY=$(cat /secrets/accesskey)
  28. export CACHE_S3_SECRET_KEY=$(cat /secrets/secretkey)
  29. fi
  30. if [[ -f /secrets/gcs-applicaton-credentials-file ]]; then
  31. export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-applicaton-credentials-file"
  32. else
  33. if [[ -f /secrets/gcs-access-id && -f /secrets/gcs-private-key ]]; then
  34. export CACHE_GCS_ACCESS_ID=$(cat /secrets/gcs-access-id)
  35. # echo -e used to make private key multiline (in google json auth key private key is oneline with \n)
  36. export CACHE_GCS_PRIVATE_KEY=$(echo -e $(cat /secrets/gcs-private-key))
  37. fi
  38. fi
  39. if [[ -f /secrets/runner-registration-token ]]; then
  40. export REGISTRATION_TOKEN=$(cat /secrets/runner-registration-token)
  41. fi
  42. if [[ -f /secrets/runner-token ]]; then
  43. export CI_SERVER_TOKEN=$(cat /secrets/runner-token)
  44. fi
  45. if ! sh /scripts/register-the-runner; then
  46. exit 1
  47. fi
  48. # Temporary workaround until https://gitlab.com/gitlab-org/gitlab-runner/issues/4228
  49. # is merged
  50. sed -n '30,$p' /home/gitlab-runner/.gitlab-runner/config.toml >> /home/gitlab-runner/custom_commands
  51. sed -e '30,$d' -i /home/gitlab-runner/.gitlab-runner/config.toml
  52. cat /scripts/kubernetes.volumes | sed -e '1d' | sed '1,$s/^/ /' >> /home/gitlab-runner/.gitlab-runner/config.toml
  53. cat /home/gitlab-runner/custom_commands >> /home/gitlab-runner/.gitlab-runner/config.toml
  54. # Start the runner
  55. /entrypoint run --user=gitlab-runner \
  56. --working-directory=/home/gitlab-runner
  57. kubernetes.volumes: "\n[[runners.kubernetes.volumes.pvc]]\n mount_path = \"/cache\"\n
  58. \ name = \"gitrunner-workspace\"\n read_only = false\n \n"
  59. register-the-runner: "#!/bin/bash\nMAX_REGISTER_ATTEMPTS=30\n\nfor i in $(seq
  60. 1 \"${MAX_REGISTER_ATTEMPTS}\"); do\n echo \"Registration attempt ${i} of ${MAX_REGISTER_ATTEMPTS}\"\n
  61. \ /entrypoint register \\\n --non-interactive\n\n retval=$?\n\n if [ ${retval}
  62. = 0 ]; then\n break\n elif [ ${i} = ${MAX_REGISTER_ATTEMPTS} ]; then\n exit
  63. 1\n fi\n\n sleep 5 \ndone\n\nexit 0\n"
  64. kind: ConfigMap
  65. metadata:
  66. labels:
  67. app: gitrunner-gitlab-runner
  68. chart: gitlab-runner-0.8.0-beta
  69. release: gitrunner
  70. name: gitrunner-gitlab-runner