From 2a60483538b06a8b032d88118511c80d06838602 Mon Sep 17 00:00:00 2001 From: wuhuizuo Date: Tue, 8 Oct 2024 18:37:49 +0800 Subject: [PATCH] ci: fix builder image tags and simpfy the skaffold config (#462) Signed-off-by: wuhuizuo --------- Signed-off-by: wuhuizuo --- .../pull-cd-builder-images-centos7.yaml | 5 +- .github/workflows/pull-cd-util-images.yaml | 2 - .github/workflows/pull-ci-runtime-images.yaml | 5 +- .../workflows/pull-prod-runtime-images.yaml | 2 - .../release-cd-builder-images-centos7.yaml | 2 +- .github/workflows/release-cd-util-images.yaml | 4 +- .../workflows/release-ci-runtime-images.yaml | 3 +- .../release-prod-runtime-images.yaml | 4 +- Justfile | 2 +- dockerfiles/bases/skaffold.yaml | 115 ++++-------------- dockerfiles/cd/builders/skaffold-centos7.yaml | 6 +- dockerfiles/cd/builders/skaffold.yaml | 2 +- dockerfiles/cd/utils/skaffold.yaml | 43 ++----- dockerfiles/ci/skaffold.yaml | 50 ++------ 14 files changed, 60 insertions(+), 185 deletions(-) diff --git a/.github/workflows/pull-cd-builder-images-centos7.yaml b/.github/workflows/pull-cd-builder-images-centos7.yaml index c7c7e208..495ddc1b 100644 --- a/.github/workflows/pull-cd-builder-images-centos7.yaml +++ b/.github/workflows/pull-cd-builder-images-centos7.yaml @@ -1,4 +1,4 @@ -name: Pull test for CD builder images +name: Pull test for CD builder images - CentOS7 on: pull_request: branches: @@ -76,7 +76,8 @@ jobs: strategy: matrix: - module: [builder-tiflash, builder-tikv] + # module: [builder-tiflash, builder-tikv] + module: [builder-tikv] platform: [linux/amd64, linux/arm64] steps: - name: Checkout sources diff --git a/.github/workflows/pull-cd-util-images.yaml b/.github/workflows/pull-cd-util-images.yaml index b4b46200..ddf308d9 100644 --- a/.github/workflows/pull-cd-util-images.yaml +++ b/.github/workflows/pull-cd-util-images.yaml @@ -24,7 +24,6 @@ jobs: strategy: matrix: module: [utils] - builder-profile: [local-docker] platform: [linux/amd64, linux/arm64] steps: @@ -60,5 +59,4 @@ jobs: --default-repo ghcr.io/pingcap-qe/cd/utils \ --module ${{ matrix.module }} \ --platform ${{ matrix.platform }} \ - --profile ${{ matrix.builder-profile }} \ --push=false diff --git a/.github/workflows/pull-ci-runtime-images.yaml b/.github/workflows/pull-ci-runtime-images.yaml index 495795e4..3f30af7e 100644 --- a/.github/workflows/pull-ci-runtime-images.yaml +++ b/.github/workflows/pull-ci-runtime-images.yaml @@ -6,6 +6,8 @@ on: paths: - "dockerfiles/ci/base/**/Dockerfile" - "dockerfiles/ci/base/**/*.Dockerfile" + - "dockerfiles/ci/jenkins/**/Dockerfile" + - "dockerfiles/ci/jenkins/**/*.Dockerfile" - "dockerfiles/ci/skaffold.yaml" concurrency: @@ -25,7 +27,6 @@ jobs: matrix: module: [ci] platform: [linux/amd64, linux/arm64] - builder-profile: [local-docker] go-profile: [go-1.23, go-1.22, go-1.21] steps: @@ -73,5 +74,5 @@ jobs: --default-repo ghcr.io/pingcap-qe/ci \ --module ${{ matrix.module }} \ --platform ${{ matrix.platform }} \ - --profile ${{ matrix.go-profile }},${{ matrix.builder-profile }} \ + --profile ${{ matrix.go-profile }} \ --push=false diff --git a/.github/workflows/pull-prod-runtime-images.yaml b/.github/workflows/pull-prod-runtime-images.yaml index eaa893aa..10ad5851 100644 --- a/.github/workflows/pull-prod-runtime-images.yaml +++ b/.github/workflows/pull-prod-runtime-images.yaml @@ -24,7 +24,6 @@ jobs: strategy: matrix: module: [default, fips, release-6-5] - builder-profile: [local-docker] platform: [linux/amd64, linux/arm64] steps: @@ -76,5 +75,4 @@ jobs: --default-repo ghcr.io/pingcap-qe/bases \ --module ${{ matrix.module }} \ --platform ${{ matrix.platform }} \ - --profile ${{ matrix.builder-profile }} \ --push=false diff --git a/.github/workflows/release-cd-builder-images-centos7.yaml b/.github/workflows/release-cd-builder-images-centos7.yaml index 89dfdee7..0b8d6777 100644 --- a/.github/workflows/release-cd-builder-images-centos7.yaml +++ b/.github/workflows/release-cd-builder-images-centos7.yaml @@ -1,4 +1,4 @@ -name: Publish CD builder images +name: Publish CD builder images - CentOS7 on: workflow_dispatch: push: diff --git a/.github/workflows/release-cd-util-images.yaml b/.github/workflows/release-cd-util-images.yaml index a6cfa021..7ea9f3cb 100644 --- a/.github/workflows/release-cd-util-images.yaml +++ b/.github/workflows/release-cd-util-images.yaml @@ -21,7 +21,6 @@ jobs: strategy: matrix: module: [utils] - builder-profile: [local-docker] steps: - name: Checkout sources @@ -57,5 +56,4 @@ jobs: --build-concurrency 1 \ --cache-artifacts \ --default-repo ghcr.io/pingcap-qe/cd/utils \ - --module ${{ matrix.module }} \ - --profile ${{ matrix.builder-profile }} + --module ${{ matrix.module }} diff --git a/.github/workflows/release-ci-runtime-images.yaml b/.github/workflows/release-ci-runtime-images.yaml index de2c4a3f..298822e3 100644 --- a/.github/workflows/release-ci-runtime-images.yaml +++ b/.github/workflows/release-ci-runtime-images.yaml @@ -21,7 +21,6 @@ jobs: strategy: matrix: module: [ci] - builder-profile: [local-docker] go-profile: [go-1.23, go-1.22, go-1.21] steps: @@ -69,4 +68,4 @@ jobs: --cache-artifacts \ --default-repo ghcr.io/pingcap-qe/ci \ --module ${{ matrix.module }} \ - --profile ${{ matrix.go-profile }},${{ matrix.builder-profile }} + --profile ${{ matrix.go-profile }} diff --git a/.github/workflows/release-prod-runtime-images.yaml b/.github/workflows/release-prod-runtime-images.yaml index 85de9620..53859bd4 100644 --- a/.github/workflows/release-prod-runtime-images.yaml +++ b/.github/workflows/release-prod-runtime-images.yaml @@ -21,7 +21,6 @@ jobs: strategy: matrix: module: [default, fips, release-6-5] - builder-profile: [local-docker] steps: - name: Checkout sources @@ -70,5 +69,4 @@ jobs: --build-concurrency 1 \ --cache-artifacts \ --default-repo ghcr.io/pingcap-qe/bases \ - --module ${{ matrix.module }} \ - --profile ${{ matrix.builder-profile }} + --module ${{ matrix.module }} diff --git a/Justfile b/Justfile index ad1e56ea..8df04344 100644 --- a/Justfile +++ b/Justfile @@ -36,4 +36,4 @@ _clone_without_submodules component git_url git_branch: ([ -e ../{{component}}/.dockerignore ] && rm ../{{component}}/.dockerignore) || true # make step depended on git metadata. _docker_build_prod_base_images registry_prefix: - cd dockerfiles/bases; skaffold build --profile local-docker --default-repo {{registry_prefix}} + cd dockerfiles/bases; skaffold build --default-repo {{registry_prefix}} diff --git a/dockerfiles/bases/skaffold.yaml b/dockerfiles/bases/skaffold.yaml index d9d3e6e7..c6493f1d 100644 --- a/dockerfiles/bases/skaffold.yaml +++ b/dockerfiles/bases/skaffold.yaml @@ -1,4 +1,4 @@ -# Ref: https://skaffold.dev/docs/builders/builder-types/docker/#dockerfile-in-cluster-with-kaniko +# Ref: https://skaffold.dev/docs/builders/builder-types/docker apiVersion: skaffold/v4beta6 kind: Config metadata: @@ -7,103 +7,59 @@ build: artifacts: - image: pingcap-base platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: pingcap-base/Dockerfile - cache: {} - image: pd-base platforms: [linux/amd64, linux/arm64] requires: - image: pingcap-base alias: PINGCAP_BASE - kaniko: + docker: dockerfile: pd-base/Dockerfile - cache: {} - image: ng-monitoring-base platforms: [linux/amd64, linux/arm64] requires: - image: pingcap-base alias: PINGCAP_BASE - kaniko: + docker: dockerfile: ng-monitoring-base/Dockerfile - cache: {} - image: tidb-base platforms: [linux/amd64, linux/arm64] requires: - image: pingcap-base alias: PINGCAP_BASE - kaniko: + docker: dockerfile: tidb-base/Dockerfile - cache: {} - image: tiflash-base platforms: [linux/amd64, linux/arm64] requires: - image: pingcap-base alias: PINGCAP_BASE - kaniko: + docker: dockerfile: tiflash-base/Dockerfile - cache: {} - image: tikv-base platforms: [linux/amd64, linux/arm64] requires: - image: pingcap-base alias: PINGCAP_BASE - kaniko: + docker: dockerfile: tikv-base/Dockerfile - cache: {} - image: tools-base platforms: [linux/amd64, linux/arm64] requires: - image: pingcap-base alias: PINGCAP_BASE - kaniko: + docker: dockerfile: tools-base/Dockerfile - cache: {} tagPolicy: customTemplate: template: "v1.9.2" - cluster: + local: + useDockerCLI: true + useBuildkit: true concurrency: 0 - randomDockerConfigSecret: false - randomPullSecret: false - dockerConfig: - secretName: hub-pingcap-net - resources: - requests: - cpu: "1" - memory: 4Gi - limits: - cpu: "2" - memory: 8Gi -profiles: - - name: local-docker - build: - local: - useDockerCLI: true - useBuildkit: true - concurrency: 0 - tryImportMissing: true - patches: - - op: move - from: /build/artifacts/0/kaniko - path: /build/artifacts/0/docker - - op: move - from: /build/artifacts/1/kaniko - path: /build/artifacts/1/docker - - op: move - from: /build/artifacts/2/kaniko - path: /build/artifacts/2/docker - - op: move - from: /build/artifacts/3/kaniko - path: /build/artifacts/3/docker - - op: move - from: /build/artifacts/4/kaniko - path: /build/artifacts/4/docker - - op: move - from: /build/artifacts/5/kaniko - path: /build/artifacts/5/docker - - op: move - from: /build/artifacts/6/kaniko - path: /build/artifacts/6/docker + tryImportMissing: true + --- apiVersion: skaffold/v4beta6 kind: Config @@ -113,37 +69,16 @@ build: artifacts: - image: tikv-base platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: tikv-base/fips.Dockerfile - cache: {} tagPolicy: customTemplate: template: "v1.9.1-fips" - cluster: + local: + useDockerCLI: true + useBuildkit: true concurrency: 0 - randomDockerConfigSecret: false - randomPullSecret: false - dockerConfig: - secretName: hub-pingcap-net - resources: - requests: - cpu: "1" - memory: 4Gi - limits: - cpu: "2" - memory: 8Gi -profiles: - - name: local-docker - build: - local: - useDockerCLI: true - useBuildkit: true - concurrency: 0 - tryImportMissing: true - patches: - - op: move - from: /build/artifacts/0/kaniko - path: /build/artifacts/0/docker + tryImportMissing: true --- apiVersion: skaffold/v4beta6 kind: Config @@ -152,49 +87,49 @@ metadata: build: artifacts: - image: ng-monitoring-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] custom: buildCommand: ./build-old.sh ng-monitoring-base release-6.5.Dockerfile dependencies: dockerfile: path: ng-monitoring-base/release-6.5.Dockerfile - image: pd-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] custom: buildCommand: ./build-old.sh pd-base release-6.5.Dockerfile dependencies: dockerfile: path: pd-base/release-6.5.Dockerfile - image: tidb-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] custom: buildCommand: ./build-old.sh tidb-base release-6.5.Dockerfile dependencies: dockerfile: path: tidb-base/release-6.5.Dockerfile - image: tiflash-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] docker: dockerfile: tiflash-base/release-6.5.Dockerfile noCache: false pullParent: false squash: false - image: tiflow-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] custom: buildCommand: ./build-old.sh tiflow-base release-6.5.Dockerfile dependencies: dockerfile: path: tiflow-base/release-6.5.Dockerfile - image: tikv-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] custom: buildCommand: ./build-old.sh tikv-base release-6.5.Dockerfile dependencies: dockerfile: path: tikv-base/release-6.5.Dockerfile - image: tools-base - platforms: [linux/amd64,linux/arm64] + platforms: [linux/amd64, linux/arm64] custom: buildCommand: ./build-old.sh tools-base release-6.5.Dockerfile dependencies: diff --git a/dockerfiles/cd/builders/skaffold-centos7.yaml b/dockerfiles/cd/builders/skaffold-centos7.yaml index 1107df0c..234a4da5 100644 --- a/dockerfiles/cd/builders/skaffold-centos7.yaml +++ b/dockerfiles/cd/builders/skaffold-centos7.yaml @@ -181,7 +181,7 @@ profiles: path: /build/tagPolicy/customTemplate/template value: "{{ .SHA }}-centos7-devtoolset8" - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: DEVTOOLSET_VER: 8 - name: devtoolset9 @@ -190,7 +190,7 @@ profiles: path: /build/tagPolicy/customTemplate/template value: "{{ .SHA }}-centos7-devtoolset9" - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: DEVTOOLSET_VER: 9 - name: devtoolset10 @@ -199,7 +199,7 @@ profiles: path: /build/tagPolicy/customTemplate/template value: "{{ .SHA }}-centos7-devtoolset10" - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: DEVTOOLSET_VER: 10 --- diff --git a/dockerfiles/cd/builders/skaffold.yaml b/dockerfiles/cd/builders/skaffold.yaml index 73c451b6..2049a9a4 100644 --- a/dockerfiles/cd/builders/skaffold.yaml +++ b/dockerfiles/cd/builders/skaffold.yaml @@ -142,7 +142,7 @@ build: tryImportMissing: true tagPolicy: customTemplate: - template: "{{ .SHA }}-centos7" + template: "{{ .SHA }}" components: - name: SHA gitCommit: diff --git a/dockerfiles/cd/utils/skaffold.yaml b/dockerfiles/cd/utils/skaffold.yaml index 63ac7cdf..e01cd829 100644 --- a/dockerfiles/cd/utils/skaffold.yaml +++ b/dockerfiles/cd/utils/skaffold.yaml @@ -7,47 +7,18 @@ build: artifacts: - image: release platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: release/Dockerfile - cache: {} - image: ks3util platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: ks3util/Dockerfile - cache: {} - image: remote platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: remote/Dockerfile - cache: {} - cluster: + local: + useDockerCLI: true + useBuildkit: true concurrency: 0 - randomDockerConfigSecret: false - randomPullSecret: false - dockerConfig: - secretName: hub-pingcap-net-ee - resources: - requests: - cpu: "1" - memory: 2Gi - limits: - cpu: "2" - memory: 4Gi -profiles: - - name: local-docker - build: - local: - useDockerCLI: true - useBuildkit: true - concurrency: 0 - tryImportMissing: true - patches: - - op: move - from: /build/artifacts/0/kaniko - path: /build/artifacts/0/docker - - op: move - from: /build/artifacts/1/kaniko - path: /build/artifacts/1/docker - - op: move - from: /build/artifacts/2/kaniko - path: /build/artifacts/2/docker + tryImportMissing: true diff --git a/dockerfiles/ci/skaffold.yaml b/dockerfiles/ci/skaffold.yaml index 5d0f888d..751909da 100644 --- a/dockerfiles/ci/skaffold.yaml +++ b/dockerfiles/ci/skaffold.yaml @@ -1,4 +1,4 @@ -# Ref: https://skaffold.dev/docs/builders/builder-types/docker/#dockerfile-in-cluster-with-kaniko +# Ref: https://skaffold.dev/docs/builders/builder-types/docker --- apiVersion: skaffold/v4beta6 kind: Config @@ -8,14 +8,12 @@ build: artifacts: - image: base platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: base/Dockerfile - cache: {} - image: jenkins platforms: [linux/amd64, linux/arm64] - kaniko: + docker: dockerfile: jenkins/Dockerfile - cache: {} requires: - image: base alias: BASE_IMG @@ -26,46 +24,24 @@ build: - name: SHA gitCommit: variant: Tags - cluster: + local: + useDockerCLI: true + useBuildkit: true concurrency: 0 - randomDockerConfigSecret: false - randomPullSecret: false - dockerConfig: - secretName: hub-pingcap-net-ee - resources: - requests: - cpu: "1" - memory: 2Gi - limits: - cpu: "2" - memory: 4Gi + tryImportMissing: true profiles: - - name: local-docker - build: - local: - useDockerCLI: true - useBuildkit: true - concurrency: 0 - tryImportMissing: true - patches: - - op: move - from: /build/artifacts/0/kaniko - path: /build/artifacts/0/docker - - op: move - from: /build/artifacts/1/kaniko - path: /build/artifacts/1/docker - name: go-1.23 patches: - op: replace path: /build/tagPolicy/customTemplate/template value: "{{ .SHA }}-go1.23" - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: &value-go1-23 # renovate: datasource=docker depName=golang GOLANG_VERSION: 1.23.2 - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: *value-go1-23 - name: go-1.22 patches: @@ -73,12 +49,12 @@ profiles: path: /build/tagPolicy/customTemplate/template value: "{{ .SHA }}-go1.22" - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: &value-go1-22 # renovate: datasource=docker depName=golang GOLANG_VERSION: 1.22.8 - op: add - path: /build/artifacts/1/kaniko/buildArgs + path: /build/artifacts/1/docker/buildArgs value: *value-go1-22 - name: go-1.21 patches: @@ -86,9 +62,9 @@ profiles: path: /build/tagPolicy/customTemplate/template value: "{{ .SHA }}-go1.21" - op: add - path: /build/artifacts/0/kaniko/buildArgs + path: /build/artifacts/0/docker/buildArgs value: &value-go1-21 GOLANG_VERSION: 1.21.13 # EOL - op: add - path: /build/artifacts/1/kaniko/buildArgs + path: /build/artifacts/1/docker/buildArgs value: *value-go1-21