Documentation ¶
Index ¶
- Constants
- Variables
- func CleanAndFindCommonDirectory(paths []string) string
- func ConvertInterfaceToSliceOfStrings(xI interface{}) ([]string, error)
- func CopyFile(dst, src string) error
- func CreateAssetsData() (assetsPath string, tempPath string, err error)
- func FindCommonDirectory(paths []string) string
- func GetClosestMatchingString(options []string, searchstring string) string
- func GetFilesByExt(inputPath string, exts []string) ([]string, error)
- func GetFilesByName(inputPath string, names []string) ([]string, error)
- func GetGitRemoteNames(path string) ([]string, error)
- func GetGitRepoDetails(path, remoteName string) (remoteURLs []string, branch string, repoDir string, finalerr error)
- func GetGitRepoName(path string) (repo string, root string)
- func GetImageNameAndTag(image string) (string, string)
- func GetRuntimeObjectMetadata(obj runtime.Object) metav1.ObjectMeta
- func GetSHA256Hash(s string) string
- func GetStringFromTemplate(tpl string, config interface{}) (string, error)
- func IsIntPresent(list []int, value int) bool
- func IsParent(child, parent string) bool
- func IsSameRuntimeObject(obj1, obj2 runtime.Object) bool
- func IsStringPresent(list []string, value string) bool
- func MakeFileNameCompliant(name string) string
- func MakeStringDNSLabelNameCompliant(s string) string
- func MakeStringDNSNameCompliant(s string) string
- func MakeStringDNSSubdomainNameCompliant(s string) string
- func MarshalObjToYaml(obj runtime.Object) ([]byte, error)
- func MergeIntSlices(slice1 []int, slice2 []int) []int
- func MergeStringMaps(map1 map[string]string, map2 map[string]string) map[string]string
- func MergeStringSlices(slice1 []string, slice2 []string) []string
- func NormalizeForFilename(name string) string
- func NormalizeForServiceName(svcName string) string
- func ObjectToYamlBytes(data interface{}) ([]byte, error)
- func ReadJSON(file string, data interface{}) error
- func ReadMove2KubeYaml(path string, out interface{}) error
- func ReadYaml(file string, data interface{}) error
- func ReverseInPlace(xs []string)
- func SplitOnDotExpectInsideQuotes(s string) []string
- func SplitYAML(rawYAML []byte) ([][]byte, error)
- func StripQuotes(s string) string
- func TarAsString(path string, ignorefiles []string) (string, error)
- func UnTarString(tarstring string, path string) (err error)
- func UniqueStrings(xs []string) []string
- func WriteJSON(outputPath string, data interface{}) error
- func WriteTemplateToFile(tpl string, config interface{}, writepath string, filemode os.FileMode) error
- func WriteYaml(outputPath string, data interface{}) error
- func YamlAttrPresent(path string, attr string) (bool, interface{})
Constants ¶
const ( // DefaultProjectName represents the short app name DefaultProjectName string = "myproject" // DefaultPlanFile defines default name for plan file DefaultPlanFile string = types.AppNameShort + ".plan" // TempDirPrefix defines the prefix of the temp directory TempDirPrefix string = types.AppNameShort + "-" // AssetsDir defines the dir of the assets temp directory AssetsDir string = types.AppNameShort + "assets" // ScriptsDir defines the directory where the output scripts are placed ScriptsDir string = "scripts" // SourceDir defines the directory where the source files and folders are placed along with build scripts for each individual image SourceDir string = "source" // DeployDir defines the directory where the deployment artifacts are placed DeployDir string = "deploy" // HelmDir defines the directory where the helm charts are placed HelmDir string = "helm-charts" // OCTemplatesDir defines the directory where the openshift templates are placed OCTemplatesDir string = "openshift-templates" // VolumePrefix defines the prefix to be used for volumes VolumePrefix string = "vol" // DefaultStorageClassName defines the default storage class to be used DefaultStorageClassName string = "default" // DefaultDirectoryPermission defines the default permission used when a directory is created DefaultDirectoryPermission os.FileMode = 0755 // DefaultExecutablePermission defines the default permission used when an executable file is created DefaultExecutablePermission os.FileMode = 0744 // DefaultFilePermission defines the default permission used when a non-executable file is created DefaultFilePermission os.FileMode = 0644 // DefaultRegistryURL points to the default registry url that will be used DefaultRegistryURL string = "quay.io" // ImagePullSecretPrefix is the prefix that will be prepended to pull secret name ImagePullSecretPrefix string = "imagepullsecret" // QACacheFile defines the location of the QA cache file QACacheFile string = types.AppNameShort + "qacache.yaml" // ConfigFile defines the location of the config file ConfigFile string = types.AppNameShort + "config.yaml" // DefaultClusterType defines the default cluster type chosen by plan DefaultClusterType string = "Kubernetes" // IgnoreFilename is the name of the file containing the ignore rules and exceptions IgnoreFilename string = "." + types.AppNameShort + "ignore" // ExposeSelector tag is used to annotate services that are externally exposed ExposeSelector string = types.GroupName + "/service.expose" // AnnotationLabelValue represents the value when an annotation is valid AnnotationLabelValue string = "true" // DefaultServicePort is the default port that will be added to a service. DefaultServicePort = 8080 // TODOAnnotation is used to annotate with TODO tasks TODOAnnotation string = types.GroupName + "/todo." )
const ( // Delim is the delimiter used to separate key segments Delim = "." // Special is the special case indicator of the multi-select problems Special = "[]" // MatchAll is used to set the default for a set of keys. Example: move2kube.services.*.ports=[8080] MatchAll = "*" // BaseKey is the prefix for every key BaseKey = types.AppName //ConfigServicesKey represents Services Key ConfigServicesKey = BaseKey + d + "services" //ConfigStoragesKey represents Storages Key ConfigStoragesKey = BaseKey + d + "storages" //ConfigSourcesKey represents Sources Key ConfigSourcesKey = BaseKey + d + "sources" //ConfigTargetKey represents Target Key ConfigTargetKey = BaseKey + d + "target" //ConfigRepoKey represents Repo Key ConfigRepoKey = BaseKey + d + "repo" //ConfigContainerizationKeySegment represents Containerization Key segment ConfigContainerizationKeySegment = BaseKey + d + "containerization" //ConfigRepoKeysKey represents Repo Key ConfigRepoKeysKey = ConfigRepoKey + d + "keys" //ConfigRepoPubKey represents allow load of public key of repos Key ConfigRepoPubKey = ConfigRepoKeysKey + d + "pub" //ConfigRepoLoadPubDomainsKey represents allow load of public key per domain of repos Key ConfigRepoLoadPubDomainsKey = ConfigRepoPubKey + d + "domain" //ConfigRepoLoadPubKey represents allow load of public key of repos Key ConfigRepoLoadPubKey = ConfigRepoPubKey + d + "load" //ConfigRepoPrivKey represents allow load of private key of repos Key ConfigRepoPrivKey = ConfigRepoKeysKey + d + "priv" //ConfigRepoLoadPrivKey represents allow load of private key of repos Key ConfigRepoLoadPrivKey = ConfigRepoKeysKey + d + "load" //ConfigRepoKeyPathsKey represents paths of keyfiles ConfigRepoKeyPathsKey = ConfigRepoKeysKey + d + "paths" //ConfigSourceTypesKey represents source type Key ConfigSourceTypesKey = ConfigSourcesKey + d + "types" //ConfigIngressKey represents Ingress Key ConfigIngressKey = ConfigTargetKey + d + "ingress" //ConfigIngressHostKey represents Ingress host Key ConfigIngressHostKey = ConfigIngressKey + d + "host" //ConfigIngressTLSKey represents ingress tls Key ConfigIngressTLSKey = ConfigIngressKey + d + "tls" //ConfigTargetClusterTypeKey represents target cluster type key ConfigTargetClusterTypeKey = ConfigTargetKey + d + "clustertype" //ConfigImageRegistryKey represents image registry Key ConfigImageRegistryKey = ConfigTargetKey + d + "imageregistry" //ConfigImageRegistryURLKey represents image registry url Key ConfigImageRegistryURLKey = ConfigImageRegistryKey + d + "url" //ConfigImageRegistryNamespaceKey represents image registry namespace Key ConfigImageRegistryNamespaceKey = ConfigImageRegistryKey + d + "namespace" //ConfigImageRegistryLoginTypeKey represents image registry login type Key ConfigImageRegistryLoginTypeKey = ConfigImageRegistryKey + d + "logintype" //ConfigImageRegistryPullSecretKey represents image registry pull secret Key ConfigImageRegistryPullSecretKey = ConfigImageRegistryKey + d + "pullsecret" //ConfigImageRegistryUserNameKey represents image registry login Username Key ConfigImageRegistryUserNameKey = ConfigImageRegistryKey + d + "username" //ConfigImageRegistryPasswordKey represents image registry login Password Key ConfigImageRegistryPasswordKey = ConfigImageRegistryKey + d + "password" //ConfigStoragesPVCForHostPathKey represents key for PVC for Host Path ConfigStoragesPVCForHostPathKey = ConfigStoragesKey + d + "pvcforhostpath" //ConfigStoragesPerClaimStorageClassKey represents key for having different storage class for claim ConfigStoragesPerClaimStorageClassKey = ConfigStoragesKey + d + "perclaimstorageclass" //ConfigServicesNamesKey represents Storages Key ConfigServicesNamesKey = ConfigServicesKey + d + Special + d + "enable" //ConfigContainerizationTypesKey represents source type Key ConfigContainerizationTypesKey = ConfigContainerizationKeySegment + d + "types" //ConfigServicesExposeKey represents Services Expose Key ConfigServicesExposeKey = ConfigServicesKey + d + Special + d + "expose" )
const ( // ServiceKind defines Service Kind ServiceKind = "Service" // DeploymentKind defines Deployment Kind DeploymentKind = "Deployment" // IngressKind defines Ingress Kind IngressKind = "Ingress" )
Variables ¶
var (
// DefaultPVCSize stores the default PVC size
DefaultPVCSize, _ = resource.ParseQuantity("100Mi")
// IgnoreEnvironment indicates whether to ignore the current environment or not
IgnoreEnvironment = false
// TempPath defines where all app data get stored during execution
TempPath = TempDirPrefix + "temp"
// AssetsPath defines where all assets get stored during execution
AssetsPath = filepath.Join(TempPath, AssetsDir)
)
Functions ¶
func CleanAndFindCommonDirectory ¶
CleanAndFindCommonDirectory finds the common ancestor directory among a list of absolute paths. Cleans the paths you give it before finding the directory. Also see FindCommonDirectory
func ConvertInterfaceToSliceOfStrings ¶ added in v0.2.0
ConvertInterfaceToSliceOfStrings converts an interface{} to a []string type. It can handle []interface{} as long as all the values are strings.
func CopyFile ¶
CopyFile copies a file from src to dst. The dst file will be truncated if it exists. Returns an error if it failed to copy all the bytes.
func CreateAssetsData ¶
CreateAssetsData creates an assets directory and dumps the assets data into it
func FindCommonDirectory ¶
FindCommonDirectory finds the common ancestor directory among a list of cleaned absolute paths. Will not clean the paths you give it before trying to find the directory. Also see CleanAndFindCommonDirectory
func GetClosestMatchingString ¶
GetClosestMatchingString returns the closest matching string for a given search string
func GetFilesByExt ¶
GetFilesByExt returns files by extension
func GetFilesByName ¶
GetFilesByName returns files by name
func GetGitRemoteNames ¶
GetGitRemoteNames returns a list of remotes if there is a repo and remotes exists.
func GetGitRepoDetails ¶
func GetGitRepoDetails(path, remoteName string) (remoteURLs []string, branch string, repoDir string, finalerr error)
GetGitRepoDetails returns the remote urls for a git repo at path.
func GetGitRepoName ¶
GetGitRepoName returns the remote repo's name and context.
func GetImageNameAndTag ¶
GetImageNameAndTag splits an image full name and returns the image name and tag
func GetRuntimeObjectMetadata ¶ added in v0.2.0
func GetRuntimeObjectMetadata(obj runtime.Object) metav1.ObjectMeta
GetRuntimeObjectMetadata returns the metadata field from a k8s object.
func GetSHA256Hash ¶
GetSHA256Hash returns the SHA256 hash of the string. The hash is 256 bits/32 bytes and encoded as a 64 char hexadecimal string.
func GetStringFromTemplate ¶
GetStringFromTemplate returns string for a template
func IsIntPresent ¶
IsIntPresent checks if a value is present in a slice
func IsParent ¶ added in v0.2.0
IsParent can be used to check if a path is one of the parent directories of another path. Also returns true if the paths are the same.
func IsSameRuntimeObject ¶ added in v0.2.0
IsSameRuntimeObject returns true if the 2 k8s resources are same. 2 resources are the same if they have the same group, version, kind, namespace and name. Also prints an error if the 2 objects have the same kind, namespace and name but different group versions.
func IsStringPresent ¶
IsStringPresent checks if a value is present in a slice
func MakeFileNameCompliant ¶
MakeFileNameCompliant returns a DNS-1123 standard string Motivated by https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set Also see page 1 "ASSUMPTIONS" heading of https://tools.ietf.org/html/rfc952 Also see page 13 of https://tools.ietf.org/html/rfc1123#page-13
func MakeStringDNSLabelNameCompliant ¶
MakeStringDNSLabelNameCompliant makes the string a valid DNS label name. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names 1. contain at most 63 characters 2. contain only lowercase alphanumeric characters or '-' 3. start with an alphanumeric character 4. end with an alphanumeric character
func MakeStringDNSNameCompliant ¶
MakeStringDNSNameCompliant makes the string into a valid DNS name.
func MakeStringDNSSubdomainNameCompliant ¶
MakeStringDNSSubdomainNameCompliant makes the string a valid DNS subdomain name. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names 1. contain no more than 253 characters 2. contain only lowercase alphanumeric characters, '-' or '.' 3. start with an alphanumeric character 4. end with an alphanumeric character
func MarshalObjToYaml ¶ added in v0.2.0
MarshalObjToYaml marshals an object to yaml
func MergeIntSlices ¶
MergeIntSlices merges two int slices
func MergeStringMaps ¶
MergeStringMaps merges two string maps
func MergeStringSlices ¶
MergeStringSlices merges two string slices
func NormalizeForFilename ¶
NormalizeForFilename normalizes a string to only filename valid characters
func NormalizeForServiceName ¶
NormalizeForServiceName converts the string to be compatible for service name
func ObjectToYamlBytes ¶ added in v0.2.0
ObjectToYamlBytes encodes an object to yaml
func ReadMove2KubeYaml ¶
ReadMove2KubeYaml reads move2kube specific yaml files (like m2k.plan) into an struct. It checks if apiVersion to see if the group is move2kube and also reports if the version is different from the expected version.
func ReverseInPlace ¶ added in v0.2.0
func ReverseInPlace(xs []string)
ReverseInPlace reverses a slice of strings in place.
func SplitOnDotExpectInsideQuotes ¶ added in v0.2.0
SplitOnDotExpectInsideQuotes splits a string on dot. Stuff inside double or single quotes will not be split.
func StripQuotes ¶ added in v0.2.0
StripQuotes strips a single layer of double or single quotes from the left and right ends Example: "github.com" -> github.com Example: 'github.com' -> github.com Example: "'github.com'" -> 'github.com'
func TarAsString ¶
TarAsString converts a directory into a string
func UnTarString ¶
UnTarString converts a string into a directory
func UniqueStrings ¶
UniqueStrings returns a new slice with only the unique strings from the input slice.
func WriteTemplateToFile ¶
func WriteTemplateToFile(tpl string, config interface{}, writepath string, filemode os.FileMode) error
WriteTemplateToFile writes a templated string to a file
func YamlAttrPresent ¶
YamlAttrPresent returns YAML attributes
Types ¶
This section is empty.