Documentation
¶
Index ¶
- Constants
- func ProfileV2Key(ns, app string) string
- type AppProfileV2
- type ApplicationConfig
- type ConfigProperties
- type ContainerConfig
- type ContainerDevConfig
- type ContainerInstallConfig
- type ContainerProfileV2
- type DebugConfig
- type DependLabelSelector
- type DevCommands
- type DevModeType
- type DevPortForward
- type Env
- type EnvFile
- type EnvFrom
- type HelmValue
- type HubConfig
- type NocalHostAppConfig
- type NocalHostAppConfigV2
- func (n *NocalHostAppConfigV2) FindSvcConfigInHub(svcName string, svcType base.SvcType, container, image string) *ServiceConfigV2
- func (n *NocalHostAppConfigV2) GetSvcConfigS(svcName string, svcType base.SvcType) ServiceConfigV2
- func (n *NocalHostAppConfigV2) GetSvcConfigV2(svcName string, svcType base.SvcType) *ServiceConfigV2
- func (n *NocalHostAppConfigV2) SetSvcConfigV2(svcConfig ServiceConfigV2)
- type NocalhostResource
- type PersistentVolumeDir
- type QuotaList
- type RelPath
- type ResourceQuota
- type ServiceConfigV2
- func (s *ServiceConfigV2) GetContainerConfig(container string) *ContainerConfig
- func (s *ServiceConfigV2) GetContainerDevConfig(containerName string) *ContainerDevConfig
- func (s *ServiceConfigV2) GetContainerDevConfigOrDefault(containerName string) *ContainerDevConfig
- func (s *ServiceConfigV2) GetDefaultContainerDevConfig() *ContainerDevConfig
- type ServiceDevOptions
- type SortedRelPath
- type SvcProfile
- type SvcProfileV2
- type SyncConfig
- type WeightablePath
Constants ¶
View Source
const ( // nocalhost-docker.pkg.coding.net/nocalhost/public/minideb:latest" DefaultDevImage = "" DefaultWorkDir = "/home/nocalhost-dev" DuplicateDevMode = DevModeType("duplicate") ReplaceDevMode = DevModeType("replace") NoneDevMode = DevModeType("") )
Variables ¶
This section is empty.
Functions ¶
func ProfileV2Key ¶
Types ¶
type AppProfileV2 ¶
type AppProfileV2 struct {
Name string `json:"name" yaml:"name"`
// install/uninstall field, should move out of profile
// Deprecated
ChartName string `json:"chartName" yaml:"chartName,omitempty"` // This name may come from config.yaml or --helm-chart-name
// Deprecated TODO move to appMeta
ReleaseName string `json:"releaseName yaml:releaseName"`
// Deprecated
DependencyConfigMapName string `json:"dependencyConfigMapName" yaml:"dependencyConfigMapName,omitempty"`
// Deprecated
Installed bool `json:"installed" yaml:"installed"`
// Deprecated
ResourcePath RelPath `json:"resourcePath" yaml:"resourcePath"`
// Deprecated
IgnoredPath RelPath `json:"ignoredPath" yaml:"ignoredPath"`
// Deprecated
PreInstall SortedRelPath `json:"onPreInstall" yaml:"onPreInstall"`
// Deprecated
AppType string `json:"appType" yaml:"appType"`
// app global field
Namespace string `json:"namespace" yaml:"namespace"`
Kubeconfig string `json:"kubeconfig" yaml:"kubeconfig,omitempty"`
// for previous version, associate path is stored in profile
// and now it store in a standalone db
AssociateMigrate bool `json:"associate_migrate" yaml:"associate_migrate"`
// app global status
Identifier string `json:"identifier" yaml:"identifier"`
Secreted bool `json:"secreted" yaml:"secreted"` // always true for new versions, but from earlier version, the flag for upload profile to secret
// svc runtime status
SvcProfile []*SvcProfileV2 `json:"svcProfile" yaml:"svcProfile"` // This will not be nil after `dev start`, and after `dev start`, application.GetSvcProfile() should not be nil
// contains filtered or unexported fields
}
func NewAppProfileV2ForUpdate ¶
func NewAppProfileV2ForUpdate(ns, name, nid string) (*AppProfileV2, error)
func (*AppProfileV2) CloseDb ¶
func (a *AppProfileV2) CloseDb() error
func (*AppProfileV2) GenerateIdentifierIfNeeded ¶
func (a *AppProfileV2) GenerateIdentifierIfNeeded() string
this method will not save the Identifier, make sure it will be saving while use
func (*AppProfileV2) Save ¶
func (a *AppProfileV2) Save() error
func (*AppProfileV2) SvcProfileV2 ¶
func (a *AppProfileV2) SvcProfileV2(svcName string, svcType string) *SvcProfileV2
SvcProfileV2 The result will not be nil
type ApplicationConfig ¶
type ApplicationConfig struct {
Name string `json:"name" yaml:"name,omitempty"`
Type string `json:"manifestType" yaml:"manifestType,omitempty"`
ResourcePath RelPath `json:"resourcePath" yaml:"resourcePath"`
IgnoredPath RelPath `json:"ignoredPath" yaml:"ignoredPath"`
PreInstall SortedRelPath `json:"onPreInstall" yaml:"onPreInstall"`
PostInstall SortedRelPath `json:"onPostInstall" yaml:"onPostInstall"`
PreUpgrade SortedRelPath `json:"onPreUpgrade" yaml:"onPreUpgrade"`
PostUpgrade SortedRelPath `json:"onPostUpgrade" yaml:"onPostUpgrade"`
PreDelete SortedRelPath `json:"onPreDelete" yaml:"onPreDelete"`
PostDelete SortedRelPath `json:"onPostDelete" yaml:"onPostDelete"`
HelmValues []*HelmValue `json:"helmValues" yaml:"helmValues"`
HelmVals interface{} `json:"helmVals" yaml:"helmVals"`
HelmVersion string `json:"helmVersion" yaml:"helmVersion"`
Env []*Env `json:"env" yaml:"env"`
EnvFrom EnvFrom `json:"envFrom,omitempty" yaml:"envFrom,omitempty"`
ServiceConfigs []*ServiceConfigV2 `json:"services" yaml:"services,omitempty"`
}
func (*ApplicationConfig) LoadManifests ¶
func (c *ApplicationConfig) LoadManifests(tmpDir *fp.FilePathEnhance) []string
type ConfigProperties ¶
type ContainerConfig ¶
type ContainerConfig struct {
Name string `validate:"Container" json:"name" yaml:"name"`
Hub *HubConfig `json:"hub" yaml:"hub,omitempty"`
Install *ContainerInstallConfig `json:"install,omitempty" yaml:"install,omitempty"`
Dev *ContainerDevConfig `json:"dev" yaml:"dev"`
}
type ContainerDevConfig ¶
type ContainerDevConfig struct {
GitUrl string `json:"gitUrl" yaml:"gitUrl"`
Image string `json:"image" yaml:"image"`
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty" yaml:"imagePullPolicy,omitempty"`
Shell string `json:"shell" yaml:"shell"`
WorkDir string `json:"workDir" yaml:"workDir"`
StorageClass string `validate:"StorageClass" json:"storageClass" yaml:"storageClass"`
DevContainerName string `json:"devContainerName,omitempty" yaml:"devContainerName,omitempty"`
DevContainerResources *ResourceQuota `json:"resources" yaml:"resources"`
PersistentVolumeDirs []*PersistentVolumeDir `validate:"dive" json:"persistentVolumeDirs" yaml:"persistentVolumeDirs"`
Command *DevCommands `json:"command" yaml:"command"`
DebugConfig *DebugConfig `json:"debug" yaml:"debug"`
HotReload bool `json:"hotReload" yaml:"hotReload"`
UseDevContainer bool `json:"useDevContainer,omitempty" yaml:"useDevContainer,omitempty"`
Sync *SyncConfig `json:"sync" yaml:"sync"`
Env []*Env `json:"env" yaml:"env"`
EnvFrom *EnvFrom `json:"envFrom,omitempty" yaml:"envFrom,omitempty"`
PortForward []string `validate:"dive,PortForward" json:"portForward" yaml:"portForward"`
SidecarImage string `json:"sidecarImage,omitempty" yaml:"sidecarImage,omitempty"`
Patches []base.PatchItem `json:"patches,omitempty" yaml:"patches,omitempty"`
}
type ContainerInstallConfig ¶
type ContainerProfileV2 ¶
type ContainerProfileV2 struct {
Name string
}
type DebugConfig ¶
type DependLabelSelector ¶
type DevCommands ¶
type DevCommands struct {
Build []string `json:"build,omitempty" yaml:"build,omitempty"`
Run []string `json:"run" yaml:"run"`
Debug []string `json:"debug" yaml:"debug"`
HotReloadRun []string `json:"hotReloadRun,omitempty" yaml:"hotReloadRun,omitempty"`
HotReloadDebug []string `json:"hotReloadDebug,omitempty" yaml:"hotReloadDebug,omitempty"`
}
type DevModeType ¶
type DevModeType string
func (DevModeType) IsDuplicateDevMode ¶
func (d DevModeType) IsDuplicateDevMode() bool
func (DevModeType) IsReplaceDevMode ¶
func (d DevModeType) IsReplaceDevMode() bool
func (DevModeType) ToString ¶
func (d DevModeType) ToString() string
type DevPortForward ¶
type DevPortForward struct {
LocalPort int `json:"localport" yaml:"localport"`
RemotePort int `json:"remoteport" yaml:"remoteport"`
Role string `json:"role" yaml:"role"`
Status string `json:"status" yaml:"status"`
Reason string `json:"reason" yaml:"reason"`
PodName string `json:"podName" yaml:"podName"`
Labels map[string]string `json:"labels" yaml:"labels"`
OwnerKind string `json:"ownerKind" yaml:"ownerKind"`
OwnerApiVersion string `json:"ownerApiVersion" yaml:"ownerApiVersion"`
OwnerName string `json:"ownerName" yaml:"ownerName"`
Updated string `json:"updated" yaml:"updated"`
Sudo bool `json:"sudo" yaml:"sudo"`
DaemonServerPid int `json:"daemonserverpid" yaml:"daemonserverpid"`
ServiceType string `json:"servicetype" yaml:"servicetype"`
}
type NocalHostAppConfig ¶
type NocalHostAppConfig struct {
PreInstall SortedRelPath `json:"onPreInstall" yaml:"onPreInstall"`
ResourcePath RelPath `json:"resourcePath" yaml:"resourcePath"`
SvcConfigs []*ServiceDevOptions `json:"services" yaml:"services"`
Name string `json:"name" yaml:"name"`
Type string `json:"manifestType" yaml:"manifestType"`
IgnoredPath RelPath `json:"ignoredPath" yaml:"ignoredPath"`
}
Deprecated
type NocalHostAppConfigV2 ¶
type NocalHostAppConfigV2 struct {
ConfigProperties ConfigProperties `json:"configProperties" yaml:"configProperties"`
Migrated bool `json:"migrated" yaml:"migrated"` // Only used for checking if config has migrate in meta
ApplicationConfig ApplicationConfig `json:"application" yaml:"application"`
}
func (*NocalHostAppConfigV2) FindSvcConfigInHub ¶
func (n *NocalHostAppConfigV2) FindSvcConfigInHub(svcName string, svcType base.SvcType, container, image string) *ServiceConfigV2
func (*NocalHostAppConfigV2) GetSvcConfigS ¶
func (n *NocalHostAppConfigV2) GetSvcConfigS(svcName string, svcType base.SvcType) ServiceConfigV2
GetSvcConfigS If ServiceConfig not found, return a default one
func (*NocalHostAppConfigV2) GetSvcConfigV2 ¶
func (n *NocalHostAppConfigV2) GetSvcConfigV2(svcName string, svcType base.SvcType) *ServiceConfigV2
func (*NocalHostAppConfigV2) SetSvcConfigV2 ¶
func (n *NocalHostAppConfigV2) SetSvcConfigV2(svcConfig ServiceConfigV2)
type NocalhostResource ¶
type PersistentVolumeDir ¶
type ResourceQuota ¶
type ServiceConfigV2 ¶
type ServiceConfigV2 struct {
Name string `validate:"required" json:"name" yaml:"name"`
Type string `validate:"required" json:"serviceType" yaml:"serviceType"`
PriorityClass string `json:"priorityClass,omitempty" yaml:"priorityClass,omitempty"`
DependLabelSelector *DependLabelSelector `json:"dependLabelSelector,omitempty" yaml:"dependLabelSelector,omitempty"`
ContainerConfigs []*ContainerConfig `validate:"dive" json:"containers" yaml:"containers"`
}
func (*ServiceConfigV2) GetContainerConfig ¶
func (s *ServiceConfigV2) GetContainerConfig(container string) *ContainerConfig
func (*ServiceConfigV2) GetContainerDevConfig ¶
func (s *ServiceConfigV2) GetContainerDevConfig(containerName string) *ContainerDevConfig
func (*ServiceConfigV2) GetContainerDevConfigOrDefault ¶
func (s *ServiceConfigV2) GetContainerDevConfigOrDefault(containerName string) *ContainerDevConfig
GetContainerDevConfigOrDefault Compatible for v1 Finding `containerName` config, if not found, use the first container config
func (*ServiceConfigV2) GetDefaultContainerDevConfig ¶
func (s *ServiceConfigV2) GetDefaultContainerDevConfig() *ContainerDevConfig
type ServiceDevOptions ¶
type ServiceDevOptions struct {
Name string `json:"name" yaml:"name"`
Type string `json:"serviceType" yaml:"serviceType"`
GitUrl string `json:"gitUrl" yaml:"gitUrl"`
DevImage string `json:"devContainerImage" yaml:"devContainerImage"`
WorkDir string `json:"workDir" yaml:"workDir"`
Sync []string `json:"syncDirs" yaml:"syncDirs,omitempty"` // dev start -s
PriorityClass string `json:"priorityClass,omitempty" yaml:"priorityClass,omitempty"`
PersistentVolumeDirs []*PersistentVolumeDir `json:"persistentVolumeDirs" yaml:"persistentVolumeDirs"`
BuildCommand []string `json:"buildCommand,omitempty" yaml:"buildCommand,omitempty"`
RunCommand []string `json:"runCommand,omitempty" yaml:"runCommand,omitempty"`
DebugCommand []string `json:"debugCommand,omitempty" yaml:"debugCommand,omitempty"`
HotReloadRunCommand []string `json:"hotReloadRunCommand,omitempty" yaml:"hotReloadRunCommand,omitempty"`
HotReloadDebugCommand []string `json:"hotReloadDebugCommand,omitempty" yaml:"hotReloadDebugCommand,omitempty"`
DevContainerShell string `json:"devContainerShell" yaml:"devContainerShell"`
DevContainerResources *ResourceQuota `json:"devContainerResources" yaml:"devContainerResources"`
DevPort []string `json:"devPorts" yaml:"devPorts"`
Jobs []string `json:"dependJobsLabelSelector" yaml:"dependJobsLabelSelector,omitempty"`
Pods []string `json:"dependPodsLabelSelector" yaml:"dependPodsLabelSelector,omitempty"`
SyncedPattern []string `json:"syncFilePattern" yaml:"syncFilePattern"`
IgnoredPattern []string `json:"ignoreFilePattern" yaml:"ignoreFilePattern"`
}
type SortedRelPath ¶
type SortedRelPath []*WeightablePath
func (SortedRelPath) Len ¶
func (a SortedRelPath) Len() int
func (SortedRelPath) Less ¶
func (a SortedRelPath) Less(i, j int) bool
func (*SortedRelPath) Load ¶
func (c *SortedRelPath) Load(fp *fp.FilePathEnhance) []string
func (SortedRelPath) Swap ¶
func (a SortedRelPath) Swap(i, j int)
type SvcProfile ¶
type SvcProfile struct {
*ServiceDevOptions `yaml:"rawConfig"`
ActualName string `json:"actualName" yaml:"actualName"` // for helm, actualName may be ReleaseName-Name
Developing bool `json:"developing" yaml:"developing"`
PortForwarded bool `json:"portForwarded" yaml:"portForwarded"`
Syncing bool `json:"syncing" yaml:"syncing"`
// same as local available port, use for port-forward
RemoteSyncthingPort int `json:"remoteSyncthingPort" yaml:"remoteSyncthingPort"`
// same as local available port, use for port-forward
RemoteSyncthingGUIPort int `json:"remoteSyncthingGUIPort" yaml:"remoteSyncthingGUIPort"`
SyncthingSecret string `json:"syncthingSecret" yaml:"syncthingSecret"` // secret name
// syncthing local port
LocalSyncthingPort int `json:"localSyncthingPort" yaml:"localSyncthingPort"`
LocalSyncthingGUIPort int `json:"localSyncthingGUIPort" yaml:"localSyncthingGUIPort"`
LocalAbsoluteSyncDirFromDevStartPlugin []string `json:"localAbsoluteSyncDirFromDevStartPlugin" yaml:"localAbsoluteSyncDirFromDevStartPlugin"`
DevPortList []string `json:"devPortList" yaml:"devPortList"`
PortForwardStatusList []string `json:"portForwardStatusList" yaml:"portForwardStatusList"`
PortForwardPidList []string `json:"portForwardPidList" yaml:"portForwardPidList"`
// .nhignore's pattern configuration
SyncedPatterns []string `json:"syncFilePattern" yaml:"syncFilePattern"`
IgnoredPatterns []string `json:"ignoreFilePattern" yaml:"ignoreFilePattern"`
}
type SvcProfileV2 ¶
type SvcProfileV2 struct {
//*ServiceConfigV2 `json:"rawConfig" yaml:"rawConfig"` // deprecated, move to app mate
//ContainerProfile []*ContainerProfileV2 `json:"containerProfile" yaml:"containerProfile"`
ActualName string `json:"actualName" yaml:"actualName"` // deprecated - for helm, actualName may be ReleaseName-Name
// todo: Is this will conflict with ServiceConfigV2 ? by hxx
Name string `json:"name" yaml:"name"`
Type string `json:"serviceType" yaml:"serviceType"`
PortForwarded bool `json:"portForwarded" yaml:"portForwarded"`
Syncing bool `json:"syncing" yaml:"syncing"`
SyncDirs []string `json:"syncDirs" yaml:"syncDirs,omitempty"` // dev start -s
// same as local available port, use for port-forward
RemoteSyncthingPort int `json:"remoteSyncthingPort" yaml:"remoteSyncthingPort"`
// same as local available port, use for port-forward
RemoteSyncthingGUIPort int `json:"remoteSyncthingGUIPort" yaml:"remoteSyncthingGUIPort"`
//SyncthingSecret string `json:"syncthingSecret" yaml:"syncthingSecret"` // secret name
//DuplicateDevModeSyncthingSecretName string `json:"duplicateDevModeSyncthingSecretName" yaml:"duplicateDevModeSyncthingSecretName"`
// syncthing local port
LocalSyncthingPort int `json:"localSyncthingPort" yaml:"localSyncthingPort"`
LocalSyncthingGUIPort int `json:"localSyncthingGUIPort" yaml:"localSyncthingGUIPort"`
LocalAbsoluteSyncDirFromDevStartPlugin []string `json:"localAbsoluteSyncDirFromDevStartPlugin" yaml:"localAbsoluteSyncDirFromDevStartPlugin"`
DevPortForwardList []*DevPortForward `json:"devPortForwardList" yaml:"devPortForwardList"` // combine DevPortList,PortForwardStatusList and PortForwardPidList
// nocalhost supports config from local dir under "Associate" Path, it's priority is highest
LocalConfigLoaded bool `json:"localconfigloaded" yaml:"localconfigloaded"`
// nocalhost also supports cfg from annotations, it's priority is lower than local cfg and higher than cm cfg
AnnotationsConfigLoaded bool `json:"annotationsconfigloaded" yaml:"annotationsconfigloaded"`
// nocalhost also supports config from cm, lowest priority
CmConfigLoaded bool `json:"cmconfigloaded" yaml:"cmconfigloaded"`
// deprecated, read only, but actually store in
// [SvcPack internal/nhctl/nocalhost/dev_dir_mapping_db.go:165]
// associate for the local dir
Associate string `json:"associate" yaml:"associate"`
// deprecated
// for earlier version of nocalhost
// from app meta, this status return ture may under start developing (pod not ready, etc..)
Developing bool `json:"developing" yaml:"developing"`
// from app meta
DevelopStatus string `json:"develop_status" yaml:"develop_status"`
// mean the current controller is possess by current nhctl context
// and the syncthing process is listen on current device
Possess bool `json:"possess" yaml:"possess"`
// LocalDevMode can be started in every local desktop and not influence each other
DevModeType DevModeType `json:"devModeType" yaml:"devModeType"` // Used by ide plugin
// recorded the container that enter the devmode
// notice: exit devmode will not set this value to null
OriginDevContainer string `json:"originDevContainer" yaml:"originDevContainer"`
}
func (*SvcProfileV2) GetName ¶
func (s *SvcProfileV2) GetName() string
func (*SvcProfileV2) GetType ¶
func (s *SvcProfileV2) GetType() string
type SyncConfig ¶
type SyncConfig struct {
Type string `validate:"SyncType" json:"type" yaml:"type"`
Mode string `validate:"SyncMode" json:"mode,omitempty" yaml:"mode,omitempty"`
DeleteProtection *bool `json:"deleteProtection,omitempty" yaml:"deleteProtection,omitempty"`
FilePattern []string `json:"filePattern" yaml:"filePattern"`
IgnoreFilePattern []string `json:"ignoreFilePattern" yaml:"ignoreFilePattern"`
}
type WeightablePath ¶
Click to show internal directories.
Click to hide internal directories.