Documentation ¶
Overview ¶
Package manifests contains types and functionality around generating (rendering) the descriptors of the component's dependent resources. Most prominently, this includes the Generator interface, the KustomizeController and HelmController implementation, and logic to enhance existing generators.
Index ¶
- func MergeMaps(x, y map[string]any) map[string]any
- type DummyGenerator
- type Generator
- type HelmGenerator
- type KustomizeGenerator
- type ObjectTransformer
- type ParameterTransformer
- type TemplateParameterTransformer
- type TransformableGenerator
- func NewGenerator(generator Generator) TransformableGenerator
- func NewHelmGeneratorWithObjectTransformer(fsys fs.FS, chartPath string, client client.Client, ...) (TransformableGenerator, error)
- func NewHelmGeneratorWithParameterTransformer(fsys fs.FS, chartPath string, client client.Client, ...) (TransformableGenerator, error)
- func NewKustomizeGeneratorWithObjectTransformer(fsys fs.FS, kustomizationPath string, templateSuffix string, ...) (TransformableGenerator, error)
- func NewKustomizeGeneratorWithParameterTransformer(fsys fs.FS, kustomizationPath string, templateSuffix string, ...) (TransformableGenerator, error)
- func NewTransformableHelmGenerator(fsys fs.FS, chartPath string, client client.Client) (TransformableGenerator, error)
- func NewTransformableKustomizeGenerator(fsys fs.FS, kustomizationPath string, templateSuffix string, ...) (TransformableGenerator, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DummyGenerator ¶
type DummyGenerator struct{}
DummyGenerator is a generator that does nothing.
func NewDummyGenerator ¶
func NewDummyGenerator() (*DummyGenerator, error)
Create a new DummyGenerator.
type Generator ¶
type Generator interface {
Generate(ctx context.Context, namespace string, name string, parameters types.Unstructurable) ([]client.Object, error)
}
Resource generator interface. When called from the reconciler, the arguments namespace and name will match the component's namespace and name or, if the component or its spec implement the PlacementConfiguration interface, the return values of the GetDeploymentNamespace(), GetDeploymentName() methods (if non-empty). The parameters argument will be assigned the return value of the component's GetSpec() method.
type HelmGenerator ¶
type HelmGenerator struct {
// contains filtered or unexported fields
}
HelmGenerator is a Generator implementation that basically renders a given Helm chart. A few restrictions apply to the provided Helm chart: it must not contain any subcharts, some template functions are not supported, some bultin variables are not supported, and hooks are processed in a slightly different fashion.
func NewHelmGenerator ¶
Create a new HelmGenerator. The parameter client should be a client for the local cluster (i.e. the cluster where the component object resides); it is used by the localLookup and mustLocalLookup template functions. If fsys is nil, the local operating system filesystem will be used, and chartPath can be an absolute or relative path (in the latter case it will be considered relative to the current working directory). If fsys is non-nil, then chartPath should be a relative path; if an absolute path is supplied, it will be turned An empty chartPath will be treated like ".".
type KustomizeGenerator ¶
type KustomizeGenerator struct {
// contains filtered or unexported fields
}
KustomizeGenerator is a Generator implementation that basically renders a given Kustomization.
func NewKustomizeGenerator ¶
func NewKustomizeGenerator(fsys fs.FS, kustomizationPath string, templateSuffix string, client client.Client) (*KustomizeGenerator, error)
Create a new KustomizeGenerator. The parameter client should be a client for the local cluster (i.e. the cluster where the component object resides); it is used by the localLookup and mustLocalLookup template functions. If fsys is nil, the local operating system filesystem will be used, and kustomizationPath can be an absolute or relative path (in the latter case it will be considered relative to the current working directory). If fsys is non-nil, then kustomizationPath should be a relative path; if an absolute path is supplied, it will be turned An empty kustomizationPath will be treated like ".".
type ObjectTransformer ¶
type ObjectTransformer interface {
TransformObjects(namespace string, name string, objects []client.Object) ([]client.Object, error)
}
Object transformer interface. Allows to manipulate the parameters returned by an existing generator.
type ParameterTransformer ¶
type ParameterTransformer interface {
TransformParameters(namespace string, name string, parameters types.Unstructurable) (types.Unstructurable, error)
}
Parameter transformer interface. Allows to manipulate the parameters passed to an existing generator.
type TemplateParameterTransformer ¶
type TemplateParameterTransformer struct {
// contains filtered or unexported fields
}
TemplateParameterTransformer allows to transform parameters through a given go template. The template can use all functions from the sprig library, plus toYaml, fromYaml, toJson, fromJson, required.
func NewTemplateParameterTransformer ¶
func NewTemplateParameterTransformer(fsys fs.FS, path string) (*TemplateParameterTransformer, error)
Create a new TemplateParameterTransformer (reading the template from the given fsys and path). If fsys is nil, the local OS filesystem will be used.
func (*TemplateParameterTransformer) TransformParameters ¶
func (t *TemplateParameterTransformer) TransformParameters(namespace string, name string, parameters types.Unstructurable) (types.Unstructurable, error)
Transform parameters.
type TransformableGenerator ¶
type TransformableGenerator interface { Generator WithParameterTransformer(transformer ParameterTransformer) TransformableGenerator WithObjectTransformer(transformer ObjectTransformer) TransformableGenerator }
Interface for generators that can be enhanced with parameter/object transformers.
func NewGenerator ¶
func NewGenerator(generator Generator) TransformableGenerator
Wrap a given Generator into a TransformableGenerator, to allow to attach further parameter or object transformers to it.
func NewHelmGeneratorWithObjectTransformer ¶
func NewHelmGeneratorWithObjectTransformer(fsys fs.FS, chartPath string, client client.Client, transformer ObjectTransformer) (TransformableGenerator, error)
Create a new HelmGenerator with an ObjectTransformer attached (further transformers can be attached to the returned generator object).
func NewHelmGeneratorWithParameterTransformer ¶
func NewHelmGeneratorWithParameterTransformer(fsys fs.FS, chartPath string, client client.Client, transformer ParameterTransformer) (TransformableGenerator, error)
Create a new HelmGenerator with a ParameterTransformer attached (further transformers can be attached to the returned generator object).
func NewKustomizeGeneratorWithObjectTransformer ¶
func NewKustomizeGeneratorWithObjectTransformer(fsys fs.FS, kustomizationPath string, templateSuffix string, client client.Client, transformer ObjectTransformer) (TransformableGenerator, error)
Create a new KustomizeGenerator with an ObjectTransformer attached (further transformers can be attached to the returned generator object).
func NewKustomizeGeneratorWithParameterTransformer ¶
func NewKustomizeGeneratorWithParameterTransformer(fsys fs.FS, kustomizationPath string, templateSuffix string, client client.Client, transformer ParameterTransformer) (TransformableGenerator, error)
Create a new KustomizeGenerator with a ParameterTransformer attached (further transformers can be attached to the returned generator object).
func NewTransformableHelmGenerator ¶ added in v0.1.2
func NewTransformableHelmGenerator(fsys fs.FS, chartPath string, client client.Client) (TransformableGenerator, error)
Create a new HelmGenerator as TransformableGenerator.
func NewTransformableKustomizeGenerator ¶ added in v0.1.2
func NewTransformableKustomizeGenerator(fsys fs.FS, kustomizationPath string, templateSuffix string, client client.Client) (TransformableGenerator, error)
Create a new KustomizeGenerator as TransformableGenerator.