Skip to content

Commit

Permalink
Merge pull request #4069 from natasha41575/LineBreakIssue
Browse files Browse the repository at this point in the history
fix kyaml issue with multiline scalars
  • Loading branch information
k8s-ci-robot committed Jul 14, 2021
2 parents b5091a5 + 477d893 commit 34981b6
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 21 deletions.
4 changes: 2 additions & 2 deletions kyaml/internal/forked/github.com/go-yaml/yaml/emitterc.go
Original file line number Diff line number Diff line change
Expand Up @@ -1699,8 +1699,8 @@ func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []by
if !put_break(emitter) {
return false
}
}
if !write_break(emitter, value, &i) {
i++
} else if !write_break(emitter, value, &i) {
return false
}
//emitter.indention = true
Expand Down
2 changes: 1 addition & 1 deletion kyaml/internal/forked/github.com/go-yaml/yaml/scannerc.go
Original file line number Diff line number Diff line change
Expand Up @@ -2653,7 +2653,7 @@ func yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, si
// Do we need to fold line breaks?
if len(leading_break) > 0 && leading_break[0] == '\n' {
if len(trailing_breaks) == 0 {
s = append(s, ' ')
s = append(s, '\n')
} else {
s = append(s, trailing_breaks...)
}
Expand Down
10 changes: 6 additions & 4 deletions kyaml/kio/byteio_readwriter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ items:
`,
},

// TODO: See issue #https://github.com/kubernetes-sigs/kustomize/issues/4066
// the line breaks in scalar values are lost.
{
name: "round_trip_with_multiline_scalar",
input: `
Expand Down Expand Up @@ -87,10 +85,14 @@ spec:
description: CanonicalService is the Schema for the canonicalservices API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
`,
},
Expand Down
3 changes: 3 additions & 0 deletions kyaml/yaml/util.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// Copyright 2021 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0

package yaml

import (
Expand Down
3 changes: 3 additions & 0 deletions kyaml/yaml/util_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// Copyright 2021 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0

package yaml

import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,16 @@ spec:
description: Workspace is the Schema for the workspaces API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
description: |-
APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: 'Kind is a string value representing the REST resource this
description: |-
Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
Expand Down Expand Up @@ -111,8 +113,9 @@ spec:
description: The key to select.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
description: |-
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string
optional:
description: Specify whether the ConfigMap or its key
Expand All @@ -122,10 +125,11 @@ spec:
- key
type: object
fieldRef:
description: 'Selects a field of the pod: supports metadata.name,
description: |-
Selects a field of the pod: supports metadata.name,
metadata.namespace, metadata.labels, metadata.annotations,
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP,
status.podIPs.'
status.podIPs.
properties:
apiVersion:
description: Version of the schema the FieldPath is written
Expand All @@ -139,14 +143,16 @@ spec:
- fieldPath
type: object
resourceFieldRef:
description: 'Selects a resource of the container: only resources
description: |-
Selects a resource of the container: only resources
limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage,
requests.cpu, requests.memory and requests.ephemeral-storage)
are currently supported.'
are currently supported.
properties:
containerName:
description: 'Container name: required for volumes, optional
for env vars'
description: |-
Container name: required for volumes, optional
for env vars
type: string
divisor:
anyOf:
Expand All @@ -170,8 +176,9 @@ spec:
be a valid secret key.
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?'
description: |-
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
type: string
optional:
description: Specify whether the Secret or its key must
Expand Down

0 comments on commit 34981b6

Please sign in to comment.