v1alpha1

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2025 License: MPL-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha1 contains types for the v1alpha1 API group +groupName=blueprints.windsorcli.dev

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Blueprint

type Blueprint struct {
	// Kind is the blueprint type, following Kubernetes conventions.
	Kind string `yaml:"kind"`

	// ApiVersion is the API schema version of the blueprint.
	ApiVersion string `yaml:"apiVersion"`

	// Metadata includes the blueprint's name and description.
	Metadata Metadata `yaml:"metadata"`

	// Repository details the source repository of the blueprint.
	Repository Repository `yaml:"repository"`

	// Sources are external resources referenced by the blueprint.
	Sources []Source `yaml:"sources"`

	// TerraformComponents are Terraform modules in the blueprint.
	TerraformComponents []TerraformComponent `yaml:"terraform"`

	// Kustomizations are kustomization configs in the blueprint.
	Kustomizations []Kustomization `yaml:"kustomize"`
}

Blueprint is a configuration blueprint for initializing a project.

func (*Blueprint) DeepCopy

func (b *Blueprint) DeepCopy() *Blueprint

DeepCopy creates a deep copy of the Blueprint object.

func (*Blueprint) Merge

func (b *Blueprint) Merge(overlay *Blueprint)

Merge integrates another Blueprint into the current one.

type Config

type Config struct {
	Version      string              `yaml:"version"`
	ToolsManager string              `yaml:"toolsManager,omitempty"`
	Contexts     map[string]*Context `yaml:"contexts"`
}

Config represents the entire configuration

type Context

type Context struct {
	ProjectName *string                    `yaml:"projectName,omitempty"`
	Environment map[string]string          `yaml:"environment,omitempty"`
	Secrets     *secrets.SecretsConfig     `yaml:"secrets,omitempty"`
	AWS         *aws.AWSConfig             `yaml:"aws,omitempty"`
	Docker      *docker.DockerConfig       `yaml:"docker,omitempty"`
	Git         *git.GitConfig             `yaml:"git,omitempty"`
	Terraform   *terraform.TerraformConfig `yaml:"terraform,omitempty"`
	VM          *vm.VMConfig               `yaml:"vm,omitempty"`
	Cluster     *cluster.ClusterConfig     `yaml:"cluster,omitempty"`
	Network     *network.NetworkConfig     `yaml:"network,omitempty"`
	DNS         *dns.DNSConfig             `yaml:"dns,omitempty"`
}

Context represents the context configuration

func (*Context) DeepCopy

func (c *Context) DeepCopy() *Context

DeepCopy creates a deep copy of the Context object

func (*Context) Merge

func (base *Context) Merge(overlay *Context)

Merge performs a deep merge of the current Context with another Context.

type Kustomization

type Kustomization struct {
	// Name of the kustomization.
	Name string `yaml:"name"`

	// Path of the kustomization.
	Path string `yaml:"path"`

	// Source of the kustomization.
	Source string `yaml:"source,omitempty"`

	// DependsOn lists dependencies of this kustomization.
	DependsOn []string `yaml:"dependsOn,omitempty"`

	// Interval for applying the kustomization.
	Interval *metav1.Duration `yaml:"interval,omitempty"`

	// RetryInterval before retrying a failed kustomization.
	RetryInterval *metav1.Duration `yaml:"retryInterval,omitempty"`

	// Timeout for the kustomization to complete.
	Timeout *metav1.Duration `yaml:"timeout,omitempty"`

	// Patches to apply to the kustomization.
	Patches []kustomize.Patch `yaml:"patches,omitempty"`

	// Wait for the kustomization to be fully applied.
	Wait *bool `yaml:"wait,omitempty"`

	// Force apply the kustomization.
	Force *bool `yaml:"force,omitempty"`

	// Components to include in the kustomization.
	Components []string `yaml:"components,omitempty"`

	// PostBuild is a post-build step to run after the kustomization is applied.
	PostBuild *PostBuild `yaml:"postBuild,omitempty"`
}

Kustomization defines a kustomization config in a blueprint.

type Metadata

type Metadata struct {
	// Name is the blueprint's unique identifier.
	Name string `yaml:"name"`

	// Description is a brief overview of the blueprint.
	Description string `yaml:"description,omitempty"`

	// Authors are the creators or maintainers of the blueprint.
	Authors []string `yaml:"authors,omitempty"`
}

Metadata describes a blueprint, including name and authors.

type PartialBlueprint

type PartialBlueprint struct {
	Kind                string                   `yaml:"kind"`
	ApiVersion          string                   `yaml:"apiVersion"`
	Metadata            Metadata                 `yaml:"metadata"`
	Sources             []Source                 `yaml:"sources"`
	Repository          Repository               `yaml:"repository"`
	TerraformComponents []TerraformComponent     `yaml:"terraform"`
	Kustomizations      []map[string]interface{} `yaml:"kustomize"`
}

type PostBuild added in v0.4.0

type PostBuild struct {
	// Substitute is a map of resources to substitute from.
	Substitute map[string]string `yaml:"substitute,omitempty"`

	// SubstituteFrom is a list of resources to substitute from.
	SubstituteFrom []SubstituteReference `yaml:"substituteFrom,omitempty"`
}

PostBuild is a post-build step to run after the kustomization is applied.

type Reference

type Reference struct {
	// Branch to use.
	Branch string `yaml:"branch,omitempty"`

	// Tag to use.
	Tag string `yaml:"tag,omitempty"`

	// SemVer to use.
	SemVer string `yaml:"semver,omitempty"`

	// Name of the reference.
	Name string `yaml:"name,omitempty"`

	// Commit hash to use.
	Commit string `yaml:"commit,omitempty"`
}

Reference details a specific version or state of a repository or source.

type Repository

type Repository struct {
	// Url is the repository location.
	Url string `yaml:"url"`

	// Ref details the branch, tag, or commit to use.
	Ref Reference `yaml:"ref"`

	// SecretName is the secret for repository access.
	SecretName string `yaml:"secretName,omitempty"`
}

Repository contains source code repository info.

type Source

type Source struct {
	// Name identifies the source.
	Name string `yaml:"name"`

	// Url is the source location.
	Url string `yaml:"url"`

	// PathPrefix is a prefix to the source path.
	PathPrefix string `yaml:"pathPrefix,omitempty"`

	// Ref details the branch, tag, or commit to use.
	Ref Reference `yaml:"ref"`

	// SecretName is the secret for source access.
	SecretName string `yaml:"secretName,omitempty"`
}

Source is an external resource referenced by a blueprint.

type SubstituteReference added in v0.4.0

type SubstituteReference struct {
	// Kind of the resource to substitute from.
	Kind string `yaml:"kind"`

	// Name of the resource to substitute from.
	Name string `yaml:"name"`

	// Optional indicates if the resource is optional.
	Optional bool `yaml:"optional,omitempty"`
}

SubstituteReference is a reference to a resource to substitute from.

type TerraformComponent

type TerraformComponent struct {
	// Source of the Terraform module.
	Source string `yaml:"source,omitempty"`

	// Path of the Terraform module.
	Path string `yaml:"path"`

	// FullPath is the complete path, not serialized to YAML.
	FullPath string `yaml:"-"`

	// Values are configuration values for the module.
	Values map[string]interface{} `yaml:"values,omitempty"`

	// Variables are input variables for the module.
	Variables map[string]TerraformVariable `yaml:"variables,omitempty"`
}

TerraformComponent defines a Terraform module in a blueprint.

type TerraformVariable

type TerraformVariable struct {
	// Type of the variable.
	Type string `yaml:"type,omitempty"`

	// Default value for the variable.
	Default interface{} `yaml:"default,omitempty"`

	// Description of the variable's purpose.
	Description string `yaml:"description,omitempty"`

	// Sensitive indicates if the variable is sensitive.
	Sensitive bool `yaml:"sensitive,omitempty"`
}

TerraformVariable describes a variable in a Terraform component.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL