apply: fix detection of non-dry-run enabled servers

Apply only checks that the server supports dry-run in the create path,
not the update path, which is pretty bad.
This commit is contained in:
Antoine Pelisse 2018-12-07 09:46:09 -08:00 committed by Antoine Pelisse
parent 16fb54ef7c
commit f9ca4aafc6

View File

@ -344,6 +344,13 @@ func (o *ApplyOptions) Run() error {
return err
}
// If server-dry-run is requested but the type doesn't support it, fail right away.
if o.ServerDryRun {
if err := dryRunVerifier.HasSupport(info.Mapping.GroupVersionKind); err != nil {
return err
}
}
if info.Namespaced() {
visitedNamespaces.Insert(info.Namespace)
}
@ -367,12 +374,6 @@ func (o *ApplyOptions) Run() error {
if !errors.IsNotFound(err) {
return cmdutil.AddSourceToErr(fmt.Sprintf("retrieving current configuration of:\n%s\nfrom server for:", info.String()), info.Source, err)
}
// If server-dry-run is requested but the type doesn't support it, fail right away.
if o.ServerDryRun {
if err := dryRunVerifier.HasSupport(info.Mapping.GroupVersionKind); err != nil {
return err
}
}
// Create the resource if it doesn't exist
// First, update the annotation used by kubectl apply