3

gitlab-runner 10.4.0 を使用して gitlab 10.4.3 を実行しています。これは、kubernetes ランナーとキャッシュ用の minio-server を使用した kubernetes デプロイメントとして実行しています。gitlab docsに従ってインストールしました。

ファイルに適切な設定を追加すると、すべてが期待どおりにキャッシュで機能しました.gitlab-ci.yml

build:
  stage: build
  variables:
    GIT_STRATEGY: fetch
  cache:
    key: "$CI_BUILD_REF_NAME"
    paths:
      - node_modules/
  script:
    - compile-templates.sh
    - yarn install
    - yarn run build

パイプライン出力は、最初はキャッシュをいっぱいにし、同じブランチでの後続の実行では、キャッシュを正しくプルおよびプッシュしました。

Running on gitlab/runner-abcdefg-project-123-concurrent-123456 via gitlab-runner-123456-987654...
Cloning repository for feature/gitlab-cache with git depth set to 1...
Cloning into '/group/project'...
Checking out b1348594 as feature/gitlab-cache...
Skipping Git submodules setup
Checking cache for feature/gitlab-cache...
Downloading cache.zip from http://minio-service:9000/runner/runner/abcdefg/project/123/feature/gitlab-cache 
Successfully extracted cache
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
Login Succeeded
[...snip...]
Creating cache feature/gitlab-cache...
node_modules/: found 26281 matching files
Uploading cache.zip to http://minio-service:9000/runner/runner/abcdefg/project/123/feature/gitlab-cache 
Created cache

しかし、何回か実行した後、突然動作しなくなりました - 理由はわかりません。また、job-global cache-definition を試してみましたが、うまくいきませんでした。

Running on gitlab/runner-abcdefg-project-123-concurrent-123456 via gitlab-runner-123456-987654...
Cloning repository for feature/gitlab-cache with git depth set to 1...
Cloning into '/group/project'...
Checking out b1348594 as feature/gitlab-cache...
Skipping Git submodules setup
$ docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
Login Succeeded
[...snip...]
Job succeeded

私の gitlab-runner config.toml には適切な設定があります。

[[runners]]
  // ...
  [runners.kubernetes]
  // ...
  [runners.cache]
    Type = "s3"
    // I've also tried http://minio-service:9000 to no avail
    ServerAddress = "minio-service:9000"
    AccessKey = "xxxxxxxxxxxxxxxxxxxxxxxx"
    SecretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    BucketName = "runner"
    Insecure = true

注:設定を無効な設定に変更すると、ランナー ログにエラー メッセージが表示されなくなります。

ポートは、ランナー自体およびジョブ ポッドから到達可能です。

$ curl -s "http://minio-service:9000"
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied.</Message><Key></Key><BucketName></BucketName><Resource>/</Resource><RequestId>12345</RequestId><HostId>12345</HostId></Error>

minio のバケットは、ローカル ボリュームおよびminio クライアント経由でチェックインされた状態で存在しますmc

gitlab-runner または minio-server のポッドのログにエラーはありません。

のキャッシュ設定.gitlab-ci.ymlが単純に無視され、何を確認する必要があるかについてのアイデアがありません。アイデアのある人はいますか?

4

1 に答える 1