Documentation ¶
Index ¶
Constants ¶
const ( // common ENVSystemAddress = "ADDRESS" ENVEnterprise = "ENTERPRISE" ENVMode = "MODE" ENVNsqLookupAddrs = "NSQLOOKUP_ADDRS" ENVMongoDBConnectionString = "MONGODB_CONNECTION_STRING" ENVAslanDBName = "ASLAN_DB" ENVHubAgentImage = "HUB_AGENT_IMAGE" ENVResourceServerImage = "RESOURCE_SERVER_IMAGE" ENVMysqlUser = "MYSQL_USER" ENVMysqlPassword = "MYSQL_PASSWORD" ENVMysqlHost = "MYSQL_HOST" ENVMysqlUserDb = "MYSQL_USER_DB" // Aslan ENVPodName = "BE_POD_NAME" ENVNamespace = "BE_POD_NAMESPACE" ENVLogLevel = "LOG_LEVEL" ENVServiceStartTimeout = "SERVICE_START_TIMEOUT" ENVDefaultEnvRecycleDay = "DEFAULT_ENV_RECYCLE_DAY" ENVDefaultIngressClass = "DEFAULT_INGRESS_CLASS" ENVAslanRegAddress = "DEFAULT_REGISTRY" ENVAslanRegAccessKey = "DEFAULT_REGISTRY_AK" ENVAslanRegSecretKey = "DEFAULT_REGISTRY_SK" ENVAslanRegNamespace = "DEFAULT_REGISTRY_NAMESPACE" ENVGithubSSHKey = "GITHUB_SSH_KEY" ENVGithubKnownHost = "GITHUB_KNOWN_HOST" ENVReaperImage = "REAPER_IMAGE" ENVReaperBinaryFile = "REAPER_BINARY_FILE" ENVPredatorImage = "PREDATOR_IMAGE" EnvPackagerImage = "PACKAGER_IMAGE" ENVDockerHosts = "DOCKER_HOSTS" ENVUseClassicBuild = "USE_CLASSIC_BUILD" ENVCustomDNSNotSupported = "CUSTOM_DNS_NOT_SUPPORTED" ENVOldEnvSupported = "OLD_ENV_SUPPORTED" ENVS3StorageAK = "S3STORAGE_AK" ENVS3StorageSK = "S3STORAGE_SK" ENVS3StorageEndpoint = "S3STORAGE_ENDPOINT" ENVS3StorageBucket = "S3STORAGE_BUCKET" ENVS3StorageProtocol = "S3STORAGE_PROTOCOL" ENVS3StoragePath = "S3STORAGE_PATH" ENVKubeServerAddr = "KUBE_SERVER_ADDR" // cron ENVRootToken = "ROOT_TOKEN" ENVKodespaceVersion = "KODESPACE_VERSION" // hubagent HubAgentToken = "HUB_AGENT_TOKEN" HubServerBaseAddr = "HUB_SERVER_BASE_ADDR" KubernetesServiceHost = "KUBERNETES_SERVICE_HOST" KubernetesServicePort = "KUBERNETES_SERVICE_PORT" Token = "X-API-Tunnel-Token" Params = "X-API-Tunnel-Params" AslanBaseAddr = "ASLAN_BASE_ADDR" // warpdrive WarpDrivePodName = "WD_POD_NAME" ReleaseImageTimeout = "RELEASE_IMAGE_TIMEOUT" // reaper Home = "HOME" PkgFile = "PKG_FILE" JobConfigFile = "JOB_CONFIG_FILE" DockerAuthDir = "DOCKER_AUTH_DIR" Path = "PATH" DockerHost = "DOCKER_HOST" BuildURL = "BUILD_URL" DefaultDockSock = "/var/run/docker.sock" // jenkins JenkinsBuildImage = "JENKINS_BUILD_IMAGE" // dind DindImage = "DIND_IMAGE" DebugMode = "debug" ReleaseMode = "release" TestMode = "test" // user ENVIssuerURL = "ISSUER_URL" ENVClientID = "CLIENT_ID" ENVClientSecret = "CLIENT_SECRET" ENVRedirectURI = "REDIRECT_URI" ENVSecretKey = "SECRET_KEY" ENVMysqlUserDB = "MYSQL_USER_DB" ENVScopes = "SCOPES" ENVTokenExpiresAt = "TOKEN_EXPIRES_AT" ENVUserPort = "USER_PORT" // config ENVMysqlDexDB = "MYSQL_DEX_DB" FeatureFlag = "feature-gates" // initconfig ENVAdminEmail = "ADMIN_EMAIL" ENVAdminPassword = "ADMIN_PASSWORD" PresetAccount = "admin" )
envs
const ( Secret = "Secret" ConfigMap = "ConfigMap" Ingress = "Ingress" PersistentVolumeClaim = "PersistentVolumeClaim" Service = "Service" Deployment = "Deployment" StatefulSet = "StatefulSet" Pod = "Pod" ReplicaSet = "ReplicaSet" Job = "Job" CronJob = "CronJob" ClusterRoleBinding = "ClusterRoleBinding" ServiceAccount = "ServiceAccount" ClusterRole = "ClusterRole" Role = "Role" RoleBinding = "RoleBinding" // labels TaskLabel = "s-task" TypeLabel = "s-type" PipelineTypeLable = "p-type" ProductLabel = "s-product" GroupLabel = "s-group" ServiceLabel = "s-service" LabelHashKey = "hash" ConfigBackupLabel = "config-backup" EnvNameLabel = "s-env" UpdateBy = "update-by" UpdateByID = "update-by-id" UpdateTime = "update-time" UpdatedByLabel = "updated-by-koderover" IngressClassLabel = "kubernetes.io/ingress.class" IngressProxyConnectTimeoutLabel = "nginx.ingress.kubernetes.io/proxy-connect-timeout" IngressProxySendTimeoutLabel = "nginx.ingress.kubernetes.io/proxy-send-timeout" IngressProxyReadTimeoutLabel = "nginx.ingress.kubernetes.io/proxy-read-timeout" ComponentLabel = "app.kubernetes.io/component" DirtyLabel = companyLabel + "/" + "modified-since-last-update" OwnerLabel = companyLabel + "/" + "owner" InactiveConfigLabel = companyLabel + "/" + "inactive" ModifiedByAnnotation = companyLabel + "/" + "last-modified-by" EditorIDAnnotation = companyLabel + "/" + "editor-id" LastUpdateTimeAnnotation = companyLabel + "/" + "last-update-time" JobLabelTaskKey = "s-task" JobLabelNameKey = "s-name" JobLabelSTypeKey = "s-type" LabelValueTrue = "true" // Pod status PodRunning = "Running" PodError = "Error" PodUnstable = "Unstable" PodCreating = "Creating" PodCreated = "created" PodUpdating = "Updating" PodDeleting = "Deleting" PodSucceeded = "Succeeded" PodFailed = "Failed" PodPending = "Pending" PodNonStarted = "Unstart" PodCompleted = "Completed" // cluster status ClusterUnknown = "Unknown" ClusterNotFound = "NotFound" ClusterDisconnected = "Disconnected" // annotations HelmReleaseNameAnnotation = "meta.helm.sh/release-name" EnvCreatedBy = "createdBy" EnvCreator = "koderover" PodReady = "ready" JobReady = "Completed" PodNotReady = "not ready" APIVersionAppsV1 = "apps/v1" RSASecretName = "zadig-rsa-key" DefaultImagePullSecret = "default-registry-secret" PolicyMetaConfigMapName = "zadig-policy-meta" PolicyURLConfigMapName = "zadig-policy-url" PolicyRoleConfigMapName = "zadig-policy-role" )
k8s concepts
const ( ProductName = "zadig" RequestID = "requestID" ProtocolHTTP string = "http" ProtocolHTTPS string = "https" ProtocolTCP string = "tcp" DefaultIngressClass = "koderover-nginx" // K8SDeployType Containerized Deployment K8SDeployType = "k8s" // helm deployment HelmDeployType = "helm" // PMDeployType physical machine deploy method PMDeployType = "pm" TrusteeshipDeployType = "trusteeship" // Infrastructure k8s type BasicFacilityK8S = "kubernetes" // Infrastructure Cloud Hosting BasicFacilityCVM = "cloud_host" // SourceFromZadig Configuration sources are managed by the platform SourceFromZadig = "spock" // SourceFromGitlab The configuration source is gitlab SourceFromGitlab = "gitlab" // SourceFromGithub The configuration source is github SourceFromGithub = "github" // SourceFromGerrit The configuration source is gerrit SourceFromGerrit = "gerrit" // SourceFromCodeHub The configuration source is codehub SourceFromCodeHub = "codehub" // SourceFromGitee Configure the source as gitee SourceFromGitee = "gitee" // SourceFromGiteeEE Configure the source as gitee-enterprise SourceFromGiteeEE = "gitee-enterprise" // SourceFromOther Configure the source as other SourceFromOther = "other" // SourceFromChartTemplate The configuration source is helmTemplate SourceFromChartTemplate = "chartTemplate" // SourceFromPublicRepo The configuration source is publicRepo SourceFromPublicRepo = "publicRepo" SourceFromChartRepo = "chartRepo" SourceFromCustomEdit = "customEdit" SourceFromVariableSet = "variableSet" // SourceFromGUI The configuration source is gui SourceFromGUI = "gui" //SourceFromHelm SourceFromHelm = "helm" //SourceFromExternal SourceFromExternal = "external" // service from yaml template ServiceSourceTemplate = "template" SourceFromPM = "pm" SourceFromGitRepo = "repo" // SourceFromApollo is the configuration_management type of apollo SourceFromApollo = "apollo" // SourceFromNacos is the configuration_management type of nacos SourceFromNacos = "nacos" ProdENV = "prod" TestENV = "test" AllENV = "all" // action type TypeEnableCronjob = "enable" TypeDisableCronjob = "disable" PublicService = "public" // The second step of the onboarding process OnboardingStatusSecond = 2 Unset = "UNSET" CleanSkippedList = "CLEAN_WHITE_LIST" PerPage = 20 BuildType = "build" DeployType = "deploy" TestType = "test" PublishType = "publish" FunctionTestType = "function" )
const ( DeliveryVersionTypeChart = "HelmChart" DeliveryVersionTypeK8SWorkflow = "K8SWorkflow" )
const ( DeliveryDeployTypeImage = "image" DeliveryDeployTypeChart = "chart" )
const ( StandardScriptName = "install.sh" AllInOneScriptName = "install_with_k8s.sh" UninstallScriptName = "uninstall.sh" StandardInstallType = "standard" AllInOneInstallType = "all-in-one" UninstallInstallType = "uninstall" )
install script constants
const ( StatusRunning = "Running" StatusSucceeded = "Succeeded" )
Pod Status
const ( // BuildImageJob ... BuildImageJob = "docker-build" // ReleaseImageJob ... ReleaseImageJob = "docker-release" )
build image consts
const ( PipelineTaskFmt = "PipelineTask:%s" WorkflowTaskFmt = "WorkflowTask:%s" WorkflowTaskV3Fmt = "WorkflowTaskV3:%s" WorkflowTaskV4Fmt = "WorkflowTaskV4:%s" TestTaskFmt = "TestTask:%s" ServiceTaskFmt = "ServiceTask:%s" ScanningTaskFmt = "ScanningTask:%s" )
counter prefix
const ( ProductStatusSuccess = "success" ProductStatusFailed = "failed" ProductStatusCreating = "creating" ProductStatusUpdating = "updating" ProductStatusDeleting = "deleting" ProductStatusUnknown = "unknown" ProductStatusUnstable = "Unstable" )
Product Status
const ( DeliveryVersionStatusSuccess = "success" DeliveryVersionStatusFailed = "failed" DeliveryVersionStatusCreating = "creating" DeliveryVersionStatusRetrying = "retrying" )
DeliveryVersion status
const ( DeliveryVersionPackageStatusSuccess = "success" DeliveryVersionPackageStatusFailed = "failed" DeliveryVersionPackageStatusWaiting = "waiting" DeliveryVersionPackageStatusUploading = "uploading" )
const ( CreateProductEvent = "CreateProduct" UpdateProductEvent = "UpdateProduct" DeleteProductEvent = "DeleteProduct" UpdateContainerImageEvent = "UpdateContainerImage" )
events
const ( OperationSceneProject = "project" OperationSceneBuild = "build" OperationSceneWorkflow = "workflow" OperationSceneEnv = "environment" OperationSceneService = "service" OperationSceneTest = "test" OperationSceneScanning = "scanning" OperationSceneVersion = "version" OperationSceneSystem = "system" )
operation scenes
const ( // PrivateVisibility ... PrivateVisibility = "private" // PublicAccess ... PublicAccess = "public" // ChartYaml ChartYaml = "Chart.yaml" // ValuesYaml ValuesYaml = "values.yaml" // TemplatesDir TemplatesDir = "templates" // ServiceTemplateCounterName 服务模板counter name ServiceTemplateCounterName = "service:%s&project:%s" // ServiceTemplateCounterName 服务模板counter name ProductionServiceTemplateCounterName = "productionservice:%s&project:%s" // GerritDefaultOwner GerritDefaultOwner = "dafault" // YamlFileSeperator ... YamlFileSeperator = "\n---\n" )
Service Related
const ( ProxyAPIAddr = "PROXY_API_ADDR" ProxyHTTPSAddr = "PROXY_HTTPS_ADDR" ProxyHTTPAddr = "PROXY_HTTP_ADDR" ProxySocks5Addr = "PROXY_SOCKS_ADDR" )
proxy
const ( // WorkflowTriggerTaskCreator ... WorkflowTriggerTaskCreator = "workflow_trigger" // WebhookTaskCreator ... WebhookTaskCreator = "webhook" // JiraHookTaskCreator ... JiraHookTaskCreator = "jira_hook" // MeegoHookTaskCreator ... MeegoHookTaskCreator = "meego_hook" // GeneralHookTaskCreator ... GeneralHookTaskCreator = "general_hook" // CronTaskCreator ... CronTaskCreator = "timer" // DefaultTaskRevoker ... DefaultTaskRevoker = "system" // default task revoker )
const ( // DefaultMaxFailures ... DefaultMaxFailures = 10 // FrequencySeconds ... FrequencySeconds = "seconds" // FrequencyMinutes ... FrequencyMinutes = "minutes" // FrequencyHour ... FrequencyHour = "hour" // FrequencyHours ... FrequencyHours = "hours" // FrequencyDay ... FrequencyDay = "day" // FrequencyDays ... FrequencyDays = "days" // FrequencyMondy ... FrequencyMondy = "monday" // FrequencyTuesday ... FrequencyTuesday = "tuesday" // FrequencyWednesday ... FrequencyWednesday = "wednesday" // FrequencyThursday ... FrequencyThursday = "thursday" // FrequencyFriday ... FrequencyFriday = "friday" // FrequencySaturday ... FrequencySaturday = "saturday" // FrequencySunday ... FrequencySunday = "sunday" )
const ( // FunctionTest 功能测试 FunctionTest = "function" // PerformanceTest 性能测试 PerformanceTest = "performance" )
const ( // UbuntuPrecis ... UbuntuPrecis = "precise" // UbuntuTrusty ... UbuntuTrusty = "trusty" // UbuntuXenial ... UbuntuXenial = "xenial" // UbuntuBionic ... UbuntuBionic = "bionic" // TestOnly ... TestOnly = "test" )
const ( Version = "stable" EnvRecyclePolicyAlways = "always" EnvRecyclePolicyTaskStatus = "success" EnvRecyclePolicyNever = "never" )
const ( ImageFromCustom = "custom" FixedDayTimeCronjob = "timing" FixedGapCronjob = "gap" CrontabCronjob = "crontab" WorkflowCronjob = "workflow" WorkflowV4Cronjob = "workflow_v4" TestingCronjob = "test" TopicProcess = "task.process" TopicCancel = "task.cancel" TopicAck = "task.ack" TopicItReport = "task.it.report" TopicNotification = "task.notification" TopicCronjob = "cronjob" )
const ( ProviderSourceETC = iota ProviderSourceAli ProviderSourceTencent ProviderSourceQiniu ProviderSourceHuawei ProviderSourceSystemDefault )
ALL provider mapping
const ( // components used to search image paths from yaml PathSearchComponentRepo = "repo" PathSearchComponentImage = "image" PathSearchComponentTag = "tag" )
helm related
const ( AliyunHost = ".aliyuncs.com" AWSHost = ".amazonaws.com" )
host for multiple cloud provider
const ( DockerfileSourceLocal = "local" DockerfileSourceTemplate = "template" ZadigDockerfilePath = "zadig-dockerfile" )
Dockerfile template constant
const ( TemplateVariableProduct = "$T-Project$" TemplateVariableProductDescription = "项目名称" TemplateVariableService = "$T-Service$" TemplateVariableServiceDescription = "服务名称" )
template common constant
const ( ResponseError = "error" ResponseData = "response" )
const ( Subresource = "subresource" StatusSubresource = "status" IngressSubresource = "ingress" ResourcesHeader = "Resources" )
const ( AgentClusterType = "agent" KubeConfigClusterType = "kubeconfig" LocalClusterID = "0123456789abcdef12345678" )
Cluster Management constants
const ( ListNamespaceTypeCreate = "create" ListNamespaceTypeALL = "all" )
list namespace type
const ( InformerNamingConvention = "%s-%s" IstioInformerNamingConvention = "%s-%s-istio" )
const ( DefaultReleaseNaming = "$Service$" ReleaseNamingPlaceholder = "$Namespace$-$Service$" )
const ( FixedValueMark = "<+fixed>" RenderValueTemplate = "{{.%s}}" RenderPluginValueTemplate = "$(%s)" )
custom workflow constants for variables
const ( ProductWorkflowType = "product_workflow" CustomWorkflowType = "common_workflow" )
const ( NormalSchedule = "normal" RequiredSchedule = "required" PreferredSchedule = "preferred" )
cluster dodeAffinity schedule type
const ( JobNameRegx = "^[a-z][a-z0-9-]{0,31}$" WorkflowRegx = "^[a-z0-9-]+$" )
const ( ServiceDeployStrategyImport = "import" ServiceDeployStrategyDeploy = "deploy" )
const ( IMLark = "lark" IMDingding = "dingding" )
Instant Message System types
const ( LarkUserOpenID = "open_id" LarkDepartmentOpenID = "open_department_id" )
lark app
const ( PMJira = "jira" PMLark = "lark" PMMeego = "meego" )
Project Management types
const ( VariableSourceRuntime = "runtime" VariableSourceOther = "other" )
Workflow variable source type
const ( CpuUintM string = "m" MemoryUintMi string = "Mi" MemoryUintGi string = "Gi" )
const ( Aslan = iota + 1 // 1 Aslanx // 2 Clair // 3 Collie // 4 Cron // 5 HubServer // 6 SonarQube // 7 WarpDrive // 8 Minio // 9 OPA // 10 Policy // 11 Vendor )
const ArtifactResultOut = "artifactResultOut.tar.gz"
const AttachedClusterNamespace = "koderover-agent"
AttachedClusterNamespace is the namespace Zadig uses in attached cluster. Note: **Restricted because of product design since v1.9.0**.
const (
AuthorizationHeader = "Authorization"
)
const (
BuildChartPackage = "chart-package"
)
const ChartTemplatesPath = "charts"
const DefaultLoginLocal = "local"
const DeployTimeout = 60 * 10 // 10 minutes
const (
DockerfileCmdArg = "ARG"
)
Dockerfile parsing consts
const DogFood = "/var/run/koderover-dog-food"
const (
// normal project names are not allowed to contain special characters, so we have a special project name to distinguish the enterprise workflow
EnterpriseProject = "DEPLOY_CENTER"
)
const (
JenkinsBuildJob = "jenkins-build"
)
const LocalConfig = "local.env"
const MaskValue = "********"
const MaxTries = 1
const ModernWorkflowType = "ModernWorkflow"
ModernWorkflowType 自由编排工作流
const (
NormalModeProduct = "normal"
)
const PMHostDefaultPort int64 = 22
const ProgressFile = "/var/log/job-progress"
const ProjectKeyRegEx = `^[a-z-\d]+$`
const (
RegExpParameter = `{{.(\w)+}}`
)
Yaml template constant
const RequestModeOpenAPI = "openAPI"
const (
S3DefaultRegion = "ap-shanghai"
)
S3 related constants
const (
SystemUser = "system"
)
const UpdateEnvTimeout = 60 * 5 * time.Second
Variables ¶
var ( // HighRequestSpec 16 CPU 32 G HighRequestSpec = RequestSpec{ CpuLimit: 16000, MemoryLimit: 32768, CpuReq: 4000, MemoryReq: 4096, } // MediumRequestSpec 8 CPU 16 G MediumRequestSpec = RequestSpec{ CpuLimit: 8000, MemoryLimit: 16384, CpuReq: 2000, MemoryReq: 2048, } // LowRequestSpec 4 CPU 8 G LowRequestSpec = RequestSpec{ CpuLimit: 4000, MemoryLimit: 8192, CpuReq: 1000, MemoryReq: 1024, } // MinRequestSpec 2 CPU 2 G MinRequestSpec = RequestSpec{ CpuLimit: 2000, MemoryLimit: 2048, CpuReq: 500, MemoryReq: 512, } // DefineRequest X CPU X G DefineRequestSpec = RequestSpec{} DefaultRequestSpec = RequestSpec{ CpuLimit: 4000, MemoryLimit: 8192, CpuReq: 1000, MemoryReq: 1024, } )
var ServiceVarWildCard = []string{"*"}
var Services = map[int]*ServiceInfo{ Aslan: { Name: "aslan", Port: 25000, }, Aslanx: { Name: "aslanx", Port: 25002, }, Clair: { Name: "clair", Port: 34002, }, Collie: { Name: "collie-server", Port: 28080, }, Cron: { Name: "cron", Port: 80, }, HubServer: { Name: "hub-server", Port: 26000, }, SonarQube: { Name: "sonarqube", Port: 80, }, WarpDrive: { Name: "warpdrive", Port: 80, }, Minio: { Name: "zadig-minio", Port: 9000, }, OPA: { Name: "opa", Port: 8181, }, Policy: { Name: "policy", Port: 80, }, Vendor: { Name: "plutus-vendor", Port: 29000, }, }
var ValidName = regexp.MustCompile(`^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$`)
var ValidNameHint = "a valid name must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character"
Functions ¶
This section is empty.
Types ¶
type K8SClusterStatus ¶ added in v1.7.1
type K8SClusterStatus string
const ( Disconnected K8SClusterStatus = "disconnected" Pending K8SClusterStatus = "pending" Normal K8SClusterStatus = "normal" Abnormal K8SClusterStatus = "abnormal" )
type PMHostStatus ¶ added in v1.9.9
type PMHostStatus string
const ( PMHostStatusNormal PMHostStatus = "normal" PMHostStatusAbnormal PMHostStatus = "abnormal" )
type Request ¶
type Request string
const ( // HighRequest 16 CPU 32 G HighRequest Request = "high" // MediumRequest 8 CPU 16 G MediumRequest Request = "medium" // LowRequest 4 CPU 8 G LowRequest Request = "low" // MinRequest 2 CPU 2 G MinRequest Request = "min" // DefaultRequest 4 CPU 8 G DefaultRequest Request = "default" // DefineRequest x CPU x G DefineRequest Request = "define" )
type RequestSpec ¶ added in v1.7.1
type RequestSpec struct { CpuLimit int `bson:"cpu_limit" json:"cpu_limit" yaml:"cpu_limit"` MemoryLimit int `bson:"memory_limit" json:"memory_limit" yaml:"memory_limit"` CpuReq int `bson:"cpu_req,omitempty" json:"cpu_req,omitempty" yaml:"cpu_req,omitempty"` MemoryReq int `bson:"memory_req,omitempty" json:"memory_req,omitempty" yaml:"memory_req,omitempty"` // gpu request, eg: "nvidia.com/gpu: 1" GpuLimit string `bson:"gpu_limit" json:"gpu_limit" yaml:"gpu_limit"` }
func (RequestSpec) Equal ¶ added in v1.9.9
func (spec RequestSpec) Equal(target RequestSpec) bool
func (RequestSpec) FindResourceRequestType ¶ added in v1.9.9
func (spec RequestSpec) FindResourceRequestType() Request
type ResetImagePolicyType ¶ added in v1.9.0
type ResetImagePolicyType string
const ( ResetImagePolicyTaskCompleted ResetImagePolicyType = "taskCompleted" ResetImagePolicyTaskCompletedOrder ResetImagePolicyType = "" ResetImagePolicyDeployFailed ResetImagePolicyType = "deployFailed" ResetImagePolicyTestFailed ResetImagePolicyType = "testFailed" )
type ResourceType ¶ added in v1.9.9
type ResourceType string
const ( ResourceTypeSystem ResourceType = "system" ResourceTypeCustom ResourceType = "custom" )
type ServiceInfo ¶ added in v1.3.0
type WorkflowCategory ¶ added in v1.9.9
type WorkflowCategory string
const ( CustomWorkflow WorkflowCategory = "" ReleaseWorkflow WorkflowCategory = "release" )