Documentation ¶
Index ¶
- Constants
- func Build(ctx context.Context, b parser.Backend, p parser.Parser, l parser.Linter) (v1.Image, error)
- func BuildMetaScheme() (*runtime.Scheme, error)
- func BuildObjectScheme() (*runtime.Scheme, error)
- func BuildPath(path, name string) string
- func FindXpkgInDir(fs afero.Fs, root string) (string, error)
- func FriendlyID(name, hash string) string
- func IsCRD(o runtime.Object) error
- func IsComposition(o runtime.Object) error
- func IsConfiguration(o runtime.Object) error
- func IsProvider(o runtime.Object) error
- func IsXRD(o runtime.Object) error
- func NewConfigurationLinter() parser.Linter
- func NewProviderLinter() parser.Linter
- func OneMeta(pkg *parser.Package) error
- func PackageCrossplaneCompatible(v version.Operations) parser.ObjectLinterFn
- func PackageValidSemver(o runtime.Object) error
- func ParseCertificatesFromPath(path string) (*x509.CertPool, error)
- func ParseNameFromMeta(fs afero.Fs, path string) (string, error)
- func ParsePackageSourceFromReference(ref name.Reference) string
- func ToDNSLabel(s string) string
- func TryConvert(obj runtime.Object, candidates ...conversion.Hub) (runtime.Object, bool)
- func TryConvertToPkg(obj runtime.Object, candidates ...conversion.Hub) (pkgmetav1.Pkg, bool)
- type Cache
- type Fetcher
- type FetcherOpt
- type ImageCache
- type K8sFetcher
- func (i *K8sFetcher) Fetch(ctx context.Context, ref name.Reference, secrets ...string) (v1.Image, error)
- func (i *K8sFetcher) Head(ctx context.Context, ref name.Reference, secrets ...string) (*v1.Descriptor, error)
- func (i *K8sFetcher) Tags(ctx context.Context, ref name.Reference, secrets ...string) ([]string, error)
- type NopCache
- type NopFetcher
- func (n *NopFetcher) Fetch(ctx context.Context, ref name.Reference, secrets ...string) (v1.Image, error)
- func (n *NopFetcher) Head(ctx context.Context, ref name.Reference, secrets ...string) (*v1.Descriptor, error)
- func (n *NopFetcher) Tags(ctx context.Context, ref name.Reference, secrets ...string) ([]string, error)
Constants ¶
const ( // MetaFile is the name of a Crossplane package metadata file. MetaFile string = "crossplane.yaml" // StreamFile is the name of the file in a Crossplane package image that // contains its YAML stream. StreamFile string = "package.yaml" // StreamFileMode determines the permissions on the stream file. StreamFileMode os.FileMode = 0o644 // XpkgExtension is the extension for compiled Crossplane packages. XpkgExtension string = ".xpkg" // XpkgMatchPattern is the match pattern for identifying compiled Crossplane packages. XpkgMatchPattern string = "*" + XpkgExtension )
Variables ¶
This section is empty.
Functions ¶
func Build ¶
func Build(ctx context.Context, b parser.Backend, p parser.Parser, l parser.Linter) (v1.Image, error)
Build compiles a Crossplane package from an on-disk package.
func BuildMetaScheme ¶
BuildMetaScheme builds the default scheme used for identifying metadata in a Crossplane package.
func BuildObjectScheme ¶
BuildObjectScheme builds the default scheme used for identifying objects in a Crossplane package.
func BuildPath ¶
BuildPath builds a path for a compiled Crossplane package. If file name has extension it will be replaced.
func FindXpkgInDir ¶
FindXpkgInDir finds compiled Crossplane packages in a directory.
func FriendlyID ¶
FriendlyID builds a valid DNS label string made up of the name of a package and its image digest.
func IsComposition ¶
IsComposition checks that an object is a Composition.
func IsConfiguration ¶
IsConfiguration checks that an object is a Configuration meta type.
func IsProvider ¶
IsProvider checks that an object is a Provider meta type.
func NewConfigurationLinter ¶
NewConfigurationLinter is a convenience function for creating a package linter for configurations.
func NewProviderLinter ¶
NewProviderLinter is a convenience function for creating a package linter for providers.
func PackageCrossplaneCompatible ¶
func PackageCrossplaneCompatible(v version.Operations) parser.ObjectLinterFn
PackageCrossplaneCompatible checks that the current Crossplane version is compatible with the package constraints.
func PackageValidSemver ¶
PackageValidSemver checks that the package uses valid semver ranges.
func ParseCertificatesFromPath ¶ added in v1.6.0
ParseCertificatesFromPath parses PEM file containing extra x509 certificates(s) and combines them with the built in root CA CertPool.
func ParseNameFromMeta ¶
ParseNameFromMeta extracts the package name from its meta file.
func ParsePackageSourceFromReference ¶ added in v1.4.0
ParsePackageSourceFromReference parses a package source from an OCI image reference. A source is defined as an OCI image reference with the identifier (tag or digest) stripped and no other changes to the original reference source. This is necessary because go-containerregistry will convert docker.io to index.docker.io for backwards compatibility before pulling an image. We do not want to do that in cases where we are not pulling an image because it breaks comparison with dependencies defined in a Configuration manifest.
func ToDNSLabel ¶
ToDNSLabel converts the string to a valid DNS label.
func TryConvert ¶
TryConvert converts the supplied object to the first supplied candidate that does not return an error. Returns the converted object and true when conversion succeeds, or the original object and false if it does not.
func TryConvertToPkg ¶
TryConvertToPkg converts the supplied object to a pkgmeta.Pkg, if possible.
Types ¶
type Cache ¶
type Cache interface { Get(tag string, id string) (v1.Image, error) Store(tag string, id string, img v1.Image) error Delete(id string) error }
A Cache caches OCI images.
type Fetcher ¶
type Fetcher interface { Fetch(ctx context.Context, ref name.Reference, secrets ...string) (v1.Image, error) Head(ctx context.Context, ref name.Reference, secrets ...string) (*v1.Descriptor, error) Tags(ctx context.Context, ref name.Reference, secrets ...string) ([]string, error) }
Fetcher fetches package images.
type FetcherOpt ¶ added in v1.6.0
type FetcherOpt func(k *K8sFetcher) error
FetcherOpt can be used to add optional parameters to NewK8sFetcher
func WithCustomCA ¶ added in v1.6.0
func WithCustomCA(rootCAs *x509.CertPool) FetcherOpt
WithCustomCA is a FetcherOpt that can be used to add a custom CA bundle to a K8sFetcher
type ImageCache ¶
type ImageCache struct {
// contains filtered or unexported fields
}
ImageCache stores and retrieves OCI images in a filesystem-backed cache in a thread-safe manner.
func NewImageCache ¶
func NewImageCache(dir string, fs afero.Fs) *ImageCache
NewImageCache creates a new ImageCache.
func (*ImageCache) Delete ¶
func (c *ImageCache) Delete(id string) error
Delete removes an image from the ImageCache.
type K8sFetcher ¶
type K8sFetcher struct {
// contains filtered or unexported fields
}
K8sFetcher uses kubernetes credentials to fetch package images.
func NewK8sFetcher ¶
func NewK8sFetcher(client kubernetes.Interface, namespace string, opts ...FetcherOpt) (*K8sFetcher, error)
NewK8sFetcher creates a new K8sFetcher.
func (*K8sFetcher) Fetch ¶
func (i *K8sFetcher) Fetch(ctx context.Context, ref name.Reference, secrets ...string) (v1.Image, error)
Fetch fetches a package image.
type NopCache ¶
type NopCache struct{}
NopCache is a cache implementation that does not store anything and always returns an error on get.
type NopFetcher ¶
type NopFetcher struct{}
NopFetcher always returns an empty image and never returns error.
func (*NopFetcher) Fetch ¶
func (n *NopFetcher) Fetch(ctx context.Context, ref name.Reference, secrets ...string) (v1.Image, error)
Fetch fetches an empty image and does not return error.