Documentation
¶
Index ¶
- Constants
- func ArtifactURLBase(kind, namespace, name, filename string) string
- func HasDigest(in *v1.Artifact, digest string) bool
- func HasRevision(artifact *v1.Artifact, revision string) bool
- type ArchiveFileFilter
- type Collectable
- type Storage
- func (s *Storage) Archive(artifact *v1.Artifact, dir string, filter ArchiveFileFilter) (err error)
- func (s *Storage) ArtifactExist(artifact *v1.Artifact) bool
- func (s *Storage) AtomicWriteFile(artifact *v1.Artifact, reader io.Reader, mode os.FileMode) (err error)
- func (s *Storage) Copy(artifact *v1.Artifact, reader io.Reader) (err error)
- func (s *Storage) CopyFromPath(artifact *v1.Artifact, path string) (err error)
- func (s *Storage) CopyToPath(artifact *v1.Artifact, subPath, toPath string) error
- func (s *Storage) GarbageCollect(ctx context.Context, artifact *v1.Artifact, timeout time.Duration) ([]string, error)
- func (s *Storage) LocalPath(artifact *v1.Artifact) string
- func (s *Storage) LocalPathFromURL(artifact *v1.Artifact) string
- func (s *Storage) Lock(artifact *v1.Artifact) (unlock func(), err error)
- func (s *Storage) MkdirAll(artifact *v1.Artifact) error
- func (s *Storage) NewArtifactFor(kind string, metadata metav1.Object, revision, fileName string) *v1.Artifact
- func (s *Storage) ReconcileArtifact(ctx context.Context, obj Collectable, revision, dir, filename string, ...) error
- func (s *Storage) ReconcileStorage(ctx context.Context, obj Collectable) error
- func (s *Storage) Remove(artifact *v1.Artifact) error
- func (s *Storage) RemoveAll(artifact *v1.Artifact) (string, error)
- func (s *Storage) RemoveAllButCurrent(artifact *v1.Artifact) ([]string, error)
- func (s *Storage) SetArtifactURL(artifact *v1.Artifact)
- func (s *Storage) SetHostname(URL string) string
- func (s *Storage) Symlink(artifact *v1.Artifact, linkName string) (string, error)
- func (s *Storage) VerifyArtifact(artifact *v1.Artifact) error
- type Storer
Constants ¶
const GarbageCountLimit = 1000
Variables ¶
This section is empty.
Functions ¶
func ArtifactURLBase ¶
ArtifactURLBase returns the artifact url base path in the form of '<kind>/<namespace>/name>/<filename>'.
Types ¶
type ArchiveFileFilter ¶
ArchiveFileFilter must return true if a file should not be included in the archive after inspecting the given path and/or os.FileInfo.
func SourceIgnoreFilter ¶
func SourceIgnoreFilter(ps []gitignore.Pattern, domain []string) ArchiveFileFilter
SourceIgnoreFilter returns an ArchiveFileFilter that filters out files matching sourceignore.VCSPatterns and any of the provided patterns. If an empty gitignore.Pattern slice is given, the matcher is set to sourceignore.NewDefaultMatcher.
type Collectable ¶
type Storage ¶
type Storage struct { // BasePath is the local directory path where the source artifacts are stored. BasePath string `json:"basePath"` // Hostname is the file server host name used to compose the artifacts URIs. Hostname string `json:"hostname"` // ArtifactRetentionTTL is the duration of time that artifacts will be kept // in storage before being garbage collected. ArtifactRetentionTTL time.Duration `json:"artifactRetentionTTL"` // ArtifactRetentionRecords is the maximum number of artifacts to be kept in // storage after a garbage collection. ArtifactRetentionRecords int `json:"artifactRetentionRecords"` // contains filtered or unexported fields }
Storage manages artifacts
func NewStorage ¶
func NewStorage(client client.Client, scheme *runtime.Scheme, basePath string, hostname string, artifactRetentionTTL time.Duration, artifactRetentionRecords int) (*Storage, error)
NewStorage creates the storage helper for a given path and hostname.
func (*Storage) Archive ¶
Archive atomically archives the given directory as a tarball to the given v1.Artifact path, excluding directories and any ArchiveFileFilter matches. While archiving, any environment specific data (for example, the user and group name) is stripped from file headers. If successful, it sets the digest and last update time on the artifact.
func (*Storage) ArtifactExist ¶
ArtifactExist returns a boolean indicating whether the v1.Artifact exists in storage and is a regular file.
func (*Storage) AtomicWriteFile ¶
func (s *Storage) AtomicWriteFile(artifact *v1.Artifact, reader io.Reader, mode os.FileMode) (err error)
AtomicWriteFile atomically writes the io.Reader contents to the v1.Artifact path. If successful, it sets the digest and last update time on the artifact.
func (*Storage) Copy ¶
Copy atomically copies the io.Reader contents to the v1.Artifact path. If successful, it sets the digest and last update time on the artifact.
func (*Storage) CopyFromPath ¶
CopyFromPath atomically copies the contents of the given path to the path of the v1.Artifact. If successful, the digest and last update time on the artifact is set.
func (*Storage) CopyToPath ¶
CopyToPath copies the contents in the (sub)path of the given artifact to the given path.
func (*Storage) GarbageCollect ¶
func (s *Storage) GarbageCollect(ctx context.Context, artifact *v1.Artifact, timeout time.Duration) ([]string, error)
GarbageCollect removes all garbage files in the artifact dir according to the provided retention options.
func (*Storage) LocalPath ¶
LocalPath returns the secure local path of the given artifact (that is: relative to the Storage.BasePath).
func (*Storage) LocalPathFromURL ¶
LocalPathFromURL returns the local path on the file-system given the URL of the artifact.
func (*Storage) NewArtifactFor ¶
func (s *Storage) NewArtifactFor(kind string, metadata metav1.Object, revision, fileName string) *v1.Artifact
NewArtifactFor returns a new v1.Artifact.
func (*Storage) ReconcileArtifact ¶
func (*Storage) ReconcileStorage ¶
func (s *Storage) ReconcileStorage(ctx context.Context, obj Collectable) error
ReconcileStorage will do the following actions: - garbage collect old files - verify digest if the artifact does exist ( remove it if the digest doesn't match ) - set the url of the artifact.
func (*Storage) RemoveAllButCurrent ¶
RemoveAllButCurrent removes all files for the given v1.Artifact base dir, excluding the current one.
func (*Storage) SetArtifactURL ¶
SetArtifactURL sets the URL on the given v1.Artifact. URL needs to include the location of the file.
func (*Storage) SetHostname ¶
SetHostname sets the hostname of the given URL string to the current Storage.Hostname and returns the result.