GoogleContainerTools / GoogleContainerTools/skaffold
Dependencies in kubectl deployments?
- Dominant language
- Go
- Stars
- 15.9k
- Forks
- 1.7k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 10
Description
Is there any possibility to take care of dependencies or to enforce that separate kubectl commands are launched (instead of a single one)? I am facing the issue, that the deployment fails due to an "unable to recognize"-error:
error: unable to recognize "c:\\\\daten\\\\projects\\\\kubernetes\\\\nodejsSkaffold\\\\kubernetes-manifests\\\\4_rate_limiting.yaml": no matches for kind "KongPlugin" in version "configuration.konghq.com/v1"
See log file:
[log.txt](https://github.com/GoogleContainerTools/skaffold/files/3901708/log.txt)
This is caused due to the fact that 0_all-in-one-dbless.yaml needs to be deployed first of all (as KongPlugin is defined in this file).
### Expected behavior
Enforce seperate execution of kubectl for certain files:
1st step: execute ./kubernetes-manifests/0_all-in-one-dbless.yaml
2nd step: execute
- ./kubernetes-manifests/1_nodejs.deployment.yaml
- ./kubernetes-manifests/2_nodejs.service.deployment.yaml
- ./kubernetes-manifests/3_nodejs.ingress.deployment.yaml
- ./kubernetes-manifests/4_rate_limiting.yaml
### Actual behavior
Currently a single kubectl is executed:
kubectl --context docker-desktop create --validate=false --dry-run -oyaml -f c:\\daten\\projects\\kubernetes\nodejsSkaffold\\kubernetes-manifests\\0_all-in-one-dbless.yaml -f c:\\daten\\projects\\kubernetes\\nodejsSkaffold\\kubernetes-manifests\\1_nodejs.deployment.yaml -f c:\\daten\\projects\\kubernetes\\nodejsSkaffold\\kubernetes-manifests\\2_nodejs.service.deployment.yaml -f c:\\daten\\projects\\kubernetes\\nodejsSkaffold\\kubernetes-manifests\\3_nodejs.ingress.deployment.yaml -f c:\\daten\\projects\\kubernetes\\nodejsSkaffold\\kubernetes-manifests\\4_rate_limiting.yaml
### Information
- Skaffold version: v1.0.1
- Operating system: Windows 10
- Contents of skaffold.yaml:
apiVersion: skaffold/v1beta15
kind: Config
build:
tagPolicy:
sha256: {}
# defines where to find the code at build time and where to push the resulting image
artifacts:
- image: nodejs
context: .
docker:
noCache: true
# defines the Kubernetes manifests to deploy on each run
deploy:
kubectl:
flags:
apply:
- "--validate=false"
manifests:
# 0_all-in-one-dbless.yaml contents https://raw.githubusercontent.com/Kong/kubernetes-ingress-controller/master/deploy/single/all-in-one-dbless.yaml
- ./kubernetes-manifests/0_all-in-one-dbless.yaml
- ./kubernetes-manifests/1_nodejs.deployment.yaml
- ./kubernetes-manifests/2_nodejs.service.deployment.yaml
- ./kubernetes-manifests/3_nodejs.ingress.deployment.yaml
- ./kubernetes-manifests/4_rate_limiting.yaml
### Steps to reproduce the behavior
1. a clonable repository with the sample skaffold project
2. `skaffold `
3. ...
Contributor guide
Assessment
This issue has not been assessed yet.