v1

package
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2024 License: LGPL-3.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//RUNNING if stateful or deployment exist and ready pod number is equal to the service Replicas
	RUNNING = "running"
	//CLOSED if app service is not in store
	CLOSED = "closed"
	//STARTING if stateful or deployment exist and ready pod number is less than service Replicas
	STARTING = "starting"
	//STOPPING if stateful and deployment is nil and pod number is not 0
	STOPPING = "stopping"
	//ABNORMAL if stateful or deployment exist and ready pod number is less than service Replicas and all pod status is Error
	ABNORMAL = "abnormal"
	//SOMEABNORMAL if stateful or deployment exist and ready pod number is less than service Replicas and some pod status is Error
	SOMEABNORMAL = "some_abnormal"
	//UNKNOW indeterminacy status
	UNKNOW = "unknow"
	//UPGRADE if store have more than 1 app service
	UPGRADE = "upgrade"
	//BUILDING app service is building
	BUILDING = "building"
	//BUILDEFAILURE app service is build failure
	BUILDEFAILURE = "build_failure"
	//UNDEPLOY init status
	UNDEPLOY = "undeploy"
)
View Source
var WutongStatefuleLocalStorageClass = "wutongslsc"

WutongStatefuleLocalStorageClass wutong support statefulset app local volume

View Source
var WutongStatefuleShareStorageClass = "wutongsssc"

WutongStatefuleShareStorageClass wutong support statefulset app share volume

Functions

func GetInitStorageClass

func GetInitStorageClass() []*storagev1.StorageClass

GetInitStorageClass get init storageclass list

func GetReplicaSetVersion

func GetReplicaSetVersion(rs *v1.ReplicaSet) int

GetReplicaSetVersion get rs version

func IsPodNodeLost

func IsPodNodeLost(pod *corev1.Pod) bool

IsPodNodeLost node loss pod

func IsPodTerminated

func IsPodTerminated(pod *corev1.Pod) bool

IsPodTerminated Exception evicted pod

Types

type AbnormalInfo

type AbnormalInfo struct {
	ServiceID     string    `json:"service_id"`
	TenantEnvID   string    `json:"tenant_env_id"`
	ServiceAlias  string    `json:"service_alias"`
	PodName       string    `json:"pod_name"`
	ContainerName string    `json:"container_name"`
	Reason        string    `json:"reson"`
	Message       string    `json:"message"`
	CreateTime    time.Time `json:"create_time"`
	Count         int       `json:"count"`
}

AbnormalInfo pod Abnormal info Record the container exception exit information in pod.

func (AbnormalInfo) Hash

func (a AbnormalInfo) Hash() string

Hash get AbnormalInfo hash

func (AbnormalInfo) String

func (a AbnormalInfo) String() string

type AppService

type AppService struct {
	AppServiceBase

	BootSeqContainer *corev1.Container
	Logger           event.Logger

	UpgradePatch map[string][]byte
	CustomParams map[string]string
	// contains filtered or unexported fields
}

AppService a service of wutong app state in kubernetes

func (*AppService) AddEndpoints

func (a *AppService) AddEndpoints(ep *corev1.Endpoints)

AddEndpoints adds k8s endpoints to receiver *AppService.

func (*AppService) DelEndpoints

func (a *AppService) DelEndpoints(ep *corev1.Endpoints)

DelEndpoints deletes *corev1.Endpoints

func (*AppService) DelHPA

DelHPA -

func (*AppService) DeleteBetaIngress

func (a *AppService) DeleteBetaIngress(d *betav1.Ingress)

DeleteBetaIngress delete kubernetes networking v1beta1 ingress model

func (*AppService) DeleteClaim

func (a *AppService) DeleteClaim(claim *corev1.PersistentVolumeClaim)

DeleteClaim delete claim

func (*AppService) DeleteConfigMaps

func (a *AppService) DeleteConfigMaps(config *corev1.ConfigMap)

DeleteConfigMaps delete configmaps

func (*AppService) DeleteDeployment

func (a *AppService) DeleteDeployment(d *v1.Deployment)

DeleteDeployment delete kubernetes deployment model

func (*AppService) DeleteIngress

func (a *AppService) DeleteIngress(d *networkingv1.Ingress)

DeleteIngress delete kubernetes ingress model

func (*AppService) DeletePods

func (a *AppService) DeletePods(d *corev1.Pod)

DeletePods delete pod

func (*AppService) DeleteReplicaSet

func (a *AppService) DeleteReplicaSet(d *v1.ReplicaSet)

DeleteReplicaSet delete replicaset

func (*AppService) DeleteSecrets

func (a *AppService) DeleteSecrets(d *corev1.Secret)

DeleteSecrets set secrets

func (*AppService) DeleteServiceMonitor

func (a *AppService) DeleteServiceMonitor(sm *monitorv1.ServiceMonitor)

DeleteServiceMonitor delete service monitor

func (*AppService) DeleteServices

func (a *AppService) DeleteServices(service *corev1.Service)

DeleteServices delete service

func (*AppService) DeleteStatefulSet

func (a *AppService) DeleteStatefulSet(d *v1.StatefulSet)

DeleteStatefulSet set kubernetes statefulset model

func (*AppService) DeleteStorageClass

func (a *AppService) DeleteStorageClass(sc *storagev1.StorageClass)

DeleteStorageClass deelete storageclass

func (*AppService) DeleteWorkload

func (a *AppService) DeleteWorkload(workload client.Object)

DeleteWorkload delete component workload

func (*AppService) DistinguishPod

func (a *AppService) DistinguishPod(pod *corev1.Pod) bool

DistinguishPod uses replica set to distinguish between old and new pods true: new pod; false: old pod.

func (*AppService) GetCPURequest

func (a *AppService) GetCPURequest() (res int64)

GetCPURequest get component cpu request

func (*AppService) GetClaims

func (a *AppService) GetClaims() []*corev1.PersistentVolumeClaim

GetClaims get claims

func (*AppService) GetClaimsManually

func (a *AppService) GetClaimsManually() []*corev1.PersistentVolumeClaim

GetClaimsManually get claims

func (*AppService) GetCommonLabels

func (a *AppService) GetCommonLabels(labels ...map[string]string) map[string]string

GetCommonLabels get common labels

func (*AppService) GetConfigMaps

func (a *AppService) GetConfigMaps() []*corev1.ConfigMap

GetConfigMaps get configmaps

func (*AppService) GetCurrentReplicaSet

func (a *AppService) GetCurrentReplicaSet() *v1.ReplicaSet

GetCurrentReplicaSet get current replicaset

func (*AppService) GetDelHPAs

GetDelHPAs -

func (*AppService) GetDelIngs

func (a *AppService) GetDelIngs() ([]*networkingv1.Ingress, []*betav1.Ingress)

GetDelIngs gets delIngs which need to be deleted

func (*AppService) GetDelSecrets

func (a *AppService) GetDelSecrets() []*corev1.Secret

GetDelSecrets get delSecrets which need to be deleted

func (*AppService) GetDelServices

func (a *AppService) GetDelServices() []*corev1.Service

GetDelServices returns services that need to be deleted.

func (AppService) GetDeployment

func (a AppService) GetDeployment() *v1.Deployment

GetDeployment get kubernetes deployment model

func (*AppService) GetEndpoints

func (a *AppService) GetEndpoints(canCopy bool) []*corev1.Endpoints

GetEndpoints returns endpoints in AppService

func (*AppService) GetEndpointsByName

func (a *AppService) GetEndpointsByName(name string) *corev1.Endpoints

GetEndpointsByName returns endpoints in AppService

func (*AppService) GetEnvVarSecrets

func (a *AppService) GetEnvVarSecrets(canCopy bool) []*corev1.Secret

GetEnvVarSecrets -

func (*AppService) GetHPAs

GetHPAs -

func (*AppService) GetIngress

func (a *AppService) GetIngress(canCopy bool) ([]*networkingv1.Ingress, []*betav1.Ingress)

GetIngress get ingress

func (*AppService) GetManifests

func (a *AppService) GetManifests() []*unstructured.Unstructured

GetManifests get component custom manifest

func (*AppService) GetMemoryRequest

func (a *AppService) GetMemoryRequest() (res int64)

GetMemoryRequest get component memory request

func (*AppService) GetNamespace

func (a *AppService) GetNamespace() string

GetNamespace get tenant env namespace name

func (*AppService) GetNewestReplicaSet

func (a *AppService) GetNewestReplicaSet() (newest *v1.ReplicaSet)

GetNewestReplicaSet returns the newest replica set.

func (*AppService) GetPodTemplate

func (a *AppService) GetPodTemplate() *corev1.PodTemplateSpec

GetPodTemplate get pod template

func (*AppService) GetPods

func (a *AppService) GetPods(canCopy bool) []*corev1.Pod

GetPods get pods

func (*AppService) GetPodsByName

func (a *AppService) GetPodsByName(podname string) *corev1.Pod

GetPodsByName returns the pod based on podname.

func (*AppService) GetReadyReplicas

func (a *AppService) GetReadyReplicas() int32

GetReadyReplicas get already ready pod number

func (*AppService) GetReplicaSets

func (a *AppService) GetReplicaSets() []*v1.ReplicaSet

GetReplicaSets get replicaset

func (*AppService) GetRunningVersion

func (a *AppService) GetRunningVersion() string

GetRunningVersion get running version

func (*AppService) GetSecrets

func (a *AppService) GetSecrets(canCopy bool) []*corev1.Secret

GetSecrets get secrets

func (*AppService) GetServiceMonitors

func (a *AppService) GetServiceMonitors(canCopy bool) []*monitorv1.ServiceMonitor

GetServiceMonitors -

func (*AppService) GetServiceStatus

func (a *AppService) GetServiceStatus() string

GetServiceStatus get service status

func (*AppService) GetServices

func (a *AppService) GetServices(canCopy bool) []*corev1.Service

GetServices get services

func (AppService) GetStatefulSet

func (a AppService) GetStatefulSet() *v1.StatefulSet

GetStatefulSet get kubernetes statefulset model

func (*AppService) GetTenantEnv added in v1.1.0

func (a *AppService) GetTenantEnv() *corev1.Namespace

GetTenantEnv get tenant env namespace

func (*AppService) GetWorkload

func (a *AppService) GetWorkload() client.Object

GetWorkload get component workload

func (*AppService) IsClosed

func (a *AppService) IsClosed() bool

IsClosed is closed

func (*AppService) IsEmpty

func (a *AppService) IsEmpty() bool

IsEmpty is empty

func (*AppService) IsWaitting

func (a *AppService) IsWaitting() bool

IsWaitting service status is waitting init container init-probe is running

func (*AppService) Ready

func (a *AppService) Ready() bool

Ready Whether ready

func (*AppService) SetAllSecrets

func (a *AppService) SetAllSecrets(secrets []*corev1.Secret)

SetAllSecrets sets secrets

func (*AppService) SetClaim

func (a *AppService) SetClaim(claim *corev1.PersistentVolumeClaim)

SetClaim set claim

func (*AppService) SetClaimManually

func (a *AppService) SetClaimManually(claim *corev1.PersistentVolumeClaim)

SetClaimManually sets claim that needs to be created manually.

func (*AppService) SetConfigMap

func (a *AppService) SetConfigMap(d *corev1.ConfigMap)

SetConfigMap set kubernetes configmap model

func (*AppService) SetDeletedResources

func (a *AppService) SetDeletedResources(old *AppService)

SetDeletedResources sets the resources that need to be deleted

func (*AppService) SetDeployment

func (a *AppService) SetDeployment(d *v1.Deployment)

SetDeployment set kubernetes deployment model

func (*AppService) SetEnvVarSecrets

func (a *AppService) SetEnvVarSecrets(secrets []*corev1.Secret)

SetEnvVarSecrets -

func (*AppService) SetHPA

SetHPA -

func (*AppService) SetHPAs

func (a *AppService) SetHPAs(hpas []*autoscalingv1.HorizontalPodAutoscaler)

SetHPAs -

func (*AppService) SetIngress

func (a *AppService) SetIngress(d interface{})

SetIngress set kubernetes ingress model

func (*AppService) SetIngresses

func (a *AppService) SetIngresses(i []*networkingv1.Ingress)

SetIngresses sets k8s ingress list

func (*AppService) SetManifests

func (a *AppService) SetManifests(manifests []*unstructured.Unstructured)

SetManifests get component custom manifest

func (*AppService) SetPodTemplate

func (a *AppService) SetPodTemplate(d corev1.PodTemplateSpec)

SetPodTemplate set pod template spec

func (*AppService) SetPods

func (a *AppService) SetPods(d *corev1.Pod)

SetPods set pod

func (*AppService) SetReplicaSets

func (a *AppService) SetReplicaSets(d *v1.ReplicaSet)

SetReplicaSets set kubernetes replicaset

func (*AppService) SetSecret

func (a *AppService) SetSecret(d *corev1.Secret)

SetSecret set srcrets

func (*AppService) SetSecrets

func (a *AppService) SetSecrets(s []*corev1.Secret)

SetSecrets sets k8s secret list

func (*AppService) SetService

func (a *AppService) SetService(d *corev1.Service)

SetService set kubernetes service model

func (*AppService) SetServiceMonitor

func (a *AppService) SetServiceMonitor(sm *monitorv1.ServiceMonitor)

SetServiceMonitor -

func (*AppService) SetServices

func (a *AppService) SetServices(svcs []*corev1.Service)

SetServices set set k8s service model list

func (*AppService) SetStatefulSet

func (a *AppService) SetStatefulSet(d *v1.StatefulSet)

SetStatefulSet set kubernetes statefulset model

func (*AppService) SetStorageClass

func (a *AppService) SetStorageClass(sc *storagev1.StorageClass)

SetStorageClass set storageclass

func (*AppService) SetTenantEnv added in v1.1.0

func (a *AppService) SetTenantEnv(d *corev1.Namespace)

SetTenantEnv set tenantEnv

func (*AppService) SetUpgradePatch

func (a *AppService) SetUpgradePatch(new *AppService) error

SetUpgradePatch create and set upgrade pathch for deployment and statefulset

func (*AppService) SetWorkload

func (a *AppService) SetWorkload(workload client.Object)

SetWorkload set component workload

func (*AppService) String

func (a *AppService) String() string

func (*AppService) UpgradeComlete

func (a *AppService) UpgradeComlete() bool

UpgradeComlete upgrade comlete

type AppServiceBase

type AppServiceBase struct {
	TenantEnvID   string
	TenantEnvName string
	AppID         string
	ServiceID     string
	ServiceAlias  string
	ServiceType   AppServiceType
	ServiceKind   dbmodel.ServiceKind

	DeployVersion          string
	ContainerRequestCPU    int
	ContainerCPU           int
	ContainerRequestMemory int
	ContainerMemory        int
	ContainerGPUType       string
	ContainerGPU           int
	UpgradeMethod          TypeUpgradeMethod
	Replicas               int
	NeedProxy              bool
	IsWindowsService       bool
	CreaterID              string
	//depend all service id
	Dependces        []string
	ExtensionSet     map[string]string
	GovernanceMode   string
	K8sApp           string
	K8sComponentName string
	// contains filtered or unexported fields
}

AppServiceBase app service base info

func (AppServiceBase) GetComponentDefinitionName

func (a AppServiceBase) GetComponentDefinitionName() string

GetComponentDefinitionName get component definition name by component kind

func (*AppServiceBase) GetK8sWorkloadName

func (a *AppServiceBase) GetK8sWorkloadName() string

SetDiscoveryCfg -

func (AppServiceBase) IsCustomComponent

func (a AppServiceBase) IsCustomComponent() bool

IsCustomComponent -

func (AppServiceBase) IsThirdComponent

func (a AppServiceBase) IsThirdComponent() bool

IsThirdComponent -

func (*AppServiceBase) SetDiscoveryCfg

func (a *AppServiceBase) SetDiscoveryCfg(discoveryCfg *dbmodel.ThirdPartySvcDiscoveryCfg)

SetDiscoveryCfg -

type AppServiceStatus

type AppServiceStatus string

AppServiceStatus the status of service, calculate in real time from kubernetes

type AppServiceType

type AppServiceType string

AppServiceType the deploy type of service.

var TypeDeployment AppServiceType = "deployment"

TypeDeployment deployment

var TypeReplicationController AppServiceType = "replicationcontroller"

TypeReplicationController rc

var TypeStatefulSet AppServiceType = "statefulset"

TypeStatefulSet statefulset

type CacheKey

type CacheKey string

CacheKey app cache key

func GetCacheKeyOnlyServiceID

func GetCacheKeyOnlyServiceID(serviceID string) CacheKey

GetCacheKeyOnlyServiceID get cache key only service id

func (CacheKey) Equal

func (c CacheKey) Equal(end CacheKey) bool

Equal cache key serviceid and version and createID Equal

type EncodeNode

type EncodeNode struct {
	Field map[string]EncodeNode
	// contains filtered or unexported fields
}

EncodeNode encode node

func (*EncodeNode) Contrast

func (e *EncodeNode) Contrast(endpoint *EncodeNode) bool

Contrast Compare value

func (*EncodeNode) GetChange

func (e *EncodeNode) GetChange(endpoint *EncodeNode) *EncodeNode

GetChange get change fields

func (*EncodeNode) MarshalJSON

func (e *EncodeNode) MarshalJSON() ([]byte, error)

MarshalJSON custom marshal json

func (*EncodeNode) UnmarshalJSON

func (e *EncodeNode) UnmarshalJSON(code []byte) error

UnmarshalJSON custom yaml decoder

type Event

type Event struct {
	Type    EventType
	Sid     string // service id
	Port    int
	IsInner bool
}

Event holds the context of a start event.

type EventType

type EventType string

EventType type of event

const (
	// StartEvent event about to start third-party service
	StartEvent EventType = "START"
	// StopEvent event about to stop third-party service
	StopEvent EventType = "STOP"
)

type K8sResources

type K8sResources struct {
	Services  []*corev1.Service
	Secrets   []*corev1.Secret
	Ingresses []interface{}
}

K8sResources holds kubernetes resources(svc, sercert, ep, ing).

type PodResource

type PodResource struct {
	MemoryRequest int64
	MemoryLimit   int64
	CPURequest    int64
	CPULimit      int64
	NodeName      string
}

PodResource resource struct

func CalculatePodResource

func CalculatePodResource(pod *corev1.Pod) *PodResource

CalculatePodResource calculate pod resource

type TenantEnvResource added in v1.1.0

type TenantEnvResource struct {
	TenantEnvID      string `json:"tenant_env_id,omitempty"`
	CPURequest       int64  `json:"cpu_request,omitempty"`
	CPULimit         int64  `json:"cpu_limit,omitempty"`
	MemoryRequest    int64  `json:"memory_request,omitempty"`
	MemoryLimit      int64  `json:"memory_limit,omitempty"`
	UnscdCPUReq      int64  `json:"unscd_cpu_req,omitempty"`
	UnscdCPULimit    int64  `json:"unscd_cpu_limit,omitempty"`
	UnscdMemoryReq   int64  `json:"unscd_memory_req,omitempty"`
	UnscdMemoryLimit int64  `json:"unscd_memory_limit,omitempty"`
}

TenantEnvResource tenant env resource statistical models

type TypeUpgradeMethod

type TypeUpgradeMethod string

TypeUpgradeMethod upgrade service method type

var OnDelete TypeUpgradeMethod = "OnDelete"

OnDelete Stop the old version before starting the new version the upgrade

var Rolling TypeUpgradeMethod = "Rolling"

Rolling Start the new version before stoping the old version the rolling upgrade

type WtEndpoint

type WtEndpoint struct {
	UUID     string `json:"uuid"`
	Sid      string `json:"sid"`
	IP       string `json:"ip"`
	Port     int    `json:"port"`
	Status   string `json:"status"`
	IsOnline bool   `json:"is_online"`
	Action   string `json:"action"`
	IsDomain bool   `json:"is_domain"`
}

WtEndpoint hold information to create k8s endpoints.

func (*WtEndpoint) Equal

func (l1 *WtEndpoint) Equal(l2 *WtEndpoint) bool

Equal tests for equality between two WtEndpoint types

type WtEndpoints

type WtEndpoints struct {
	Port        int      `json:"port"`
	IPs         []string `json:"ips"`
	NotReadyIPs []string `json:"not_ready_ips"`
}

WtEndpoints is a collection of WtEndpoint.

Jump to

Keyboard shortcuts

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