Documentation
¶
Index ¶
- Constants
- Variables
- func CompareRevision(ctx context.Context, rs1, rs2 *appsv1.ReplicaSet) bool
- type CD
- type ClusterPod
- type ClusterState
- type ClusterStateV2
- type ClusterVersion
- type CompactContainer
- type CompactPod
- type CompactPodMetadata
- type CompactPodSpec
- type CompactPodStatus
- type Container
- type ContainerDetail
- type ContainerState
- type ContainerStatus
- type CreateClusterParams
- type DeleteClusterParams
- type DeletePodsParams
- type DeployClusterParams
- type Event
- type ExecParams
- type ExecResp
- type ExecuteActionParams
- type GetClusterStateParams
- type GetClusterStateV2Params
- type GetContainerLogParams
- type GetPodEventsParams
- type GetPodParams
- type GetResourceTreeParams
- type GetStepParams
- type K8sUtil
- type LegacyCD
- type LifeCycleItem
- type OperationResult
- type PodMetadata
- type PodSpec
- type PodStatus
- type ResourceNode
- type ResourceTreeNode
- type Step
- type TraverseOperator
- type VolumeMount
Constants ¶
View Source
const ( DeploymentPodTemplateHash = "pod-template-hash" RolloutPodTemplateHash = "rollouts-pod-template-hash" )
View Source
const ( // PodLifeCycleSchedule specifies whether pod has been scheduled PodLifeCycleSchedule = "PodSchedule" // PodLifeCycleInitialize specifies whether all init containers have finished PodLifeCycleInitialize = "PodInitialize" // PodLifeCycleContainerStartup specifies whether the container has passed its startup probe PodLifeCycleContainerStartup = "ContainerStartup" // PodLifeCycleContainerOnline specified whether the container has passed its postStart hook PodLifeCycleContainerOnline = "ContainerOnline" // PodLifeCycleHealthCheck specifies whether the container has passed its readiness probe PodLifeCycleHealthCheck = "HealthCheck" // PodLifeCycleContainerPreStop specifies whether the container is executing preStop hook PodLifeCycleContainerPreStop = "PreStop" LifeCycleStatusSuccess = "Success" LifeCycleStatusWaiting = "Waiting" LifeCycleStatusRunning = "Running" LifeCycleStatusAbnormal = "Abnormal" PodErrCrashLoopBackOff = "CrashLoopBackOff" )
Variables ¶
View Source
var (
GKPod = schema.GroupKind{
Group: "",
Kind: "Pod",
}
)
Functions ¶
func CompareRevision ¶
func CompareRevision(ctx context.Context, rs1, rs2 *appsv1.ReplicaSet) bool
CompareRevision return true if rs1 is the newer one, return false otherwise.
Types ¶
type CD ¶
type CD interface {
CreateCluster(ctx context.Context, params *CreateClusterParams) error
DeployCluster(ctx context.Context, params *DeployClusterParams) error
DeleteCluster(ctx context.Context, params *DeleteClusterParams) error
GetClusterState(ctx context.Context, params *GetClusterStateV2Params) (*ClusterStateV2, error)
GetResourceTree(ctx context.Context, params *GetResourceTreeParams) ([]ResourceNode, error)
GetStep(ctx context.Context, params *GetStepParams) (*Step, error)
GetPodEvents(ctx context.Context, params *GetPodEventsParams) ([]Event, error)
}
func NewCD ¶
func NewCD(informerFactories *regioninformers.RegionInformers, clusterGitRepo gitrepo.ClusterGitRepo, argoCDMapper argocdconf.Mapper, regionArgoCDMapper argocdconf.RegionMapper, targetRevision string) CD
type ClusterPod ¶
type ClusterPod struct {
Metadata PodMetadata `json:"metadata,omitempty" yaml:"metadata,omitempty"`
Spec PodSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
Status PodStatus `json:"status,omitempty" yaml:"status,omitempty"`
DeletionTimestamp *metav1.Time `json:"deletionTimestamp,omitempty"`
}
ClusterPod pod detail
type ClusterState ¶
type ClusterState struct {
// Status:
// Processing
// Healthy
// Suspended
// Degraded
// Missing
// Unknown
Status health.HealthStatusCode `json:"status,omitempty" yaml:"status,omitempty"`
// Step
Step *Step `json:"step"`
// Replicas the actual number of replicas running in k8s
Replicas int `json:"replicas,omitempty" yaml:"replicas,omitempty"`
// DesiredReplicas desired replicas
DesiredReplicas *int `json:"desiredReplicas,omitempty" yaml:"desiredReplicas,omitempty"`
// PodTemplateHash
PodTemplateHash string `json:"podTemplateHash,omitempty" yaml:"podTemplateHash,omitempty"`
// PodTemplateHashKey label key from Deployment or Rollout
PodTemplateHashKey string `json:"podTemplateHashKey,omitempty" yaml:"podTemplateHashKey,omitempty"`
// Revision the desired revision
Revision string `json:"revision,omitempty" yaml:"revision,omitempty"`
// Versions versions detail
// key is pod-template-hash, if equal to PodTemplateHash, the version is the desired version
Versions map[string]*ClusterVersion `json:"versions,omitempty" yaml:"versions,omitempty"`
// ManualPaused indicates whether the cluster is in manual pause state
ManualPaused bool `json:"manualPaused" yaml:"manualPaused"`
}
ClusterState cluster state
type ClusterStateV2 ¶
type ClusterStateV2 struct {
Status string `json:"status"`
}
type ClusterVersion ¶
type ClusterVersion struct {
// Replicas the replicas of this revision
Replicas int `json:"replicas,omitempty" yaml:"replicas,omitempty"`
Revision string `json:"revision,omitempty" yaml:"revision,omitempty"`
// Pods the pods detail of this revision, the key is pod name
Pods map[string]*ClusterPod `json:"pods,omitempty" yaml:"pods,omitempty"`
}
ClusterVersion version information
type CompactContainer ¶
type CompactContainer struct {
Name string `json:"name"`
Image string `json:"image"`
ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`
}
func ContainerCompact ¶
func ContainerCompact(container corev1.Container) CompactContainer
type CompactPod ¶
type CompactPod struct {
Metadata CompactPodMetadata `json:"metadata"`
Spec CompactPodSpec `json:"spec"`
Status CompactPodStatus `json:"status"`
}
func Compact ¶
func Compact(pod corev1.Pod) CompactPod
type CompactPodMetadata ¶
type CompactPodMetadata struct {
Name string `json:"name"`
Namespace string `json:"namespace"`
CreationTimestamp metav1.Time `json:"creationTimestamp"`
DeletionTimestamp *metav1.Time `json:"deletionTimestamp"`
Labels map[string]string `json:"labels"`
Annotations map[string]string `json:"annotations"`
}
for pod compact
type CompactPodSpec ¶
type CompactPodSpec struct {
InitContainers []CompactContainer `json:"initContainers"`
Containers []CompactContainer `json:"containers"`
}
type CompactPodStatus ¶
type CompactPodStatus struct {
Phase corev1.PodPhase `json:"phase"`
Conditions []corev1.PodCondition `json:"conditions"`
PodIP string `json:"podIP"`
ContainerStatuses []corev1.ContainerStatus `json:"containerStatuses"`
}
type ContainerDetail ¶
type ContainerDetail struct {
// Name of the container.
Name string `json:"name"`
// Image URI of the container.
Image string `json:"image"`
// List of environment variables.
Env []corev1.EnvVar `json:"env"`
// Commands of the container
Commands []string `json:"commands"`
// Command arguments
Args []string `json:"args"`
// Information about mounted volumes
VolumeMounts []VolumeMount `json:"volumeMounts"`
// Security configuration that will be applied to a container.
SecurityContext *corev1.SecurityContext `json:"securityContext"`
// Status of a pod container
Status *corev1.ContainerStatus `json:"status"`
// Probes
LivenessProbe *corev1.Probe `json:"livenessProbe"`
ReadinessProbe *corev1.Probe `json:"readinessProbe"`
StartupProbe *corev1.Probe `json:"startupProbe"`
}
ContainerDetail represents more information about a container
type ContainerState ¶
type ContainerStatus ¶
type ContainerStatus struct {
Name string `json:"name,omitempty" yaml:"name,omitempty"`
Ready bool `json:"ready" yaml:"ready"`
RestartCount int32 `json:"restartCount"`
State ContainerState `json:"state" yaml:"state"`
ImageID string `json:"imageID" yaml:"imageID"`
}
type CreateClusterParams ¶
type CreateClusterParams struct {
Environment string
Cluster string
GitRepoURL string
ValueFiles []string
RegionEntity *regionmodels.RegionEntity
Namespace string
}
type DeleteClusterParams ¶
type DeletePodsParams ¶
type DeletePodsParams struct {
RegionEntity *regionmodels.RegionEntity
Namespace string
Pods []string
}
type DeployClusterParams ¶
type Event ¶
type Event struct {
Type string `json:"type" yaml:"type"`
Reason string `json:"reason,omitempty" yaml:"reason,omitempty"`
Message string `json:"message,omitempty" yaml:"message,omitempty"`
Count int32 `json:"count,omitempty" yaml:"count,omitempty"`
EventTimestamp metav1.Time `json:"eventTimestamp,omitempty" yaml:"eventTimestamp,omitempty"`
}
type ExecParams ¶
type ExecParams struct {
Commands []string
Environment string
Cluster string
RegionEntity *regionmodels.RegionEntity
Namespace string
PodList []string
}
type ExecuteActionParams ¶
type ExecuteActionParams struct {
RegionEntity *regionmodels.RegionEntity
Namespace string
Action string
GVR schema.GroupVersionResource
ResourceName string
ClusterID uint
}
type GetClusterStateParams ¶
type GetClusterStateParams struct {
Environment string
Cluster string
RegionEntity *regionmodels.RegionEntity
}
type GetClusterStateV2Params ¶
type GetClusterStateV2Params struct {
Application string
Environment string
Cluster string
RegionEntity *regionmodels.RegionEntity
}
type GetContainerLogParams ¶
type GetContainerLogParams struct {
RegionEntity *regionmodels.RegionEntity
Namespace string
Cluster string
Pod string
Container string
Environment string
TailLines int64
}
type GetPodEventsParams ¶
type GetPodEventsParams struct {
RegionEntity *regionmodels.RegionEntity
Environment string
Cluster string
Namespace string
Pod string
}
type GetPodParams ¶
type GetPodParams struct {
RegionEntity *regionmodels.RegionEntity
Cluster string
Namespace string
Pod string
}
type GetResourceTreeParams ¶
type GetResourceTreeParams struct {
Environment string
Cluster string
RegionEntity *regionmodels.RegionEntity
}
type GetStepParams ¶
type GetStepParams struct {
Environment string
Cluster string
RegionEntity *regionmodels.RegionEntity
}
type K8sUtil ¶
type K8sUtil interface {
Exec(ctx context.Context, params *ExecParams) (map[string]ExecResp, error)
DeletePods(ctx context.Context, params *DeletePodsParams) (map[string]OperationResult, error)
ExecuteAction(ctx context.Context, params *ExecuteActionParams) error
GetPodContainers(ctx context.Context, params *GetPodParams) ([]ContainerDetail, error)
GetPod(ctx context.Context, params *GetPodParams) (*corev1.Pod, error)
GetContainerLog(ctx context.Context, params *GetContainerLogParams) (<-chan string, error)
}
func NewK8sUtil ¶
func NewK8sUtil(factories *regioninformers.RegionInformers, mgr eventmanager.Manager) K8sUtil
type LegacyCD ¶
type LegacyCD interface {
CD
GetClusterStateV1(ctx context.Context, params *GetClusterStateParams) (*ClusterState, error)
}
nolint
type LifeCycleItem ¶
type OperationResult ¶
type PodMetadata ¶
type PodStatus ¶
type PodStatus struct {
HostIP string `json:"hostIP,omitempty" yaml:"hostIP,omitempty"`
PodIP string `json:"podIP,omitempty" yaml:"podIP,omitempty"`
Phase string `json:"phase,omitempty" yaml:"phase,omitempty"`
Events []Event `json:"events,omitempty" yaml:"events,omitempty"`
ContainerStatuses []*ContainerStatus `json:"containerStatuses,omitempty" yaml:"containerStatuses,omitempty"`
LifeCycle []*LifeCycleItem `json:"lifeCycle" yaml:"lifeCycle"`
}
type ResourceNode ¶
type ResourceNode struct {
applicationV1alpha1.ResourceNode
PodDetail *CompactPod
}
type ResourceTreeNode ¶
type ResourceTreeNode struct {
*applicationV1alpha1.ResourceNode
// contains filtered or unexported fields
}
type TraverseOperator ¶
type TraverseOperator func(node *ResourceTreeNode) bool
TraverseOperator stops if result is false
type VolumeMount ¶
type VolumeMount struct {
// Name of the variable.
Name string `json:"name"`
// Is the volume read only ?
ReadOnly bool `json:"readOnly"`
// Path within the container at which the volume should be mounted. Must not contain ':'.
MountPath string `json:"mountPath"`
// Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root).
SubPath string `json:"subPath"`
// Information about the Volume itself
Volume corev1.Volume `json:"volume"`
}
Click to show internal directories.
Click to hide internal directories.