Files
kubernetes/pkg/kubectl/apply/strategy/BUILD
Phillip Wittrock df5fc7a2df Beginning of rewrite apply merge-logic using visitor pattern.
Major changes:
- Don't generate a patch, instead generate the merged object so it can be used with PUT
- Separate tree parsing logic to collate items in a list from the delete / merge / replace / add logic when merging
- Use openapi for merge strategy metadata so it works with extensions and version skew
- Support multi-field mergekeys when merging lists
- Support replace strategy for maps
- Reduce complexity of generating order when merging lists - keep the locally defined order and append remote only-items

Continue to support:
- Explicitly setting fields to null
- Merging lists of primitives
- Don't randomize ordering when merging lists

TODO:
- Retain keys
- Conflict detection
2017-10-02 14:37:32 -07:00

69 lines
1.8 KiB
Python

load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"doc.go",
"merge.go",
"merge_visitor.go",
"replace_visitor.go",
"retain_keys_visitor.go",
"strategic_visitor.go",
],
visibility = ["//visibility:public"],
deps = ["//pkg/kubectl/apply:go_default_library"],
)
go_test(
name = "go_default_xtest",
srcs = [
"merge_map_list_test.go",
"merge_map_test.go",
"merge_primitive_list_test.go",
"merge_primitive_test.go",
"replace_map_list_test.go",
"replace_map_test.go",
"replace_primitive_list_test.go",
"suite_test.go",
"utils_test.go",
],
data = [
":swagger-spec",
"//api/openapi-spec:swagger-spec",
],
deps = [
":go_default_library",
"//pkg/kubectl/apply:go_default_library",
"//pkg/kubectl/apply/parse:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
"//vendor/github.com/ghodss/yaml:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/github.com/onsi/ginkgo/config:go_default_library",
"//vendor/github.com/onsi/ginkgo/types:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
filegroup(
name = "swagger-spec",
srcs = glob([
"**/*.json",
]),
)