provider

package
v0.0.36 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2024 License: MPL-2.0 Imports: 43 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ContainerImage = "cgr.dev/chainguard/docker-cli:latest-dev"
)

Variables

This section is empty.

Functions

func New

func New(version string) func() provider.Provider

func NewContainerVolumeResource added in v0.0.14

func NewContainerVolumeResource() resource.Resource

func NewFeatureResource

func NewFeatureResource() resource.Resource

func NewHarnessDockerResource added in v0.0.15

func NewHarnessDockerResource() resource.Resource

func NewHarnessK3sResource

func NewHarnessK3sResource() resource.Resource

func NewHarnessPterraformResource added in v0.0.29

func NewHarnessPterraformResource() resource.Resource

func NewInventoryDataSource added in v0.0.2

func NewInventoryDataSource() datasource.DataSource

func ParseResources added in v0.0.20

func ParseResources(resources *ContainerResources) (docker.ResourcesRequest, error)

ParseResources parses the ContainerResources object into a provider.ContainerResourcesRequest object.

Types

type BaseHarnessResource added in v0.0.29

type BaseHarnessResource struct {
	// contains filtered or unexported fields
}

BaseHarnessResource provides common methods for all BaseHarnessResource implementations.

func (*BaseHarnessResource) Configure added in v0.0.29

func (*BaseHarnessResource) Delete added in v0.0.29

Delete implements resource.Resource. This is intentionally a no-op.

func (*BaseHarnessResource) ModifyPlan added in v0.0.29

ModifyPlan adds the harness to the inventory during both the plan and apply phase. This uses the more verbose GetAttribute() instead of Get() because terraform-plugin-framework does not support embedding models without nesting.

func (*BaseHarnessResource) Read added in v0.0.29

Read implements resource.Resource. This is intentionally a no-op.

type BaseHarnessResourceModel added in v0.0.29

type BaseHarnessResourceModel struct {
	Id        types.String             `tfsdk:"id"`
	Name      types.String             `tfsdk:"name"`
	Inventory InventoryDataSourceModel `tfsdk:"inventory"`
	Timeouts  timeouts.Value           `tfsdk:"timeouts"`
}

type ContainerCpuResources added in v0.0.20

type ContainerCpuResources struct {
	Request types.String `tfsdk:"request"`
	Limit   types.String `tfsdk:"limit"`
}

type ContainerMemoryResources added in v0.0.18

type ContainerMemoryResources struct {
	Request types.String `tfsdk:"request"`
	Limit   types.String `tfsdk:"limit"`
}

type ContainerMountModel added in v0.0.29

type ContainerMountModel struct {
	Source      types.String `tfsdk:"source"`
	Destination types.String `tfsdk:"destination"`
}

type ContainerNetworkModel added in v0.0.29

type ContainerNetworkModel struct {
	Name types.String `tfsdk:"name"`
}

type ContainerResources added in v0.0.18

type ContainerResources struct {
	Memory *ContainerMemoryResources `tfsdk:"memory"`
	Cpu    *ContainerCpuResources    `tfsdk:"cpu"`
}

type ContainerVolumeResource added in v0.0.14

type ContainerVolumeResource struct {
	BaseHarnessResource
}

func (*ContainerVolumeResource) Create added in v0.0.14

func (*ContainerVolumeResource) Metadata added in v0.0.14

func (*ContainerVolumeResource) Schema added in v0.0.14

func (*ContainerVolumeResource) Update added in v0.0.14

type ContainerVolumeResourceModel added in v0.0.14

type ContainerVolumeResourceModel struct {
	Id        types.String             `tfsdk:"id"`
	Name      types.String             `tfsdk:"name"`
	Inventory InventoryDataSourceModel `tfsdk:"inventory"`
}

type DockerRegistryResourceModel added in v0.0.17

type DockerRegistryResourceModel struct {
	Auth *RegistryResourceAuthModel `tfsdk:"auth"`
}

type FeatureHarnessResourceModel added in v0.0.2

type FeatureHarnessResourceModel struct {
	Id        types.String             `tfsdk:"id"`
	Name      types.String             `tfsdk:"name"`
	Inventory InventoryDataSourceModel `tfsdk:"inventory"`
}

FeatureHarnessResourceModel is the common data model all harnesses output to be passed into dependent features.

type FeatureHarnessVolumeMountModel added in v0.0.14

type FeatureHarnessVolumeMountModel struct {
	Source      ContainerVolumeResourceModel `tfsdk:"source"`
	Destination string                       `tfsdk:"destination"`
}

type FeatureResource

type FeatureResource struct {
	// contains filtered or unexported fields
}

FeatureResource defines the resource implementation.

func (*FeatureResource) Configure

func (*FeatureResource) Create

func (*FeatureResource) Delete

func (*FeatureResource) Metadata

func (*FeatureResource) ModifyPlan added in v0.0.2

ModifyPlan implements resource.ResourceWithModifyPlan.

func (*FeatureResource) Read

func (*FeatureResource) Schema

func (*FeatureResource) Update

type FeatureResourceModel

type FeatureResourceModel struct {
	Id          types.String       `tfsdk:"id"`
	Name        types.String       `tfsdk:"name"`
	Description types.String       `tfsdk:"description"`
	Labels      types.Map          `tfsdk:"labels"`
	Before      []FeatureStepModel `tfsdk:"before"`
	After       []FeatureStepModel `tfsdk:"after"`
	Steps       []FeatureStepModel `tfsdk:"steps"`
	Timeouts    timeouts.Value     `tfsdk:"timeouts"`

	Harness FeatureHarnessResourceModel `tfsdk:"harness"`
}

FeatureResourceModel describes the resource data model.

type FeatureStepBackoffModel added in v0.0.10

type FeatureStepBackoffModel struct {
	Attempts types.Int64   `tfsdk:"attempts"`
	Delay    types.String  `tfsdk:"delay"`
	Factor   types.Float64 `tfsdk:"factor"`
}

type FeatureStepModel

type FeatureStepModel struct {
	Name    types.String             `tfsdk:"name"`
	Cmd     types.String             `tfsdk:"cmd"`
	Workdir types.String             `tfsdk:"workdir"`
	Retry   *FeatureStepBackoffModel `tfsdk:"retry"`
}

type HarnessContainerEnvs added in v0.0.29

type HarnessContainerEnvs map[string]string

func (HarnessContainerEnvs) Slice added in v0.0.29

func (e HarnessContainerEnvs) Slice() []string

type HarnessDockerResource added in v0.0.15

type HarnessDockerResource struct {
	BaseHarnessResource
}

HarnessDockerResource defines the resource implementation.

func (*HarnessDockerResource) Create added in v0.0.15

func (*HarnessDockerResource) Metadata added in v0.0.15

func (*HarnessDockerResource) Schema added in v0.0.15

func (*HarnessDockerResource) Update added in v0.0.15

type HarnessDockerResourceModel added in v0.0.15

type HarnessDockerResourceModel struct {
	Id        types.String                     `tfsdk:"id"`
	Name      types.String                     `tfsdk:"name"`
	Inventory InventoryDataSourceModel         `tfsdk:"inventory"`
	Volumes   []FeatureHarnessVolumeMountModel `tfsdk:"volumes"`

	Image      types.String                           `tfsdk:"image"`
	Privileged types.Bool                             `tfsdk:"privileged"`
	Envs       *HarnessContainerEnvs                  `tfsdk:"envs"`
	Mounts     []ContainerMountModel                  `tfsdk:"mounts"`
	Networks   map[string]ContainerNetworkModel       `tfsdk:"networks"`
	Registries map[string]DockerRegistryResourceModel `tfsdk:"registries"`
	Resources  *ContainerResources                    `tfsdk:"resources"`
	Timeouts   timeouts.Value                         `tfsdk:"timeouts"`
}

HarnessDockerResourceModel describes the resource data model.

type HarnessHooksModel added in v0.0.24

type HarnessHooksModel struct {
	PreStart  types.List `tfsdk:"pre_start"`
	PostStart types.List `tfsdk:"post_start"`
}

type HarnessK3sResource

type HarnessK3sResource struct {
	BaseHarnessResource
}

HarnessK3sResource defines the resource implementation.

func (*HarnessK3sResource) Create

func (*HarnessK3sResource) Metadata

func (*HarnessK3sResource) Schema

func (*HarnessK3sResource) Update

type HarnessK3sResourceModel

type HarnessK3sResourceModel struct {
	Id        types.String             `tfsdk:"id"`
	Name      types.String             `tfsdk:"name"`
	Inventory InventoryDataSourceModel `tfsdk:"inventory"`
	Timeouts  timeouts.Value           `tfsdk:"timeouts"`

	Image                types.String                     `tfsdk:"image"`
	DisableCni           types.Bool                       `tfsdk:"disable_cni"`
	DisableNetworkPolicy types.Bool                       `tfsdk:"disable_network_policy"`
	DisableTraefik       types.Bool                       `tfsdk:"disable_traefik"`
	DisableMetricsServer types.Bool                       `tfsdk:"disable_metrics_server"`
	Registries           map[string]RegistryResourceModel `tfsdk:"registries"`
	Networks             map[string]ContainerNetworkModel `tfsdk:"networks"`
	Sandbox              types.Object                     `tfsdk:"sandbox"`
	Resources            *ContainerResources              `tfsdk:"resources"`
	Hooks                *HarnessHooksModel               `tfsdk:"hooks"`
	KubeletConfig        types.String                     `tfsdk:"kubelet_config"`
}

HarnessK3sResourceModel describes the resource data model.

type HarnessK3sSandboxResourceModel added in v0.0.3

type HarnessK3sSandboxResourceModel struct {
	Image      types.String                     `tfsdk:"image"`
	Privileged types.Bool                       `tfsdk:"privileged"`
	Envs       types.Map                        `tfsdk:"envs"`
	Mounts     []ContainerMountModel            `tfsdk:"mounts"`
	Networks   map[string]ContainerNetworkModel `tfsdk:"networks"`
}

type HarnessPterraformResource added in v0.0.29

type HarnessPterraformResource struct {
	BaseHarnessResource
}

func (*HarnessPterraformResource) Create added in v0.0.29

func (*HarnessPterraformResource) Metadata added in v0.0.29

func (*HarnessPterraformResource) Schema added in v0.0.29

func (*HarnessPterraformResource) Update added in v0.0.29

type HarnessPterraformResourceModel added in v0.0.29

type HarnessPterraformResourceModel struct {
	Id        types.String             `tfsdk:"id"`
	Name      types.String             `tfsdk:"name"`
	Inventory InventoryDataSourceModel `tfsdk:"inventory"`
	Timeouts  timeouts.Value           `tfsdk:"timeouts"`

	Path types.String `tfsdk:"path"`
	Vars types.String `tfsdk:"vars"`
}

type ImageTestProvider

type ImageTestProvider struct {
	// contains filtered or unexported fields
}

ImageTestProvider defines the provider implementation.

func (*ImageTestProvider) Configure

func (*ImageTestProvider) DataSources

func (p *ImageTestProvider) DataSources(ctx context.Context) []func() datasource.DataSource

func (*ImageTestProvider) Metadata

func (*ImageTestProvider) Resources

func (p *ImageTestProvider) Resources(_ context.Context) []func() resource.Resource

func (*ImageTestProvider) Schema

type ImageTestProviderHarnessModel

type ImageTestProviderHarnessModel struct {
	K3s     *ProviderHarnessK3sModel     `tfsdk:"k3s"`
	Docker  *ProviderHarnessDockerModel  `tfsdk:"docker"`
	Cluster *ProviderHarnessClusterModel `tfsdk:"cluster"`
}

type ImageTestProviderModel

type ImageTestProviderModel struct {
	Log       *ProviderLoggerModel           `tfsdk:"log"`
	Harnesses *ImageTestProviderHarnessModel `tfsdk:"harnesses"`
	Labels    types.Map                      `tfsdk:"labels"`
}

ImageTestProviderModel describes the provider data model.

type InventoryDataSource added in v0.0.2

type InventoryDataSource struct {
	// contains filtered or unexported fields
}

InventoryDataSource defines the data source implementation.

func (*InventoryDataSource) Configure added in v0.0.2

func (*InventoryDataSource) Metadata added in v0.0.2

func (*InventoryDataSource) Read added in v0.0.2

func (*InventoryDataSource) Schema added in v0.0.2

type InventoryDataSourceModel added in v0.0.2

type InventoryDataSourceModel struct {
	Seed types.String `tfsdk:"seed"`
}

InventoryDataSourceModel describes the data source data model.

type ProviderHarnessClusterModel added in v0.0.26

type ProviderHarnessClusterModel struct {
	Kubeconfig *string `tfsdk:"kubeconfig"`
}

type ProviderHarnessContainerSandboxResourceModel added in v0.0.18

type ProviderHarnessContainerSandboxResourceModel struct {
	Image types.String `tfsdk:"image"`
}

type ProviderHarnessDockerModel added in v0.0.15

type ProviderHarnessDockerModel struct {
	HostSocketPath *string                                `tfsdk:"host_socket_path"`
	Networks       map[string]ContainerNetworkModel       `tfsdk:"networks"`
	Envs           *HarnessContainerEnvs                  `tfsdk:"envs"`
	Mounts         []ContainerMountModel                  `tfsdk:"mounts"`
	Registries     map[string]DockerRegistryResourceModel `tfsdk:"registries"`
}

type ProviderHarnessK3sModel

type ProviderHarnessK3sModel struct {
	Networks   map[string]ContainerNetworkModel              `tfsdk:"networks"`
	Registries map[string]RegistryResourceModel              `tfsdk:"registries"`
	Sandbox    *ProviderHarnessContainerSandboxResourceModel `tfsdk:"sandbox"`
}

type ProviderLoggerFileModel added in v0.0.19

type ProviderLoggerFileModel struct {
	Directory types.String `tfsdk:"directory"`
	Format    types.String `tfsdk:"format"`
}

type ProviderLoggerModel added in v0.0.2

type ProviderLoggerModel struct {
	File *ProviderLoggerFileModel `tfsdk:"file"`
}

type ProviderStore

type ProviderStore struct {
	// contains filtered or unexported fields
}

ProviderStore manages the global runtime state of the provider. The provider uses this to look up the defined relationships between resources, and manage shared external state.

func NewProviderStore

func NewProviderStore() *ProviderStore

func (*ProviderStore) AddHarness added in v0.0.29

func (s *ProviderStore) AddHarness(id string, harness harness.Harness)

func (*ProviderStore) EnableDebugLogging added in v0.0.18

func (s *ProviderStore) EnableDebugLogging() bool

func (*ProviderStore) Encode added in v0.0.2

func (s *ProviderStore) Encode(components ...string) (string, error)

func (*ProviderStore) GetHarness added in v0.0.29

func (s *ProviderStore) GetHarness(id string) (harness.Harness, bool)

func (*ProviderStore) Inventory added in v0.0.2

Inventory returns an instance of the inventory per inventory data source.

func (*ProviderStore) Logger added in v0.0.2

func (s *ProviderStore) Logger(ctx context.Context, inv InventoryDataSourceModel, withs ...any) (context.Context, error)

Logger initializes the context logger for the given inventory.

func (*ProviderStore) SkipTeardown added in v0.0.8

func (s *ProviderStore) SkipTeardown() bool

SkipTeardown returns true if the IMAGETEST_SKIP_TEARDOWN environment variable is declared.

type RegistryResourceAuthModel

type RegistryResourceAuthModel struct {
	Username types.String `tfsdk:"username"`
	Password types.String `tfsdk:"password"`
	Auth     types.String `tfsdk:"auth"`
}

type RegistryResourceMirrorModel

type RegistryResourceMirrorModel struct {
	Endpoints types.List `tfsdk:"endpoints"`
}

type RegistryResourceModel

type RegistryResourceModel struct {
	Auth   *RegistryResourceAuthModel   `tfsdk:"auth"`
	Tls    *RegistryResourceTlsModel    `tfsdk:"tls"`
	Mirror *RegistryResourceMirrorModel `tfsdk:"mirror"`
}

type RegistryResourceTlsModel

type RegistryResourceTlsModel struct {
	CertFile types.String `tfsdk:"cert_file"`
	KeyFile  types.String `tfsdk:"key_file"`
	CaFile   types.String `tfsdk:"ca_file"`
}

Jump to

Keyboard shortcuts

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