{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Test.Sandwich.Contexts.Kubernetes.Types where
import Control.Monad.IO.Unlift
import Control.Monad.Logger
import Kubernetes.OpenAPI.Core as Kubernetes
import Network.HTTP.Client
import Relude
import Test.Sandwich
import Test.Sandwich.Contexts.Files
import Test.Sandwich.Contexts.Nix
import qualified Text.Show
instance Show Manager where
show :: Manager -> String
show Manager
_ = String
"<HTTP manager>"
data KubernetesClusterType =
KubernetesClusterKind { KubernetesClusterType -> String
kubernetesClusterTypeKindBinary :: FilePath
, KubernetesClusterType -> Text
kubernetesClusterTypeKindClusterName :: Text
, KubernetesClusterType -> Text
kubernetesClusterTypeKindClusterDriver :: Text
, KubernetesClusterType -> Maybe [(String, String)]
kubernetesClusterTypeKindClusterEnvironment :: Maybe [(String, String)]
}
| KubernetesClusterMinikube { KubernetesClusterType -> String
kubernetesClusterTypeMinikubeBinary :: FilePath
, KubernetesClusterType -> Text
kubernetesClusterTypeMinikubeProfileName :: Text
, KubernetesClusterType -> [Text]
kubernetesClusterTypeMinikubeFlags :: [Text]
}
deriving (Int -> KubernetesClusterType -> ShowS
[KubernetesClusterType] -> ShowS
KubernetesClusterType -> String
(Int -> KubernetesClusterType -> ShowS)
-> (KubernetesClusterType -> String)
-> ([KubernetesClusterType] -> ShowS)
-> Show KubernetesClusterType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KubernetesClusterType -> ShowS
showsPrec :: Int -> KubernetesClusterType -> ShowS
$cshow :: KubernetesClusterType -> String
show :: KubernetesClusterType -> String
$cshowList :: [KubernetesClusterType] -> ShowS
showList :: [KubernetesClusterType] -> ShowS
Show, KubernetesClusterType -> KubernetesClusterType -> Bool
(KubernetesClusterType -> KubernetesClusterType -> Bool)
-> (KubernetesClusterType -> KubernetesClusterType -> Bool)
-> Eq KubernetesClusterType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KubernetesClusterType -> KubernetesClusterType -> Bool
== :: KubernetesClusterType -> KubernetesClusterType -> Bool
$c/= :: KubernetesClusterType -> KubernetesClusterType -> Bool
/= :: KubernetesClusterType -> KubernetesClusterType -> Bool
Eq)
data KubernetesClusterContext = KubernetesClusterContext {
KubernetesClusterContext -> Text
kubernetesClusterName :: Text
, KubernetesClusterContext -> String
kubernetesClusterKubeConfigPath :: FilePath
, KubernetesClusterContext -> Int
kubernetesClusterNumNodes :: Int
, KubernetesClusterContext -> (Manager, KubernetesClientConfig)
kubernetesClusterClientConfig :: (Manager, Kubernetes.KubernetesClientConfig)
, KubernetesClusterContext -> KubernetesClusterType
kubernetesClusterType :: KubernetesClusterType
} deriving (Int -> KubernetesClusterContext -> ShowS
[KubernetesClusterContext] -> ShowS
KubernetesClusterContext -> String
(Int -> KubernetesClusterContext -> ShowS)
-> (KubernetesClusterContext -> String)
-> ([KubernetesClusterContext] -> ShowS)
-> Show KubernetesClusterContext
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KubernetesClusterContext -> ShowS
showsPrec :: Int -> KubernetesClusterContext -> ShowS
$cshow :: KubernetesClusterContext -> String
show :: KubernetesClusterContext -> String
$cshowList :: [KubernetesClusterContext] -> ShowS
showList :: [KubernetesClusterContext] -> ShowS
Show)
kubernetesCluster :: Label "kubernetesCluster" KubernetesClusterContext
kubernetesCluster :: Label "kubernetesCluster" KubernetesClusterContext
kubernetesCluster = Label "kubernetesCluster" KubernetesClusterContext
forall {k} (l :: Symbol) (a :: k). Label l a
Label
type HasKubernetesClusterContext context = HasLabel context "kubernetesCluster" KubernetesClusterContext
type KubernetesBasic context m = (
MonadLoggerIO m
, MonadUnliftIO m
, HasBaseContextMonad context m
)
type KubernetesClusterBasic context m = (
KubernetesBasic context m
, HasKubernetesClusterContext context
)
type KubectlBasic context m = (
KubernetesClusterBasic context m
, HasFile context "kubectl"
)
type NixContextBasic context m = (
MonadLoggerIO m
, MonadUnliftIO m
, HasBaseContextMonad context m
, HasNixContext context
)
type KubernetesBasicWithoutReader context m = (
MonadLoggerIO m
, MonadUnliftIO m
, HasBaseContext context
)
type KubernetesClusterBasicWithoutReader context m = (
MonadUnliftIO m
, HasBaseContext context
, HasKubernetesClusterContext context
)
type KubectlBasicWithoutReader context m = (
MonadUnliftIO m
, HasBaseContext context
, HasKubernetesClusterContext context
, HasFile context "kubectl"
)
kubernetesClusterImages :: Label "kubernetesClusterImages" [Text]
kubernetesClusterImages :: Label "kubernetesClusterImages" [Text]
kubernetesClusterImages = Label "kubernetesClusterImages" [Text]
forall {k} (l :: Symbol) (a :: k). Label l a
Label
type HasKubernetesClusterImagesContext context = HasLabel context "kubernetesClusterImages" [Text]
data ImagePullPolicy = Always | IfNotPresent | Never
deriving (Int -> ImagePullPolicy -> ShowS
[ImagePullPolicy] -> ShowS
ImagePullPolicy -> String
(Int -> ImagePullPolicy -> ShowS)
-> (ImagePullPolicy -> String)
-> ([ImagePullPolicy] -> ShowS)
-> Show ImagePullPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ImagePullPolicy -> ShowS
showsPrec :: Int -> ImagePullPolicy -> ShowS
$cshow :: ImagePullPolicy -> String
show :: ImagePullPolicy -> String
$cshowList :: [ImagePullPolicy] -> ShowS
showList :: [ImagePullPolicy] -> ShowS
Show, ImagePullPolicy -> ImagePullPolicy -> Bool
(ImagePullPolicy -> ImagePullPolicy -> Bool)
-> (ImagePullPolicy -> ImagePullPolicy -> Bool)
-> Eq ImagePullPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ImagePullPolicy -> ImagePullPolicy -> Bool
== :: ImagePullPolicy -> ImagePullPolicy -> Bool
$c/= :: ImagePullPolicy -> ImagePullPolicy -> Bool
/= :: ImagePullPolicy -> ImagePullPolicy -> Bool
Eq)
data ImageLoadSpec =
ImageLoadSpecTarball FilePath
| ImageLoadSpecDocker { ImageLoadSpec -> Text
imageName :: Text
, ImageLoadSpec -> ImagePullPolicy
pullPolicy :: ImagePullPolicy }
| ImageLoadSpecPodman { imageName :: Text
, pullPolicy :: ImagePullPolicy }
deriving (Int -> ImageLoadSpec -> ShowS
[ImageLoadSpec] -> ShowS
ImageLoadSpec -> String
(Int -> ImageLoadSpec -> ShowS)
-> (ImageLoadSpec -> String)
-> ([ImageLoadSpec] -> ShowS)
-> Show ImageLoadSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ImageLoadSpec -> ShowS
showsPrec :: Int -> ImageLoadSpec -> ShowS
$cshow :: ImageLoadSpec -> String
show :: ImageLoadSpec -> String
$cshowList :: [ImageLoadSpec] -> ShowS
showList :: [ImageLoadSpec] -> ShowS
Show, ImageLoadSpec -> ImageLoadSpec -> Bool
(ImageLoadSpec -> ImageLoadSpec -> Bool)
-> (ImageLoadSpec -> ImageLoadSpec -> Bool) -> Eq ImageLoadSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ImageLoadSpec -> ImageLoadSpec -> Bool
== :: ImageLoadSpec -> ImageLoadSpec -> Bool
$c/= :: ImageLoadSpec -> ImageLoadSpec -> Bool
/= :: ImageLoadSpec -> ImageLoadSpec -> Bool
Eq)