-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support explicitly specifying per-artifact language runtimes #3943
Support explicitly specifying per-artifact language runtimes #3943
Conversation
Codecov Report
|
@briandealwis Could you please rebase? |
@@ -28,6 +28,8 @@ import ( | |||
type Artifact struct { | |||
ImageName string `json:"imageName"` | |||
Tag string `json:"tag"` | |||
// Config is the corresponding artifact object from `skaffold.yaml`. | |||
Config latest.Artifact `json:"-"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I understand where this gets populated from?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hrmm that seems to have somehow disappeared. And clearly a test is needed.
@briandealwis what's the latest on this? |
It needs a substantial update. But it should be much easier with the new configs. |
closing this for now, please reopen when its ready |
Fixes: #2350
Merge after: #3942 (introduces
v2beta2
)Description
This PR adds a new
runtimes
attribute to build artifacts to allow a user to explicitly specify the set of language runtimes used in that artifact. This ability will be used byskaffold debug
and helps with Go debugging, wheredebug
's heuristics depend on defining some set of Go environment variables (e.g.,GOGC
,GODEBUG
,GOTRACEBACK
). It also helps with Buildpacks as there is no way for users to cause a new environment variables to be added to the runtime image.For example,
examples/getting-started/skaffold.yaml
will have the following change which will allow us to setup an Alpine-compatible Delve debugger.build: artifacts: - image: skaffold-example + runtimes: [go, musl]
Skaffold's deployers do not have any access to the original configuration model (as defined by the
skaffold.yaml
). To bridge this disconnect, I've added a new field topkg/skaffold/build
'sArtifact
to include the corresponding configuration artifact definition:User facing changes (remove if N/A)
Adds new
runtimes
field.Follow-up Work (remove if N/A)
I need to create a MUSL-based Delve container (GoogleContainerTools/container-debug-support#30) and then add support to
transform_go
to use the appropriate image depending on themusl
orglibc
runtime.