- kustomization.yaml -
-kustomization.yaml fields and API
-diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index b28b04f64..000000000 --- a/docs/404.html +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/docs/FAQ.md b/docs/FAQ.md deleted file mode 100644 index 60ee5f012..000000000 --- a/docs/FAQ.md +++ /dev/null @@ -1,2 +0,0 @@ - -Moved to [https://kubernetes-sigs.github.io/kustomize](https://kubernetes-sigs.github.io/kustomize/faq) diff --git a/docs/INSTALL.md b/docs/INSTALL.md deleted file mode 100644 index dcc30ce80..000000000 --- a/docs/INSTALL.md +++ /dev/null @@ -1,2 +0,0 @@ - -Moved to [https://kubernetes-sigs.github.io/kustomize](https://kubernetes-sigs.github.io/kustomize/installation) diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 5d49bd945..000000000 --- a/docs/README.md +++ /dev/null @@ -1,2 +0,0 @@ - -Moved to [https://kubernetes-sigs.github.io/kustomize](https://kubernetes-sigs.github.io/kustomize) diff --git a/docs/api-reference/glossary/index.html b/docs/api-reference/glossary/index.html deleted file mode 100644 index 28fd39660..000000000 --- a/docs/api-reference/glossary/index.html +++ /dev/null @@ -1,872 +0,0 @@ - - -
- - - - - - - - - - - - - - - - - - - - -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -kustomization.yaml fields and API
-Glossary of terms
-Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Add resources from a kustomization dir.
-Add annotations to all resources.
-Add labels and selectors to add all resources.
-Compose kustomizations.
-Generate ConfigMap resources.
-Adding CRD support
-Modify the name, tags and/or digest for images.
-Prepends the value to the names of all resources and references.
-Adds namespace to all resources.
-Appends the value to the names of all resources and references.
-Patch resources
-Patch resources using the json 6902 standard
-Patch resources using the strategic merge patch standard.
-Change the number of replicas for a resource.
-Resources to include.
-Generate Secret resources.
-Substitute name references.
-Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Initial release after move from github.com/kubernetes/kubectl to github.com/kubernetes-sigs/kustomize.
-History
-After security review, a field used in secret -generation (see below) was removed from the -definition of a kustomization file with no -mechanism to convert it to a new form. Also, the -set of files accessible from a kustomization file -has been further constrained.
-Per the versioning policy, -backward incompatible changes trigger an increment -of the major version number, hence we go -from 1.0.11 to 2.0.0. We’re taking this major -version increment opportunity to remove some -already deprecated fields, and the code paths -associated with them.
-A kustomization file can specify paths to other -files, including resources, patches, configmap -generation data, secret generation data and -bases. In the case of a base, the path can be a -git URL instead.
-In 1.x, these paths had to be relative to the
-current kustomization directory (the location of
-the kustomization file used in the build
-command).
In 2.0, bases can continue to specify, via -relative paths, kustomizations outside the current -kustomization directory. But non-base paths are -constrained to terminate in or below the current -kustomization directory. Further, bases specified -via a git URL may not reference files outside of -the directory used to clone the repository.
-patches was deprecated and replaced by
-patchesStrategicMerge when patchesJson6902 was
-introduced. In Kustomize 2.0.0, patches is
-removed. Please use patchesStrategicMerge
-instead.
imageTags is replaced by images since images
-can provide more features to change image names,
-registries, tags and digests.
commands is removed from SecretGenerator due to
-a security concern. One can use files or
-literals, similar to ConfigMapGenerator, to
-generate a secret.
secretGenerator:
-- name: app-tls
- files:
- - secret/tls.cert
- - secret/tls.key
- type: "kubernetes.io/tls"
-As this release is triggered by a security change, -there are no major new features to announce. A few -things that are worth mentioning in this release -are:
-More than 40 issues closed since 1.0.11 -release (including many extensions to -transformation rules).
-Users can run kustomize edit fix to migrate a
-kustomization file working with previous
-versions to one working with 2.0.0. For example,
-a kustomization.yaml with following content
patches:
- - deployment-patch.yaml
-imageTags:
- - name: postgres
- newTag: v1
-will be converted to
-apiVersion: kustomize.config.k8s.io/v1beta1
-kind: Kustomization
-patchesStrategicMerge:
- - deployment-patch.yaml
-images:
- - name: postgres
- newTag: v1
-Kustomization filename
-In previous versions, the name of a
-kustomization file had to be
-kustomization.yaml.
-Kustomize allows kustomization.yaml,
-kustomization.yml and
-Kustomization. In a directory, only one of
-those filenames is allowed. If there are more
-than one found, Kustomize will exit with an
-error. Please select the best filename for your
-use cases.
Cancelled plans to deprecate applying prefix/suffix to namespace. -The deprecation warning
-Adding nameprefix and namesuffix to Namespace resource will be deprecated in next release.
-was removed.
-Go modules, resource ordering respected, generator and transformer plugins, eased -loading restrictions, the notion of inventory, eased replica count modification. -About ~90 issues closed since v2.0.3 in ~400 commits.
-Download here.
-
Kustomize now defines its dependencies in a top
-level go.mod file. This is the first step
-towards a package structure intentially exported
-as one or more Go modules for use in other
-programs (kubectl, kubebuilder, etc.) and in
-kustomize plugins (see below).

Kustomize now retains the depth-first order of -resources as read, a frequently requested -feature.
-This means resource order can be controlled -by editting kustomization files. This is -also vital to applying user-defined -transformations (plugins) in a particular -order.
-Nothing needs to be done to activate this; -it happens automatically.
-The build command now accepts a --reorder
-flag with values legacy and none,
-with a default value of legacy.
legacy means apply an ordering based on
-GVK, that currently emits Namespace objects
-first, and ValidatingWebhookConfiguration
-objects last. This means that despite
-automatic retention of load order, your
-build output won’t change by default.
none means don’t reorder the resources before
-output. Specify this to see output order
-respect input order.

Since the beginning (as kinflate back in Sep
-2017), kustomize has read or generated resources,
-applied a series of pipelined transformation to
-them, and emitted the result to stdout.
At that time, the only way to change the behavior -of a generator (e.g. a secret generator), or -change the behavior of a transformer (e.g. a name -changer, or json patcher), was to modify source -code and put out a release.
-v1.0.9 introduced generator options as a means -to change the behavior of the only two generators -available at the time - Secret and ConfigMap -generators. It also introduced -transformer configs as a way to fine tune the -targets of transformations (e.g. to which fields -selectors should be added). Most of the feature -requests for kustomize revolve around changing the -behavior of the builtin generators and -transformers.
-v2.1.0 adds an alpha plugin framework, that
-encourages users to write their own generators or
-transformers, declaring them as kubernetes
-objects just like everything else, and apply them
-as part of the kustomize build process.
To inform the API exposed to plugins, and to
-confirm that the plugin framework can offer plugin
-authors the same capabilities as builtin
-operations, all the builtin generators and
-tranformers have been converted to plugin form
-(with one exceptions awaiting Go module
-refinements). This means that adding, say, a
-secretGenerator or commonAnnotations directive
-to your kustomization will (in v2.1.0) trigger
-execution of
-code committed as a plugin.
For more information, see the -kustomize plugin documentation.
-
The following usage:
-kustomize build --load_restrictor none $target
-allows a kustomization.yaml file used in this
-build to refer to files outside its own directory
-(i.e. outside its root).
This is an opt-in to suppress a security feature -that denies this precise behavior.
-This feature should only be used to allow multiple
-overlays (e.g. prod, staging and dev) to share a
-patch file. To share resources, use a relative
-path or URL to a kustomization directory in the
-resources directive.

Alpha
-Users can add an inventory stanza to their
-kustomization file, to add a special inventory
-object to the build result.
This object applies to the cluster along with -everything else in the build result and can be -used by other clients to intelligently prune -orphaned cluster resources.
-For more information see the -kustomize inventory object documentation.
-resources expanded, bases deprecatedThe resources field has been generalized; it now
-accepts what formerly could only be specified in
-the bases field.
This change was made to allow users fine control
-over resource processing order. With a distinct
-bases field, bases had to be loaded separately
-from resources as a group. Now, base loading may
-be interleaved as desired with the loading of
-resource files from the current
-directory. Resource ordering
-had to be respected before this feature could be
-introduced.
The bases field is now deprecated, and will be
-deleted in some future major release. Manage the
-deprecation simply moving the arguments of the
-bases field to the resources field in the
-desired order, e.g.
--resources: -- someResouceFile.yaml -- someOtherResourceFile.yaml -bases: -- ../../someBaseDir -
could become
---resources: -- someResouceFile.yaml -- ../../someBaseDir -- someOtherResourceFile.yaml -
The kustomized edit fix command will do this for
-you, though it will always put the bases at the
-end.
As an aside, the resources, generators and
-transformers fields now all accept the same
-argument format.
--Each field’s argument is a string list, -where each entry is either a resource (a -relative path to a YAML file) or a -kustomization (a path or URL -pointing to a directory with a kustomization -file). A kustomization directory used in this -context is called a base.
-
The fact that the generators and transformers
-field accept bases and the fact that generator
-and transformer configuration objects are just
-normal k8s resources means that one can generate
-or transform a generator or a transformer (see
-TestTransformerTransformers).
replicas fieldThe common task of patching a deployment to edit -the number of replicas is now made easier -with the new replicas field.
-envs fieldAn envs sub-field has been added to both
-configMapGenerator and secretGenerator,
-replacing the now deprecated (and singular)
-env field. The new field accepts lists, just
-like its sibling fields files and literals.
Optionally use kustomize edit fix to merge
-singular env field into a plural field.
This release is basically v2.1.0,
-with many post-v2.1.0 bugs fixed (in about 150
-commits) and a v3 in Go package paths.
The major version increment to v3 puts a new
-floor on a stable API for plugin developers
-(both Go plugin developers and exec plugin
-developers who happen to use Go).
We made a mistake - v2.1.0 should have been -v3.0.0. Per the Go modules doc (which have -improved a great deal recently), a release that’s -already tagged v2 or higher should increment the -major version when performing their first Go -module-based release.
-This advice applies to kustomize, since it was -already at major version 2 when it began using Go -modules to state its own dependencies in v2.1.0.
-But the more important reason for v3 is a change
-to the kustomize versioning policy, forced by
-the introduction of plugins.
Historically, kustomize’s versioning policy
-didn’t involve Go modules and addressed only the
-command line tool’s behavior and the fields in a
-kustomization file. The underlying packages were
-an implementation detail, not under semantic
-versioning, because they weren’t intended for
-export (and should have all been under
-internal). Thus although the v2.1.0 CLI is
-backward compatible with v2.0.3, the underlying
-package APIs are not.
With Go modules, the go tool must assume that Go
-packages respect semantic versioning, so it can
-perform minimal version selection.
With the introduction of alpha plugins, kustomize
-sub-packages - in particular loader and
-resmap - become part of an API formally exposed
-to plugin authors, and so must be semantically
-versioned. This allows plugins defined in other
-repositories to clarify that they depend on
-kustomize v3.0.0, and not see confusing errors
-arising from incompatibilities between v2.1.0 and
-v2.0.3. Hence, the jump to v3.
Aside - the set of kustomize packages outside
-internal is too large, and over time, informed
-by package use, this API surface must shrink.
-Such shrinkage will trigger a major version
-increment.
Since this version, Kustomize allows applying one patch to multiple resources. This works for both Strategic Merge Patch and JSON Patch. Take a look at patch multiple objects.
-Multiple improvements have been made to allow the user to leverage “namespace” -instead/or with “name suffix/prefix” to segregate resources.
-The following example demonstrates how using the namespace field in the patch definition,
-will let the user define two different patches against two different Deployment having the
-same “deploy1” name but in different namespaces in the same Kustomize context/folder.
-Unless the namespace: field has been specified in the kustomization.yaml, no namespace
-value will be handled as Kubernetes default namespace.
apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: deploy1
- namespace: main
-spec:
- template:
- spec:
- containers:
- - name: nginx
- env:
- - name: ANOTHERENV
- value: TESTVALUE
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: deploy1
- namespace: production
-spec:
- template:
- spec:
- containers:
- - name: main
- env:
- - name: ANOTHERENV
- value: PRODVALUE
-It is possible to add namespace field to the variable declaration. In the following example,
-two Service objects with the same elasticsearch name have been declared.
-Specifying the namespace in the objRef of the corresponding varriables, allows Kustomize to
-resovlve thoses variables.
-If the namespace is not specified, Kustomize will handle it has a “wildcard” value.
Extract of kustomization.yaml:
-vars:
-- name: elasticsearch-test-protocol
- objref:
- kind: Service
- name: elasticsearch
- namespace: test
- apiVersion: v1
- fieldref:
- fieldpath: spec.ports[0].protocol
-- name: elasticsearch-dev-protocol
- objref:
- kind: Service
- name: elasticsearch
- namespace: dev
- apiVersion: v1
- fieldref:
- fieldpath: spec.ports[0].protocol
-
-Kustomize is now able to deal with simultaneous changes of name and namespace. -Special attention has been paid the handling of:
-The user should be able to use a kustomization.yaml as shown in the example bellow -even if ClusterRoleBind,RoleBinding and ValidatingWebookConfiguration are part of the -resources he needs to declare.
-Extract of kustomization.yaml:
-namePrefix: pfx-
-nameSuffix: -sfx
-namespace: testnamespace
-
-resources:
-...
-Kustomize is now able to support more aggregation patterns.
-If for instance, the top level of kustomization.yaml, is simply -combining sub-components, (as in the following example), Kustomize has improved -resource matching capabilities. This removes some of the constraints which were -present on the utilization of prefix/suffix and namespace transformers in the -individual components.
-resources:
-- ../component1
-- ../component2
-- ../component3
-configurations: section of the kustomization.yaml.kustomize help command has been tidied up.Since this version, Kustomize allows inline patches in all three of patchesStrategicMerge, patchesJson6902 and patches. Take a look at inline patch.
Since this version, one can create a kustomization.yaml file in a directory through a create subcommand.
Create a new overlay from the base ../base
-kustomize create --resources ../base
-Create a new kustomization detecing resources in the current directory
-kustomize create --autodetect
-Once can also add all resources in the current directory recursively by
-kustomize create --autodetect --recursive
-A new example generator of using go-getter to download resources is added. Take a look at go-getter generator.
- - - -This is a patch release, with no new features from 3.2.0.
-It reflects a change in dependence.
-The kustomize binary is now built as a client, with no special -consideration, of the set of public packages represented by the Go -module at [https://github.com/kubernetes-sigs/kustomize].
-kustomize the binary is now a client of the kustomize API
-represented by the public package surface presented by
-https://github.com/kubernetes-sigs/kustomize/v{whatever}
Many of the PRs since the last vrelease were -around restructuring the sigs.k8s.io/kustomize -repository into three Go modules instead of just one.
-The reasons for this are detailed in the versioning -policy documentation, and what it means for releasing -is explained in the release process documentation.
-The tl;dr is that the top level module
-sigs.k8s.io/kustomize now defines the kustomize Go
-API, and the kustomize CLI sits below it in an
-independent module sigs.k8s.io/kustomize/kustomize.
The modules release independently, though in practice a
-new release of the kustomize Go API will likely be
-followed quickly by a new release of the kustomize
-executable.
This is a necessary step to creating a much smaller -kustomize Go API surface that has some hope of -conforming to semantic versioning and being of some use -to clients.
-The kustomize CLI will see the same kustomize Go API as -any other client.
-The new semver-able API will begin with v4.0.0 (not
-yet released) and be a clean break with v3 etc.
3c9d828f - Have kustomize CLI depend on kustomize Go API v3.3.0 (Jeffrey Regan)
-5d800f0b - Merge pull request #1595 from monopole/threeReleases (Jeff Regan)
-4eb2d5bc - Three builders. (Jeffrey Regan)
-988af1ff - Update README.md (Jeff Regan)
-1617183e - Merge pull request #1590 from monopole/releaseProcessUpdate (Kubernetes Prow Robot)
-ee727464 - update release process doc (jregan)
-c9e7dc3b - Merge pull request #1589 from monopole/moreTestsAroundKustFileName (Jeff Regan)
-07e0e46a - improve tests for alternative kustomization file names (Jeffrey Regan)
-404d2d63 - Merge pull request #1587 from monopole/reducePgmconfig (Jeff Regan)
-baa0296a - Reduce size of pgmconfig package (Jeffrey Regan)
-0f665ac1 - Merge pull request #1544 from ptux/add-transformer-href (Jeff Regan)
-14b0a650 - Merge pull request #1581 from monopole/refactorFs (Jeff Regan)
-2d58f8b8 - Break the dep between fs and pgmconfig. (Jeffrey Regan)
-9a43ca53 - Merge pull request #1578 from nlamirault/fix/build-plugins-doc (Jeff Regan)
-5372fc6f - Merge pull request #1579 from monopole/fsPackageCleanup (Jeff Regan)
-86bc3440 - Merge pull request #1513 from nimohunter/fix_empty_list_item (Kubernetes Prow Robot)
-a014f7d4 - Merge pull request #1561 from beautytiger/dev-190925 (Jeff Regan)
-9a94bcb8 - Improve fs package and doc in prep to officially go public (Jeffrey Regan)
-07634ef0 - Merge pull request #1575 from monopole/versioning (Jeff Regan)
-995f88d6 - Update versioning notes. (jregan)
-334a6467 - Fix: documentation link for plugins (Nicolas Lamirault)
-08963ba5 - improve test code coverage in transformers (Guangming Wang)
-326fb689 - Merge pull request #1570 from bzub/1234-go_plugin_doc (Jeff Regan)
-970ce67c - Update goPluginCaveats.md (Jeff Regan)
-98d18930 - Update INSTALL.md (Jeff Regan)
-d89b448c - Fix git tag recovery in cloud build. (Jeff Regan)
-17bf9d32 - Update releasing README. (Jeff Regan)
-a99aff1d - Merge pull request #1571 from monopole/updateCloudBuildProcess (Kubernetes Prow Robot)
-a694ac7b - Update cloud build process for kustomize. (Jeffrey Regan)
-b5b11ef6 - Fix compile kustomize example. (bzub)
-fa1af6f5 - Merge pull request #1473 from richardmarshall/execpluginhash (Jeff Regan)
-9288dec0 - Fix failing BashedConfigMapTest (Jeff Regan)
-1a45dd0b - Merge pull request #1566 from monopole/releaseNotes3.2.1 (Kubernetes Prow Robot)
-592c5acf - docs: Exec plugin generator options (Richard Marshall)
-ac9424fa - tests: Add unit tests for update resource options (Richard Marshall)
-79fbe7c4 - Support resource generator options in exec plugins (Richard Marshall)
-f69d526f - v3.2.1 release notes (Jeff Regan)
-07a95a60 - Merge pull request #1565 from monopole/tweakBinaryDepsBeforeTagging (Jeff Regan)
-032b3857 - Pin the kustomize binary's dependence on kustomize libs. (jregan)
-81062959 - Merge pull request #1564 from monopole/moveKustomizeBinaryToOwnModule (Kubernetes Prow Robot)
-b82a8fd3 - Move the kustomize binary to its own module. (Jeffrey Regan)
-2d0c22d6 - Merge pull request #1562 from keleustes/tools (Kubernetes Prow Robot)
-aa342def - Pin tool versions using go modules (Ian Howell)
-10786ec0 - Merge pull request #1554 from keleustes/readme (Kubernetes Prow Robot)
-7c705687 - Update README.md to include Kubernetes 1.16 (Jerome Brette)
-e8933d97 - Merge pull request #1560 from monopole/precommitTuneup (Jeff Regan)
-9d7b6544 - Make pre-commit more portable and less tricky. (jregan)
-7a0946a9 - Merge pull request #1558 from monopole/dependOnNewPluginatorModule (Jeff Regan)
-def4f045 - Depend on new pluginator location. (Jeffrey Regan)
-2f2408f1 - Merge pull request #1559 from monopole/compressCopyright (Jeff Regan)
-3b9bcc48 - Compress copyright in the commands package. (Jeffrey Regan)
-d0429ff4 - Merge pull request #1557 from monopole/pluginatorModule (Jeff Regan)
-33deefc3 - Copy pluginator to its own module. (Jeffrey Regan)
-9b3de82b - Merge pull request #1506 from Liujingfang1/release (Jeff Regan)
-d217074f - Merge pull request #1550 from keleustes/apiversion (Kubernetes Prow Robot)
-1d90ba7c - Fix typo in apiVersion yaml declaration (Jerome Brette)
-eeeb4c36 - Merge pull request #1547 from keleustes/extensions (Kubernetes Prow Robot)
-b1faa989 - Update Ingress apiVersion to networking.k8s.io/v1beta1 (Jerome Brette)
-d8250c9e - move test case (nimohunter)
-c9500466 - add transformer href (Wang(わん))
-0c32691e - Merge pull request #1537 from jaypipes/gomod-install-note (Kubernetes Prow Robot)
-88b1d627 - Merge pull request #1541 from rtnpro/patch-1 (Jeff Regan)
-aec82066 - Update INSTALL.md (Jeff Regan)
-20c2b53a - Merge pull request #1542 from monopole/tweakFilePathsInTest (Jeff Regan)
-274b5c3b - Tweak file path handling and logging in test. (Jeffrey Regan)
-b1fdaa23 - Fix typo in transformerconfigs README (Ratnadeep Debnath)
-b5d5e70b - empty list or map item return error (nimohunter)
-2e829853 - empty list or map item return error (nimohunter)
-55941f57 - add note about GO111MODULE for source install (Jay Pipes)
-9e226001 - empty list or map item return error (nimohunter)
-77b63f96 - add release note for v3.2.0 (jingfangliu)
-
-
-
- Thursday, October 24, 2019 in Releases
- - - - - - -Summary of changes First release of the Go API-only module Many of the PRs since the last vrelease were around restructuring the sigs.k8s.io/kustomize repository into three Go modules instead of just one. -The reasons for this are detailed in the …
- -Thursday, September 26, 2019 in Releases
- - - - - - -This is a patch release, with no new features from 3.2.0. -It reflects a change in dependence. -The kustomize binary is now built as a client, with no special consideration, of the set of public packages represented by the Go module at …
- -Tuesday, September 17, 2019 in Releases
- - - - - - -Inline Patch Since this version, Kustomize allows inline patches in all three of patchesStrategicMerge, patchesJson6902 and patches. Take a look at inline patch. -New Subcommand Since this version, one can create a kustomization.yaml file in a …
- -Friday, July 26, 2019 in Releases
- - - - - - -Extended patches Since this version, Kustomize allows applying one patch to multiple resources. This works for both Strategic Merge Patch and JSON Patch. Take a look at patch multiple objects. -Improved Resource Matching Multiple improvements have …
- -Wednesday, July 03, 2019 in Releases
- - - - - - -This release is basically v2.1.0, with many post-v2.1.0 bugs fixed (in about 150 commits) and a v3 in Go package paths. -The major version increment to v3 puts a new floor on a stable API for plugin developers (both Go plugin developers and exec …
- -Tuesday, June 18, 2019 in Releases
- - - - - - -Go modules, resource ordering respected, generator and transformer plugins, eased loading restrictions, the notion of inventory, eased replica count modification. About ~90 issues closed since v2.0.3 in ~400 commits. -Download here. -Go modules …
- -Tuesday, February 05, 2019 in Releases
- - - - - - -After security review, a field used in secret generation (see below) was removed from the definition of a kustomization file with no mechanism to convert it to a new form. Also, the set of files accessible from a kustomization file has been further …
- -Monday, May 21, 2018 in Releases
- - - - - - -Initial release after move from github.com/kubernetes/kubectl to github.com/kubernetes-sigs/kustomize. -History - May 2018: v1.0 after move to github.com/kubernetes-sigs/kubectl from github.com/kubernetes/kubectl. Has kustomization file, bases, …
- -Thursday, October 24, 2019 in Releases
- - - - - - -Summary of changes First release of the Go API-only module Many of the PRs since the last vrelease were around restructuring the sigs.k8s.io/kustomize repository into three Go modules instead of just one. -The reasons for this are detailed in the …
- -Thursday, September 26, 2019 in Releases
- - - - - - -This is a patch release, with no new features from 3.2.0. -It reflects a change in dependence. -The kustomize binary is now built as a client, with no special consideration, of the set of public packages represented by the Go module at …
- -Tuesday, September 17, 2019 in Releases
- - - - - - -Inline Patch Since this version, Kustomize allows inline patches in all three of patchesStrategicMerge, patchesJson6902 and patches. Take a look at inline patch. -New Subcommand Since this version, one can create a kustomization.yaml file in a …
- -Friday, July 26, 2019 in Releases
- - - - - - -Extended patches Since this version, Kustomize allows applying one patch to multiple resources. This works for both Strategic Merge Patch and JSON Patch. Take a look at patch multiple objects. -Improved Resource Matching Multiple improvements have …
- -Wednesday, July 03, 2019 in Releases
- - - - - - -This release is basically v2.1.0, with many post-v2.1.0 bugs fixed (in about 150 commits) and a v3 in Go package paths. -The major version increment to v3 puts a new floor on a stable API for plugin developers (both Go plugin developers and exec …
- -Tuesday, June 18, 2019 in Releases
- - - - - - -Go modules, resource ordering respected, generator and transformer plugins, eased loading restrictions, the notion of inventory, eased replica count modification. About ~90 issues closed since v2.0.3 in ~400 commits. -Download here. -Go modules …
- -Tuesday, February 05, 2019 in Releases
- - - - - - -After security review, a field used in secret generation (see below) was removed from the definition of a kustomization file with no mechanism to convert it to a new form. Also, the set of files accessible from a kustomization file has been further …
- -Monday, May 21, 2018 in Releases
- - - - - - -Initial release after move from github.com/kubernetes/kubectl to github.com/kubernetes-sigs/kustomize. -History - May 2018: v1.0 after move to github.com/kubernetes-sigs/kubectl from github.com/kubernetes/kubectl. Has kustomization file, bases, …
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Follow are resources for Kustomize contributors.
- -How to file bugs and fix Kustomize bugs
-Joining SIG-CLI and the Kubernetes community
-How to contribute features
-How to make Kustomize docs contributions
-How to modify Kustomize
-How to develop on MacOS
-How to develop on Windows
-Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Eschewed Features
-Moved to https://github.com/kubernetes-sigs/cli-experimental
- - - -Moved to https://github.com/kubernetes-sigs/cli-experimental
- --- -kustomize help - -Manages declarative configuration of Kubernetes. -See https://sigs.k8s.io/kustomize - -Usage: - kustomize [command] - -Available Commands: - build Print configuration per contents of kustomization.yaml - cfg Commands for reading and writing configuration. - create Create a new kustomization in the current directory - edit Edits a kustomization file - fn Commands for running functions against configuration. - help Help about any command - install-completion Install shell completion. - live Commands for reading and writing resources to a cluster. - version Prints the kustomize version - -Flags: - -h, --help help for kustomize - --stack-trace print a stack-trace on error - -Additional help topics: - kustomize docs-fn [Alpha] Documentation for developing and invoking Configuration Functions. - kustomize docs-fn-spec [Alpha] Documentation for Configuration Functions Specification. - kustomize docs-io-annotations [Alpha] Documentation for annotations used by io. - kustomize docs-merge [Alpha] Documentation for merging Resources (2-way merge). - kustomize docs-merge3 [Alpha] Documentation for merging Resources (3-way merge). - kustomize tutorials-command-basics [Alpha] Tutorials for using basic config commands. - kustomize tutorials-function-basics [Alpha] Tutorials for using functions. - -Use "kustomize [command] --help" for more information about a command.
Print configuration per contents of kustomization.yaml
-Commands for reading and writing configuration.
-Create a new kustomization in the current directory
-Edits a kustomization file
-Commands for running functions against configuration
-Help about any command
-Installs shell completion
-Commands for reading and writing resources to a cluster.
-Prints the kustomize version
-Prints the current kustomize version
--- -kustomize version -{Version:kustomize/v3.8.1 GitCommit:0b359d0ef0272e6545eda0e99aacd63aef99c4d0 BuildDate:2020-07-16T00:58:46Z GoOs:linux GoArch:amd64} -
Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Workflow for bespoke applications
-Workflow for off the shelf applications
-Kustomize plugins guide
-Kustomize components guide
-Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- - - -Moved to https://github.com/kubernetes-sigs/cli-experimental
- - - -Moved to https://github.com/kubernetes-sigs/cli-experimental
- - - -Moved to https://github.com/kubernetes-sigs/cli-experimental
- - - -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Builtin Plugins
-Exec plugin on linux in 60 seconds
-Go plugin Caveats
-Go plugin example
-We do a Pull Request contributions workflow on GitHub. -New users are always welcome!
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Moved to https://github.com/kubernetes-sigs/cli-experimental
- -Install Kustomize from the Go source code
-Install Kustomize by downloading precompiled binaries.
-Install Kustomize for MacOS using Homebrew or MacPorts
-Install Kustomize for Windows using Chocolatey
-Moved to https://github.com/kubernetes-sigs/cli-experimental
- -0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):w(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?w(e,a,t,!1):k(e,a)):w(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length0)throw new t.JsonPatchError('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",n,e,r);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new t.JsonPatchError("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",n,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new t.JsonPatchError("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",n,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&a.hasUndefined(e.value))throw new t.JsonPatchError("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",n,e,r);if(r)if("add"==e.op){var i=e.path.split("/").length,s=o.split("/").length;if(i!==s+1&&i!==s)throw new t.JsonPatchError("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",n,e,r)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==o)throw new t.JsonPatchError("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",n,e,r)}else if("move"===e.op||"copy"===e.op){var l=d([{op:"_get",path:e.from,value:void 0}],r);if(l&&"OPERATION_PATH_UNRESOLVABLE"===l.name)throw new t.JsonPatchError("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",n,e,r)}}function d(e,n,r){try{if(!Array.isArray(e))throw new t.JsonPatchError("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(n)f(a._deepClone(n),a._deepClone(e),r||!0);else{r=r||p;for(var o=0;o",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"",zwnj:""}},function(e,t,n){"use strict";var r=n(419),o=n(27).unescapeMd;e.exports=function(e,t){var n,i,a,u=t,s=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t8&&n<14);)if(92===n&&t+11)break;if(41===n&&--i<0)break;t++}return u!==t&&(a=o(e.src.slice(u,t)),!!e.parser.validateLink(a)&&(e.linkContent=a,e.pos=t,!0))}},function(e,t,n){"use strict";var r=n(27).replaceEntities;e.exports=function(e){var t=r(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}},function(e,t,n){"use strict";var r=n(27).unescapeMd;e.exports=function(e,t){var n,o=t,i=e.posMax,a=e.src.charCodeAt(t);if(34!==a&&39!==a&&40!==a)return!1;for(t++,40===a&&(a=41);t1?r-1:0),i=1;i=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r=n(160),o=n(95),i=n(97),a={};n(50)(a,n(19)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(40),o=n(36),i=n(96);e.exports=n(44)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),u=a.length,s=0;u>s;)r.f(e,n=a[s++],t[n]);return e}},function(e,t,n){var r=n(71),o=n(115),i=n(455);e.exports=function(e){return function(t,n,a){var u,s=r(t),l=o(s.length),c=i(a,l);if(e&&n!=n){for(;l>c;)if((u=s[c++])!=u)return!0}else for(;l>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var r=n(161),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t,n){var r=n(161),o=n(156);e.exports=function(e){return function(t,n){var i,a,u=String(o(t)),s=r(n),l=u.length;return s<0||s>=l?e?"":void 0:(i=u.charCodeAt(s))<55296||i>56319||s+1===l||(a=u.charCodeAt(s+1))<56320||a>57343?e?u.charAt(s):i:e?u.slice(s,s+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){var r=n(36),o=n(165);e.exports=n(15).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){n(459),n(245),n(470),n(474),n(485),n(486),e.exports=n(61).Promise},function(e,t,n){"use strict";var r=n(167),o={};o[n(18)("toStringTag")]="z",o+""!="[object z]"&&n(73)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t,n){e.exports=!n(100)&&!n(101)(function(){return 7!=Object.defineProperty(n(169)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(74);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(463),o=n(244),i=n(171),a={};n(59)(a,n(18)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(60),o=n(464),i=n(251),a=n(170)("IE_PROTO"),u=function(){},s=function(){var e,t=n(169)("iframe"),r=i.length;for(t.style.display="none",n(252).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("
-
-
-
-
-
-
-
- Search Results
-
-