67
vendor/sigs.k8s.io/structured-merge-diff/v4/README.md
generated
vendored
67
vendor/sigs.k8s.io/structured-merge-diff/v4/README.md
generated
vendored
@@ -1,67 +0,0 @@
|
||||
# Structured Merge and Diff
|
||||
|
||||
This repo contains code which implements the Kubernetes "apply" operation.
|
||||
|
||||
## What is the apply operation?
|
||||
|
||||
We model resources in a control plane as having multiple "managers". Each
|
||||
manager is typically trying to manage only one aspect of a resource. The goal is
|
||||
to make it easy for disparate managers to make the changes they need without
|
||||
messing up the things that other managers are doing. In this system, both humans
|
||||
and machines (aka "controllers") act as managers.
|
||||
|
||||
To do this, we explicitly track (using the fieldset data structure) which fields
|
||||
each manager is currently managing.
|
||||
|
||||
Now, there are two basic mechanisms by which one modifies an object.
|
||||
|
||||
PUT/PATCH: This is a write command that says: "Make the object look EXACTLY like
|
||||
X".
|
||||
|
||||
APPLY: This is a write command that says: "The fields I manage should now look
|
||||
exactly like this (but I don't care about other fields)".
|
||||
|
||||
For PUT/PATCH, we deduce which fields will be managed based on what is changing.
|
||||
For APPLY, the user is explicitly stating which fields they wish to manage (and
|
||||
therefore requesting deletion of any fields that they used to manage but stop
|
||||
mentioning).
|
||||
|
||||
Any time a manager begins managing some new field, that field is removed from
|
||||
all other managers. If the manager is using the APPLY command, we call these
|
||||
conflicts, and will not proceed unless the user passes the "force" option. This
|
||||
prevents accidentally setting fields which some other entity is managing.
|
||||
|
||||
PUT/PATCH always "force". They are mostly used by automated systems, which won't
|
||||
do anything productive with a new error type.
|
||||
|
||||
## Components
|
||||
|
||||
The operation has a few building blocks:
|
||||
|
||||
* We define a targeted schema type in the schema package. (As a consequence of
|
||||
being well-targeted, it's much simpler than e.g. OpenAPI.)
|
||||
* We define a "field set" data structure, in the fieldpath package. A field path
|
||||
locates a field in an object, generally a "leaf" field for our purposes. A
|
||||
field set is a group of such paths. They can be stored efficiently in what
|
||||
amounts to a Trie.
|
||||
* We define a "value" type which stores an arbitrary object.
|
||||
* We define a "typed" package which combines "value" and "schema". Now we can
|
||||
validate that an object conforms to a schema, or compare two objects.
|
||||
* We define a "merge" package which uses all of the above concepts to implement
|
||||
the "apply" operation.
|
||||
* We will extensively test this.
|
||||
|
||||
## Community, discussion, contribution, and support
|
||||
|
||||
Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).
|
||||
|
||||
You can reach the maintainers of this project at:
|
||||
|
||||
- Slack: [#wg-api-expression](https://kubernetes.slack.com/messages/wg-api-expression)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)
|
||||
|
||||
### Code of conduct
|
||||
|
||||
Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).
|
||||
|
||||
[owners]: https://git.k8s.io/community/contributors/guide/owners.md
|
||||
13
vendor/sigs.k8s.io/structured-merge-diff/v4/go.mod
generated
vendored
13
vendor/sigs.k8s.io/structured-merge-diff/v4/go.mod
generated
vendored
@@ -1,13 +0,0 @@
|
||||
module sigs.k8s.io/structured-merge-diff/v4
|
||||
|
||||
require gopkg.in/yaml.v2 v2.2.1
|
||||
|
||||
require (
|
||||
github.com/google/gofuzz v1.0.0
|
||||
github.com/json-iterator/go v1.1.6
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.1 // indirect
|
||||
github.com/stretchr/testify v1.3.0 // indirect
|
||||
)
|
||||
|
||||
go 1.13
|
||||
20
vendor/sigs.k8s.io/yaml/.gitignore
generated
vendored
Normal file
20
vendor/sigs.k8s.io/yaml/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# OSX leaves these everywhere on SMB shares
|
||||
._*
|
||||
|
||||
# Eclipse files
|
||||
.classpath
|
||||
.project
|
||||
.settings/**
|
||||
|
||||
# Emacs save files
|
||||
*~
|
||||
|
||||
# Vim-related files
|
||||
[._]*.s[a-w][a-z]
|
||||
[._]s[a-w][a-z]
|
||||
*.un~
|
||||
Session.vim
|
||||
.netrwhist
|
||||
|
||||
# Go test binaries
|
||||
*.test
|
||||
13
vendor/sigs.k8s.io/yaml/.travis.yml
generated
vendored
Normal file
13
vendor/sigs.k8s.io/yaml/.travis.yml
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
language: go
|
||||
dist: xenial
|
||||
go:
|
||||
- 1.12.x
|
||||
- 1.13.x
|
||||
script:
|
||||
- diff -u <(echo -n) <(gofmt -d *.go)
|
||||
- diff -u <(echo -n) <(golint $(go list -e ./...) | grep -v YAMLToJSON)
|
||||
- GO111MODULE=on go vet .
|
||||
- GO111MODULE=on go test -v -race ./...
|
||||
- git diff --exit-code
|
||||
install:
|
||||
- GO111MODULE=off go get golang.org/x/lint/golint
|
||||
31
vendor/sigs.k8s.io/yaml/CONTRIBUTING.md
generated
vendored
Normal file
31
vendor/sigs.k8s.io/yaml/CONTRIBUTING.md
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
# Contributing Guidelines
|
||||
|
||||
Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:
|
||||
|
||||
_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._
|
||||
|
||||
## Getting Started
|
||||
|
||||
We have full documentation on how to get started contributing here:
|
||||
|
||||
<!---
|
||||
If your repo has certain guidelines for contribution, put them here ahead of the general k8s resources
|
||||
-->
|
||||
|
||||
- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests
|
||||
- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing)
|
||||
- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet.md) - Common resources for existing developers
|
||||
|
||||
## Mentorship
|
||||
|
||||
- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!
|
||||
|
||||
<!---
|
||||
Custom Information - if you're copying this template for the first time you can add custom content here, for example:
|
||||
|
||||
## Contact Information
|
||||
|
||||
- [Slack channel](https://kubernetes.slack.com/messages/kubernetes-users) - Replace `kubernetes-users` with your slack channel string, this will send users directly to your channel.
|
||||
- [Mailing list](URL)
|
||||
|
||||
-->
|
||||
27
vendor/sigs.k8s.io/yaml/OWNERS
generated
vendored
Normal file
27
vendor/sigs.k8s.io/yaml/OWNERS
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# See the OWNERS docs at https://go.k8s.io/owners
|
||||
|
||||
approvers:
|
||||
- dims
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- deads2k
|
||||
- sttts
|
||||
- liggitt
|
||||
- caesarxuchao
|
||||
reviewers:
|
||||
- dims
|
||||
- thockin
|
||||
- lavalamp
|
||||
- smarterclayton
|
||||
- wojtek-t
|
||||
- deads2k
|
||||
- derekwaynecarr
|
||||
- caesarxuchao
|
||||
- mikedanese
|
||||
- liggitt
|
||||
- gmarek
|
||||
- sttts
|
||||
- ncdc
|
||||
- tallclair
|
||||
labels:
|
||||
- sig/api-machinery
|
||||
9
vendor/sigs.k8s.io/yaml/RELEASE.md
generated
vendored
Normal file
9
vendor/sigs.k8s.io/yaml/RELEASE.md
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Release Process
|
||||
|
||||
The `yaml` Project is released on an as-needed basis. The process is as follows:
|
||||
|
||||
1. An issue is proposing a new release with a changelog since the last release
|
||||
1. All [OWNERS](OWNERS) must LGTM this release
|
||||
1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`
|
||||
1. The release issue is closed
|
||||
1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`
|
||||
17
vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS
generated
vendored
Normal file
17
vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# Defined below are the security contacts for this repo.
|
||||
#
|
||||
# They are the contact point for the Product Security Team to reach out
|
||||
# to for triaging and handling of incoming issues.
|
||||
#
|
||||
# The below names agree to abide by the
|
||||
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
|
||||
# and will be removed and replaced if they violate that agreement.
|
||||
#
|
||||
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
||||
# INSTRUCTIONS AT https://kubernetes.io/security/
|
||||
|
||||
cjcullen
|
||||
jessfraz
|
||||
liggitt
|
||||
philips
|
||||
tallclair
|
||||
3
vendor/sigs.k8s.io/yaml/code-of-conduct.md
generated
vendored
Normal file
3
vendor/sigs.k8s.io/yaml/code-of-conduct.md
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Kubernetes Community Code of Conduct
|
||||
|
||||
Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)
|
||||
9
vendor/sigs.k8s.io/yaml/go.sum
generated
vendored
Normal file
9
vendor/sigs.k8s.io/yaml/go.sum
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo=
|
||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
Reference in New Issue
Block a user