common

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2021 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
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."
)
View Source
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"
)
View Source
const (
	// ServiceKind defines Service Kind
	ServiceKind = "Service"
	// DeploymentKind defines Deployment Kind
	DeploymentKind = "Deployment"
	// IngressKind defines Ingress Kind
	IngressKind = "Ingress"
)

Variables

View Source
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

func CleanAndFindCommonDirectory(paths []string) string

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

func ConvertInterfaceToSliceOfStrings(xI interface{}) ([]string, error)

ConvertInterfaceToSliceOfStrings converts an interface{} to a []string type. It can handle []interface{} as long as all the values are strings.

func CopyFile

func CopyFile(dst, src string) error

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

func CreateAssetsData() (assetsPath string, tempPath string, err error)

CreateAssetsData creates an assets directory and dumps the assets data into it

func FindCommonDirectory

func FindCommonDirectory(paths []string) string

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

func GetClosestMatchingString(options []string, searchstring string) string

GetClosestMatchingString returns the closest matching string for a given search string

func GetFilesByExt

func GetFilesByExt(inputPath string, exts []string) ([]string, error)

GetFilesByExt returns files by extension

func GetFilesByName

func GetFilesByName(inputPath string, names []string) ([]string, error)

GetFilesByName returns files by name

func GetGitRemoteNames

func GetGitRemoteNames(path string) ([]string, error)

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

func GetGitRepoName(path string) (repo string, root string)

GetGitRepoName returns the remote repo's name and context.

func GetImageNameAndTag

func GetImageNameAndTag(image string) (string, string)

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

func GetSHA256Hash(s string) string

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

func GetStringFromTemplate(tpl string, config interface{}) (string, error)

GetStringFromTemplate returns string for a template

func IsIntPresent

func IsIntPresent(list []int, value int) bool

IsIntPresent checks if a value is present in a slice

func IsParent added in v0.2.0

func IsParent(child, parent string) bool

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

func IsSameRuntimeObject(obj1, obj2 runtime.Object) bool

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

func IsStringPresent(list []string, value string) bool

IsStringPresent checks if a value is present in a slice

func MakeFileNameCompliant

func MakeFileNameCompliant(name string) string

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

func MakeStringDNSLabelNameCompliant(s string) string

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

func MakeStringDNSNameCompliant(s string) string

MakeStringDNSNameCompliant makes the string into a valid DNS name.

func MakeStringDNSSubdomainNameCompliant

func MakeStringDNSSubdomainNameCompliant(s string) string

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

func MarshalObjToYaml(obj runtime.Object) ([]byte, error)

MarshalObjToYaml marshals an object to yaml

func MergeIntSlices

func MergeIntSlices(slice1 []int, slice2 []int) []int

MergeIntSlices merges two int slices

func MergeStringMaps

func MergeStringMaps(map1 map[string]string, map2 map[string]string) map[string]string

MergeStringMaps merges two string maps

func MergeStringSlices

func MergeStringSlices(slice1 []string, slice2 []string) []string

MergeStringSlices merges two string slices

func NormalizeForFilename

func NormalizeForFilename(name string) string

NormalizeForFilename normalizes a string to only filename valid characters

func NormalizeForServiceName

func NormalizeForServiceName(svcName string) string

NormalizeForServiceName converts the string to be compatible for service name

func ObjectToYamlBytes added in v0.2.0

func ObjectToYamlBytes(data interface{}) ([]byte, error)

ObjectToYamlBytes encodes an object to yaml

func ReadJSON

func ReadJSON(file string, data interface{}) error

ReadJSON reads an json into an object

func ReadMove2KubeYaml

func ReadMove2KubeYaml(path string, out interface{}) error

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 ReadYaml

func ReadYaml(file string, data interface{}) error

ReadYaml reads an yaml into an object

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

func SplitOnDotExpectInsideQuotes(s string) []string

SplitOnDotExpectInsideQuotes splits a string on dot. Stuff inside double or single quotes will not be split.

func SplitYAML added in v0.2.0

func SplitYAML(rawYAML []byte) ([][]byte, error)

SplitYAML splits a file into multiple YAML documents.

func StripQuotes added in v0.2.0

func StripQuotes(s string) string

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

func TarAsString(path string, ignorefiles []string) (string, error)

TarAsString converts a directory into a string

func UnTarString

func UnTarString(tarstring string, path string) (err error)

UnTarString converts a string into a directory

func UniqueStrings

func UniqueStrings(xs []string) []string

UniqueStrings returns a new slice with only the unique strings from the input slice.

func WriteJSON

func WriteJSON(outputPath string, data interface{}) error

WriteJSON writes an json to disk

func WriteTemplateToFile

func WriteTemplateToFile(tpl string, config interface{}, writepath string, filemode os.FileMode) error

WriteTemplateToFile writes a templated string to a file

func WriteYaml

func WriteYaml(outputPath string, data interface{}) error

WriteYaml writes encodes object as yaml and writes it to a file

func YamlAttrPresent

func YamlAttrPresent(path string, attr string) (bool, interface{})

YamlAttrPresent returns YAML attributes

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL