Jenkins Dev パイプライン
developブランチをプッシュすると、Jenkinsが自動的にビルドし、K8sdevnamespaceにデプロイします。
Jenkinsへの接続
| 項目 | 値 |
|---|---|
| URL | 社内Jenkinsサーバー (VPN必要) |
| ビュー | InfoLineage |
| ジョブ一覧 | infolineage-platform-api, infolineage-platform-worker, infolineage-platform-frontend |
| Credentials | harbor(Harbor レジストリ ログイン) |
Jenkinsfileの位置
infra/jenkins/
├── Jenkinsfile.api
├── Jenkinsfile.worker
└── Jenkinsfile.frontend
各JobのPipeline設定でSCM→ Jenkinsfileのパスを指定します。
podTemplate パターン
すべての Jenkinsfile は Kubernetes podTemplate を使用します。ビルド Pod にコンテナを複数束ねて段階的に実行します。
podTemplate(
label: label,
containers: [
containerTemplate(name: 'java', image: 'eclipse-temurin:25-jre', ...),
containerTemplate(name: 'docker', image: 'docker:20.10', privileged: true, ...),
containerTemplate(name: 'kubectl', image: 'lachlanevenson/k8s-kubectl', ...),
],
volumes: [
hostPathVolume(hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock'),
]
)
| コンテナ | 役割 | 画像 |
|---|---|---|
java | Gradleビルド | eclipse-temurin:25-jre (API), eclipse-temurin:25 (Worker) |
docker | イメージビルド & Harborプッシュ | docker:20.10 |
kubectl | K8s デプロイ | lachlanevenson/k8s-kubectl |
APIジョブは
nodeSelector: jenkins.kubernetes.io/dedicated=trueを追加で指定します。
パイプラインステージ
1ステップ: Git Pull
stage('Git Pull') {
checkout scm
}