Safe Haskell | None |
---|---|
Language | Haskell2010 |
Test.Sandwich.Contexts.Kubernetes.Images
Description
Functions for managing images on a Kubernetes cluster.
Synopsis
- introduceImages :: forall context (m :: Type -> Type). (HasCallStack, KubernetesClusterBasicWithoutReader context m) => [ImageLoadSpec] -> SpecFree (LabelValue "kubernetesClusterImages" [Text] :> context) m () -> SpecFree context m ()
- getLoadedImages :: (HasCallStack, KubernetesClusterBasic context m) => m (Set Text)
- getLoadedImages' :: (HasCallStack, KubernetesBasic context m) => KubernetesClusterContext -> m (Set Text)
- clusterContainsImage :: (HasCallStack, KubernetesClusterBasic context m) => Text -> m Bool
- clusterContainsImage' :: (HasCallStack, MonadUnliftIO m, MonadLogger m) => KubernetesClusterContext -> Text -> m Bool
- loadImage :: (HasCallStack, MonadFail m, KubernetesClusterBasic context m) => ImageLoadSpec -> m Text
- loadImage' :: (HasCallStack, MonadFail m, KubernetesBasic context m) => KubernetesClusterContext -> ImageLoadSpec -> m Text
- loadImageIfNecessary :: (HasCallStack, MonadFail m, KubernetesClusterBasic context m) => ImageLoadSpec -> m ()
- loadImageIfNecessary' :: (HasCallStack, MonadFail m, KubernetesBasic context m) => KubernetesClusterContext -> ImageLoadSpec -> m ()
- withImageLoadRetry :: (MonadLoggerIO m, MonadMask m) => ImageLoadSpec -> m a -> m a
- withImageLoadRetry' :: (MonadLoggerIO m, MonadMask m) => RetryPolicyM m -> ImageLoadSpec -> m a -> m a
- findAllImages :: Text -> [Text]
- findAllImages' :: Text -> [Text]
- kubernetesClusterImages :: Label "kubernetesClusterImages" [Text]
- type HasKubernetesClusterImagesContext context = HasLabel context "kubernetesClusterImages" [Text]
- data ImageLoadSpec
- data ImagePullPolicy
- = Always
- | IfNotPresent
- | Never
Introduce a set of images
Arguments
:: forall context (m :: Type -> Type). (HasCallStack, KubernetesClusterBasicWithoutReader context m) | |
=> [ImageLoadSpec] | Images to load |
-> SpecFree (LabelValue "kubernetesClusterImages" [Text] :> context) m () | |
-> SpecFree context m () |
Introduce a list of images into a Kubernetes cluster. Stores the list of transformed image names under the "kubernetesClusterImages" label.
Query images
Arguments
:: (HasCallStack, KubernetesClusterBasic context m) | |
=> m (Set Text) | List of image names |
Get the images loaded onto the cluster.
Arguments
:: (HasCallStack, KubernetesBasic context m) | |
=> KubernetesClusterContext | Cluster context |
-> m (Set Text) | List of image names |
Same as getLoadedImages
, but allows you to pass in the KubernetesClusterContext
.
Arguments
:: (HasCallStack, KubernetesClusterBasic context m) | |
=> Text | Image |
-> m Bool |
Test if a cluster has a given image loaded.
clusterContainsImage' Source #
Arguments
:: (HasCallStack, MonadUnliftIO m, MonadLogger m) | |
=> KubernetesClusterContext | Cluster context |
-> Text | Image |
-> m Bool |
Same as clusterContainsImage
, but allows you to pass in the KubernetesClusterContext
.
Load images
Arguments
:: (HasCallStack, MonadFail m, KubernetesClusterBasic context m) | |
=> ImageLoadSpec | Image load spec |
-> m Text | The loaded image name |
Load an image into a Kubernetes cluster. This will load the image onto the cluster and return the modified image name (i.e. the name by which the cluster knows the image).
Arguments
:: (HasCallStack, MonadFail m, KubernetesBasic context m) | |
=> KubernetesClusterContext | Cluster context |
-> ImageLoadSpec | Image load spec |
-> m Text | The loaded image name |
Same as loadImage
, but allows you to pass in the KubernetesClusterContext
.
Load images if not present
Arguments
:: (HasCallStack, MonadFail m, KubernetesClusterBasic context m) | |
=> ImageLoadSpec | Image load spec |
-> m () |
Same as loadImage
, but first checks if the given image is already present on the cluster.
loadImageIfNecessary' Source #
Arguments
:: (HasCallStack, MonadFail m, KubernetesBasic context m) | |
=> KubernetesClusterContext | Cluster context |
-> ImageLoadSpec | Image load spec |
-> m () | The transformed image name |
Same as loadImage
, but allows you to pass in the KubernetesClusterContext
.
Retry helpers
withImageLoadRetry :: (MonadLoggerIO m, MonadMask m) => ImageLoadSpec -> m a -> m a Source #
A combinator to wrap around your loadImage
or loadImageIfNecessary
calls to retry
on failure. Image loads sometimes fail on Minikube (version 1.33.0 at time of writing).
withImageLoadRetry' :: (MonadLoggerIO m, MonadMask m) => RetryPolicyM m -> ImageLoadSpec -> m a -> m a Source #
Same as withImageLoadRetry
, but allows you to specify the retry policy.
Util
findAllImages :: Text -> [Text] Source #
Find all image references in a chunk of YAML containing multiple sections.
findAllImages' :: Text -> [Text] Source #
Find all image references in a single chunk of YAML.
Types
kubernetesClusterImages :: Label "kubernetesClusterImages" [Text] Source #
type HasKubernetesClusterImagesContext context = HasLabel context "kubernetesClusterImages" [Text] Source #
data ImageLoadSpec Source #
Constructors
ImageLoadSpecTarball FilePath | A |
ImageLoadSpecDocker | An image pulled via Docker |
Fields | |
ImageLoadSpecPodman | An image pulled via Podman |
Fields |
Instances
Show ImageLoadSpec Source # | |
Defined in Test.Sandwich.Contexts.Kubernetes.Types Methods showsPrec :: Int -> ImageLoadSpec -> ShowS # show :: ImageLoadSpec -> String # showList :: [ImageLoadSpec] -> ShowS # | |
Eq ImageLoadSpec Source # | |
Defined in Test.Sandwich.Contexts.Kubernetes.Types Methods (==) :: ImageLoadSpec -> ImageLoadSpec -> Bool # (/=) :: ImageLoadSpec -> ImageLoadSpec -> Bool # |
data ImagePullPolicy Source #
Constructors
Always | |
IfNotPresent | |
Never |
Instances
Show ImagePullPolicy Source # | |
Defined in Test.Sandwich.Contexts.Kubernetes.Types Methods showsPrec :: Int -> ImagePullPolicy -> ShowS # show :: ImagePullPolicy -> String # showList :: [ImagePullPolicy] -> ShowS # | |
Eq ImagePullPolicy Source # | |
Defined in Test.Sandwich.Contexts.Kubernetes.Types Methods (==) :: ImagePullPolicy -> ImagePullPolicy -> Bool # (/=) :: ImagePullPolicy -> ImagePullPolicy -> Bool # |