skaffold
私の場合、正しくセットアップする方法に少し戸惑っています。これが私のものskaffold.yaml
です:
apiVersion: skaffold/v2beta17
kind: Config
build:
tagPolicy:
gitCommit: {}
artifacts:
- image: zero-x/spring-cloud-kubernetes/config-map-it
custom:
buildCommand: ./build.sh
local:
useDockerCLI: false
useBuildkit: false
push: false
deploy:
helm:
releases:
- name: config-map-it
chartPath: src/main/helm
artifactOverrides:
# skaffold will override this with a different tag
image: zero-x/spring-cloud-kubernetes/config-map-it
valuesFiles:
- src/main/helm/values.yaml
wait: true
setValues:
namespace: spring-k8s
でbuild.sh
:
#!/usr/bin/env bash
# build jar only, no tests, no chart
.././gradlew clean build bootjar -x test -x helmChartBuild --quiet
docker build --quiet --build-arg JAR_FILE='build/libs/*.jar' -t ${IMAGE} .
${IMAGE}
によって提供されskaffold
ます。
そのため、最初のものをビルドし、jar
それをイメージにパックしてデプロイする必要があります。次の 2 つのことを順番に呼び出します。
skaffold build // builds the image just fine
skaffold deploy
で失敗します:
You either need to:
run [skaffold deploy] with [--images TAG] for each pre-built artifact
or [skaffold run] instead, to let Skaffold build, tag and deploy artifacts.
no tag provided for image [zero-x/spring-cloud-kubernetes/config-map-it]
ここで何が起こっているのですか?多くのバッシングがなければ、これを機能させることはできません。控えめに言っても、skaffold と適切に行う方法に関するチュートリアルとドキュメントはほとんどありません。
編集
だから私は実際にやっていた:
kind create cluster --name spring-k8s --wait 5m
その程度まで私はそう思った:
deploy:
kubeContext: kind-spring-k8s
helm:
...
物事はうまくいくでしょうが、そうではありません。
すべてを最初からやり直して実行すると、次のようになります。
skaffold deploy --file-output=images.json -vdebug
私はそれを見ます:
Tags used in deployment:
- zero-x/spring-cloud-kubernetes/config-map-it -> zero-x/spring-cloud-kubernetes/config-map-it:78da248b669d2fafacbd144cf22d7251dfde57c664c70a5fd7d53793d9d5efd7
DEBU[0000] Local images can't be referenced by digest.
They are tagged and referenced by a unique, local only, tag instead.
See https://skaffold.dev/docs/pipeline-stages/taggers/#how-tagging-works
またはそれ以降:
helm --kube-context kind-spring-k8s dep build src/main/helm
したがって、これはかなり混乱します。これ以上何が欠けていますか?