mirror of https://github.com/k3s-io/k3s
37 lines
1.9 KiB
Go
37 lines
1.9 KiB
Go
// Copyright 2019 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// Package starlark contains a kio.Filter which can be applied to resources to transform
|
|
// them through starlark program.
|
|
//
|
|
// Starlark has become a popular runtime embedding in go programs, especially for Kubernetes
|
|
// and data processing.
|
|
// Examples: https://github.com/cruise-automation/isopod, https://qri.io/docs/starlark/starlib,
|
|
// https://github.com/stripe/skycfg, https://github.com/k14s/ytt
|
|
//
|
|
// The resources are provided to the starlark program through the global variable "resourceList".
|
|
// "resourceList" is a dictionary containing an "items" field with a list of resources.
|
|
// The starlark modified "resourceList" is the Filter output.
|
|
//
|
|
// After being run through the starlark program, the filter will copy the comments from the input
|
|
// resources to restore them -- due to them being dropped as a result of serializing the resources
|
|
// as starlark values.
|
|
//
|
|
// "resourceList" may also contain a "functionConfig" entry to configure the starlark script itself.
|
|
// Changes made by the starlark program to the "functionConfig" will be reflected in the
|
|
// Filter.FunctionConfig value.
|
|
//
|
|
// The Filter will also format the output so that output has the preferred field ordering
|
|
// rather than an alphabetical field ordering.
|
|
//
|
|
// The resourceList variable adheres to the kustomize function spec as specified by:
|
|
// https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md
|
|
//
|
|
// All items in the resourceList are resources represented as starlark dictionaries/
|
|
// The items in the resourceList respect the io spec specified by:
|
|
// https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/config-io.md
|
|
//
|
|
// The starlark language spec can be found here:
|
|
// https://github.com/google/starlark-go/blob/master/doc/spec.md
|
|
package starlark
|