Documentation ¶
Index ¶
- Constants
- Variables
- func AddTwoResourceList(oldResourceList corev1.ResourceList, newResourceList corev1.ResourceList) corev1.ResourceList
- func CheckEvictionSupport(clientset kubernetes.Interface) (schema.GroupVersion, error)
- func DeletePod(pod corev1.Pod, k8sClientSet *kubernetes.Clientset, ...) error
- func EvictPod(pod corev1.Pod, k8sClientSet *kubernetes.Clientset, ...) error
- type BatchResourceResponse
- type ClusterCapacityDetail
- type ClusterCronService
- type ClusterCronServiceImpl
- type ClusterStatusConfig
- type DevtronAppIdentifier
- type K8sApplicationRestHandler
- type K8sApplicationRestHandlerImpl
- func (handler *K8sApplicationRestHandlerImpl) ApplyResources(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) CreateResource(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) DeleteResource(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetAllApiResources(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetHostUrlsByBatch(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetPodLogs(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetResource(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetResourceInfo(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetResourceList(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) GetTerminalSession(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) ListEvents(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) RotatePod(w http.ResponseWriter, r *http.Request)
- func (handler *K8sApplicationRestHandlerImpl) UpdateResource(w http.ResponseWriter, r *http.Request)
- type K8sApplicationRouter
- type K8sApplicationRouterImpl
- type K8sApplicationService
- type K8sApplicationServiceConfig
- type K8sApplicationServiceImpl
- func (impl *K8sApplicationServiceImpl) ApplyResources(ctx context.Context, token string, request *application.ApplyResourcesRequest, ...) ([]*application.ApplyResourcesResponse, error)
- func (impl *K8sApplicationServiceImpl) CreateResource(ctx context.Context, request *ResourceRequestBean) (*application.ManifestResponse, error)
- func (impl *K8sApplicationServiceImpl) DecodeDevtronAppId(applicationId string) (*DevtronAppIdentifier, error)
- func (impl *K8sApplicationServiceImpl) DeleteResource(ctx context.Context, request *ResourceRequestBean, userId int32) (*application.ManifestResponse, error)
- func (impl *K8sApplicationServiceImpl) FetchConnectionStatusForCluster(k8sClientSet *kubernetes.Clientset, clusterId int) error
- func (impl *K8sApplicationServiceImpl) FilterServiceAndIngress(ctx context.Context, resourceTree map[string]interface{}, ...) []ResourceRequestBean
- func (impl *K8sApplicationServiceImpl) GetAllApiResources(ctx context.Context, clusterId int, isSuperAdmin bool, userId int32) (*application.GetAllApiResourcesResponse, error)
- func (impl *K8sApplicationServiceImpl) GetManifestsByBatch(ctx context.Context, requests []ResourceRequestBean) ([]BatchResourceResponse, error)
- func (impl *K8sApplicationServiceImpl) GetPodLogs(ctx context.Context, request *ResourceRequestBean) (io.ReadCloser, error)
- func (impl *K8sApplicationServiceImpl) GetResource(ctx context.Context, request *ResourceRequestBean) (*application.ManifestResponse, error)
- func (impl *K8sApplicationServiceImpl) GetResourceInfo(ctx context.Context) (*ResourceInfo, error)
- func (impl *K8sApplicationServiceImpl) GetResourceList(ctx context.Context, token string, request *ResourceRequestBean, ...) (*util.ClusterResourceListMap, error)
- func (impl *K8sApplicationServiceImpl) GetRestConfigByClusterId(ctx context.Context, clusterId int) (*rest.Config, error)
- func (impl *K8sApplicationServiceImpl) GetUrlsByBatch(ctx context.Context, resp []BatchResourceResponse) []interface{}
- func (impl *K8sApplicationServiceImpl) ListEvents(ctx context.Context, request *ResourceRequestBean) (*application.EventsResponse, error)
- func (impl *K8sApplicationServiceImpl) RotatePods(ctx context.Context, request *RotatePodRequest) (*RotatePodResponse, error)
- func (impl *K8sApplicationServiceImpl) UpdateResource(ctx context.Context, request *ResourceRequestBean) (*application.ManifestResponse, error)
- func (impl *K8sApplicationServiceImpl) ValidateClusterResourceBean(ctx context.Context, clusterId int, manifest unstructured.Unstructured, ...) bool
- func (impl *K8sApplicationServiceImpl) ValidateClusterResourceRequest(ctx context.Context, clusterResourceRequest *ResourceRequestBean, ...) (bool, error)
- func (impl *K8sApplicationServiceImpl) ValidatePodLogsRequestQuery(r *http.Request) (*ResourceRequestBean, error)
- func (impl *K8sApplicationServiceImpl) ValidateResourceRequest(ctx context.Context, appIdentifier *client.AppIdentifier, ...) (bool, error)
- func (impl *K8sApplicationServiceImpl) ValidateTerminalRequestQuery(r *http.Request) (*terminal.TerminalSessionRequest, *ResourceRequestBean, error)
- type K8sCapacityRestHandler
- type K8sCapacityRestHandlerImpl
- func (handler *K8sCapacityRestHandlerImpl) CheckRbacForCluster(cluster *cluster.ClusterBean, token string) (authenticated bool, err error)
- func (handler *K8sCapacityRestHandlerImpl) CordonOrUnCordonNode(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) DeleteNode(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) DrainNode(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) EditNodeTaints(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) GetClusterDetail(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) GetClusterListRaw(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) GetClusterListWithDetail(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) GetNodeDetail(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) GetNodeList(w http.ResponseWriter, r *http.Request)
- func (handler *K8sCapacityRestHandlerImpl) UpdateNodeManifest(w http.ResponseWriter, r *http.Request)
- type K8sCapacityRouter
- type K8sCapacityRouterImpl
- type K8sCapacityService
- type K8sCapacityServiceImpl
- func (impl *K8sCapacityServiceImpl) CordonOrUnCordonNode(ctx context.Context, request *NodeUpdateRequestDto) (string, error)
- func (impl *K8sCapacityServiceImpl) DeleteNode(ctx context.Context, request *NodeUpdateRequestDto) (*application.ManifestResponse, error)
- func (impl *K8sCapacityServiceImpl) DrainNode(ctx context.Context, request *NodeUpdateRequestDto) (string, error)
- func (impl *K8sCapacityServiceImpl) EditNodeTaints(ctx context.Context, request *NodeUpdateRequestDto) (string, error)
- func (impl *K8sCapacityServiceImpl) GetClusterCapacityDetail(ctx context.Context, cluster *cluster.ClusterBean, callForList bool) (*ClusterCapacityDetail, error)
- func (impl *K8sCapacityServiceImpl) GetClusterCapacityDetailList(ctx context.Context, clusters []*cluster.ClusterBean) ([]*ClusterCapacityDetail, error)
- func (impl *K8sCapacityServiceImpl) GetNode(ctx context.Context, clusterId int, nodeName string) (*corev1.Node, error)
- func (impl *K8sCapacityServiceImpl) GetNodeCapacityDetailByNameAndCluster(ctx context.Context, cluster *cluster.ClusterBean, name string) (*NodeCapacityDetail, error)
- func (impl *K8sCapacityServiceImpl) GetNodeCapacityDetailsListByCluster(ctx context.Context, cluster *cluster.ClusterBean) ([]*NodeCapacityDetail, error)
- func (impl *K8sCapacityServiceImpl) UpdateNodeManifest(ctx context.Context, request *NodeUpdateRequestDto) (*application.ManifestResponse, error)
- type LabelAnnotationTaintObject
- type NodeCapacityDetail
- type NodeConditionObject
- type NodeCordonHelper
- type NodeDetails
- type NodeDrainHelper
- type NodeUpdateRequestDto
- type PodCapacityDetail
- type PodDelete
- type PodDeleteList
- type PodDeleteStatus
- type PodFilter
- type ResourceDetailObject
- type ResourceInfo
- type ResourceRequestBean
- type Response
- type RotatePodRequest
- type RotatePodResourceResponse
- type RotatePodResponse
Constants ¶
const ( // App Type Identifiers DevtronAppType = 0 // Identifier for Devtron Apps HelmAppType = 1 // Identifier for Helm Apps // Deployment Type Identifiers HelmInstalledType = 0 // Identifier for Helm deployment ArgoInstalledType = 1 // Identifier for ArgoCD deployment )
const ( Kibibyte = 1024 Mebibyte = 1024 * 1024 Gibibyte = 1024 * 1024 * 1024 Megabyte = 1000 * 1000 Gigabyte = 1000 * 1000 * 1000 )
const ( AWSNodeGroupLabel = "alpha.eksctl.io/nodegroup-name" AzureNodeGroupLabel = "kubernetes.azure.com/agentpool" GcpNodeGroupLabel = "cloud.google.com/gke-nodepool" KopsNodeGroupLabel = "kops.k8s.io/instancegroup" AWSEKSNodeGroupLabel = "eks.amazonaws.com/nodegroup" )
below const set is used for pod filters
const ( // PodDeleteStatusTypeOkay is "Okay" PodDeleteStatusTypeOkay = "Okay" // PodDeleteStatusTypeSkip is "Skip" PodDeleteStatusTypeSkip = "Skip" // PodDeleteStatusTypeWarning is "Warning" PodDeleteStatusTypeWarning = "Warning" // PodDeleteStatusTypeError is "Error" PodDeleteStatusTypeError = "Error" )
below const set is used for pod delete status
const ( // EvictionKind represents the kind of evictions object EvictionKind = "Eviction" // EvictionSubresource represents the kind of evictions object as pod's subresource EvictionSubresource = "pods/eviction" )
const (
DEFAULT_CLUSTER = "default_cluster"
)
const DEFAULT_NAMESPACE = "default"
const EVENT_K8S_KIND = "Event"
const LIST_VERB = "list"
Variables ¶
var K8sApplicationWireSet = wire.NewSet( NewK8sApplicationRouterImpl, wire.Bind(new(K8sApplicationRouter), new(*K8sApplicationRouterImpl)), NewK8sApplicationRestHandlerImpl, wire.Bind(new(K8sApplicationRestHandler), new(*K8sApplicationRestHandlerImpl)), NewK8sApplicationServiceImpl, wire.Bind(new(K8sApplicationService), new(*K8sApplicationServiceImpl)), application2.NewK8sClientServiceImpl, wire.Bind(new(application2.K8sClientService), new(*application2.K8sClientServiceImpl)), terminal.NewTerminalSessionHandlerImpl, wire.Bind(new(terminal.TerminalSessionHandler), new(*terminal.TerminalSessionHandlerImpl)), NewK8sCapacityRouterImpl, wire.Bind(new(K8sCapacityRouter), new(*K8sCapacityRouterImpl)), NewK8sCapacityRestHandlerImpl, wire.Bind(new(K8sCapacityRestHandler), new(*K8sCapacityRestHandlerImpl)), NewK8sCapacityServiceImpl, wire.Bind(new(K8sCapacityService), new(*K8sCapacityServiceImpl)), informer.NewGlobalMapClusterNamespace, informer.NewK8sInformerFactoryImpl, wire.Bind(new(informer.K8sInformerFactory), new(*informer.K8sInformerFactoryImpl)), NewClusterCronServiceImpl, wire.Bind(new(ClusterCronService), new(*ClusterCronServiceImpl)), )
var NodeGroupLabels = [5]string{AWSNodeGroupLabel, AzureNodeGroupLabel, GcpNodeGroupLabel, KopsNodeGroupLabel, AWSEKSNodeGroupLabel}
TODO: add any new nodeGrouplabel in this array
Functions ¶
func AddTwoResourceList ¶ added in v0.4.24
func AddTwoResourceList(oldResourceList corev1.ResourceList, newResourceList corev1.ResourceList) corev1.ResourceList
func CheckEvictionSupport ¶ added in v0.6.10
func CheckEvictionSupport(clientset kubernetes.Interface) (schema.GroupVersion, error)
CheckEvictionSupport uses Discovery API to find out if the server support eviction subresource If support, it will return its groupVersion; Otherwise, it will return an empty GroupVersion
func DeletePod ¶ added in v0.6.10
func DeletePod(pod corev1.Pod, k8sClientSet *kubernetes.Clientset, deleteOptions v1.DeleteOptions) error
DeletePod will delete the given pod, or return an error if it couldn't
func EvictPod ¶ added in v0.6.10
func EvictPod(pod corev1.Pod, k8sClientSet *kubernetes.Clientset, evictionGroupVersion schema.GroupVersion, deleteOptions v1.DeleteOptions) error
EvictPod will evict the given pod, or return an error if it couldn't
Types ¶
type BatchResourceResponse ¶ added in v0.6.4
type BatchResourceResponse struct { ManifestResponse *application.ManifestResponse Err error }
type ClusterCapacityDetail ¶ added in v0.4.24
type ClusterCapacityDetail struct { Id int `json:"id,omitempty"` Name string `json:"name,omitempty"` ErrorInConnection string `json:"errorInNodeListing,omitempty"` NodeCount int `json:"nodeCount,omitempty"` NodeDetails []NodeDetails `json:"nodeDetails"` NodeErrors map[corev1.NodeConditionType][]string `json:"nodeErrors"` NodeK8sVersions []string `json:"nodeK8sVersions"` ServerVersion string `json:"serverVersion,omitempty"` Cpu *ResourceDetailObject `json:"cpu"` Memory *ResourceDetailObject `json:"memory"` IsVirtualCluster bool `json:"isVirtualCluster"` }
type ClusterCronService ¶ added in v0.4.24
type ClusterCronService interface { }
type ClusterCronServiceImpl ¶ added in v0.4.24
type ClusterCronServiceImpl struct {
// contains filtered or unexported fields
}
func NewClusterCronServiceImpl ¶ added in v0.4.24
func NewClusterCronServiceImpl(logger *zap.SugaredLogger, clusterService cluster.ClusterService, k8sApplicationService K8sApplicationService, clusterRepository clusterRepository.ClusterRepository) (*ClusterCronServiceImpl, error)
func (*ClusterCronServiceImpl) GetAndUpdateClusterConnectionStatus ¶ added in v0.4.24
func (impl *ClusterCronServiceImpl) GetAndUpdateClusterConnectionStatus()
type ClusterStatusConfig ¶ added in v0.6.9
type ClusterStatusConfig struct {
ClusterStatusCronTime int `env:"CLUSTER_STATUS_CRON_TIME" envDefault:"15"`
}
type DevtronAppIdentifier ¶ added in v0.6.18
type K8sApplicationRestHandler ¶
type K8sApplicationRestHandler interface { GetResource(w http.ResponseWriter, r *http.Request) CreateResource(w http.ResponseWriter, r *http.Request) UpdateResource(w http.ResponseWriter, r *http.Request) DeleteResource(w http.ResponseWriter, r *http.Request) ListEvents(w http.ResponseWriter, r *http.Request) GetPodLogs(w http.ResponseWriter, r *http.Request) GetTerminalSession(w http.ResponseWriter, r *http.Request) GetResourceInfo(w http.ResponseWriter, r *http.Request) GetHostUrlsByBatch(w http.ResponseWriter, r *http.Request) GetAllApiResources(w http.ResponseWriter, r *http.Request) GetResourceList(w http.ResponseWriter, r *http.Request) ApplyResources(w http.ResponseWriter, r *http.Request) RotatePod(w http.ResponseWriter, r *http.Request) }
type K8sApplicationRestHandlerImpl ¶
type K8sApplicationRestHandlerImpl struct {
// contains filtered or unexported fields
}
func NewK8sApplicationRestHandlerImpl ¶
func NewK8sApplicationRestHandlerImpl(logger *zap.SugaredLogger, k8sApplicationService K8sApplicationService, pump connector.Pump, terminalSessionHandler terminal.TerminalSessionHandler, enforcer casbin.Enforcer, enforcerUtilHelm rbac.EnforcerUtilHelm, enforcerUtil rbac.EnforcerUtil, helmAppService client.HelmAppService, userService user.UserService) *K8sApplicationRestHandlerImpl
func (*K8sApplicationRestHandlerImpl) ApplyResources ¶ added in v0.6.11
func (handler *K8sApplicationRestHandlerImpl) ApplyResources(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) CreateResource ¶
func (handler *K8sApplicationRestHandlerImpl) CreateResource(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) DeleteResource ¶
func (handler *K8sApplicationRestHandlerImpl) DeleteResource(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetAllApiResources ¶ added in v0.6.11
func (handler *K8sApplicationRestHandlerImpl) GetAllApiResources(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetHostUrlsByBatch ¶ added in v0.6.4
func (handler *K8sApplicationRestHandlerImpl) GetHostUrlsByBatch(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetPodLogs ¶
func (handler *K8sApplicationRestHandlerImpl) GetPodLogs(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetResource ¶
func (handler *K8sApplicationRestHandlerImpl) GetResource(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetResourceInfo ¶ added in v0.4.0
func (handler *K8sApplicationRestHandlerImpl) GetResourceInfo(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetResourceList ¶ added in v0.6.11
func (handler *K8sApplicationRestHandlerImpl) GetResourceList(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) GetTerminalSession ¶
func (handler *K8sApplicationRestHandlerImpl) GetTerminalSession(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) ListEvents ¶
func (handler *K8sApplicationRestHandlerImpl) ListEvents(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) RotatePod ¶ added in v0.6.17
func (handler *K8sApplicationRestHandlerImpl) RotatePod(w http.ResponseWriter, r *http.Request)
func (*K8sApplicationRestHandlerImpl) UpdateResource ¶
func (handler *K8sApplicationRestHandlerImpl) UpdateResource(w http.ResponseWriter, r *http.Request)
type K8sApplicationRouter ¶
type K8sApplicationRouterImpl ¶
type K8sApplicationRouterImpl struct {
// contains filtered or unexported fields
}
func NewK8sApplicationRouterImpl ¶
func NewK8sApplicationRouterImpl(k8sApplicationRestHandler K8sApplicationRestHandler) *K8sApplicationRouterImpl
func (*K8sApplicationRouterImpl) InitK8sApplicationRouter ¶
func (impl *K8sApplicationRouterImpl) InitK8sApplicationRouter(k8sAppRouter *mux.Router)
type K8sApplicationService ¶
type K8sApplicationService interface { ValidatePodLogsRequestQuery(r *http.Request) (*ResourceRequestBean, error) ValidateTerminalRequestQuery(r *http.Request) (*terminal.TerminalSessionRequest, *ResourceRequestBean, error) DecodeDevtronAppId(applicationId string) (*DevtronAppIdentifier, error) GetResource(ctx context.Context, request *ResourceRequestBean) (resp *application.ManifestResponse, err error) CreateResource(ctx context.Context, request *ResourceRequestBean) (resp *application.ManifestResponse, err error) UpdateResource(ctx context.Context, request *ResourceRequestBean) (resp *application.ManifestResponse, err error) DeleteResource(ctx context.Context, request *ResourceRequestBean, userId int32) (resp *application.ManifestResponse, err error) ListEvents(ctx context.Context, request *ResourceRequestBean) (*application.EventsResponse, error) GetPodLogs(ctx context.Context, request *ResourceRequestBean) (io.ReadCloser, error) ValidateResourceRequest(ctx context.Context, appIdentifier *client.AppIdentifier, request *application.K8sRequestBean) (bool, error) ValidateClusterResourceRequest(ctx context.Context, clusterResourceRequest *ResourceRequestBean, rbacCallback func(clusterName string, resourceIdentifier application.ResourceIdentifier) bool) (bool, error) ValidateClusterResourceBean(ctx context.Context, clusterId int, manifest unstructured.Unstructured, gvk schema.GroupVersionKind, rbacCallback func(clusterName string, resourceIdentifier application.ResourceIdentifier) bool) bool GetResourceInfo(ctx context.Context) (*ResourceInfo, error) GetRestConfigByClusterId(ctx context.Context, clusterId int) (*rest.Config, error) GetManifestsByBatch(ctx context.Context, request []ResourceRequestBean) ([]BatchResourceResponse, error) FilterServiceAndIngress(ctx context.Context, resourceTreeInf map[string]interface{}, validRequests []ResourceRequestBean, appDetail bean.AppDetailContainer, appId string) []ResourceRequestBean GetUrlsByBatch(ctx context.Context, resp []BatchResourceResponse) []interface{} GetAllApiResources(ctx context.Context, clusterId int, isSuperAdmin bool, userId int32) (*application.GetAllApiResourcesResponse, error) GetResourceList(ctx context.Context, token string, request *ResourceRequestBean, validateResourceAccess func(token string, clusterName string, request ResourceRequestBean, casbinAction string) bool) (*util.ClusterResourceListMap, error) ApplyResources(ctx context.Context, token string, request *application.ApplyResourcesRequest, resourceRbacHandler func(token string, clusterName string, request ResourceRequestBean, casbinAction string) bool) ([]*application.ApplyResourcesResponse, error) FetchConnectionStatusForCluster(k8sClientSet *kubernetes.Clientset, clusterId int) error RotatePods(ctx context.Context, request *RotatePodRequest) (*RotatePodResponse, error) }
type K8sApplicationServiceConfig ¶ added in v0.6.4
type K8sApplicationServiceImpl ¶
type K8sApplicationServiceImpl struct { K8sUtil *util.K8sUtil K8sApplicationServiceConfig *K8sApplicationServiceConfig K8sResourceHistoryService kubernetesResourceAuditLogs.K8sResourceHistoryService // contains filtered or unexported fields }
func NewK8sApplicationServiceImpl ¶
func NewK8sApplicationServiceImpl(Logger *zap.SugaredLogger, clusterService cluster.ClusterService, pump connector.Pump, k8sClientService application.K8sClientService, helmAppService client.HelmAppService, K8sUtil *util.K8sUtil, aCDAuthConfig *util3.ACDAuthConfig, K8sResourceHistoryService kubernetesResourceAuditLogs.K8sResourceHistoryService) *K8sApplicationServiceImpl
func (*K8sApplicationServiceImpl) ApplyResources ¶ added in v0.6.11
func (impl *K8sApplicationServiceImpl) ApplyResources(ctx context.Context, token string, request *application.ApplyResourcesRequest, validateResourceAccess func(token string, clusterName string, request ResourceRequestBean, casbinAction string) bool) ([]*application.ApplyResourcesResponse, error)
func (*K8sApplicationServiceImpl) CreateResource ¶
func (impl *K8sApplicationServiceImpl) CreateResource(ctx context.Context, request *ResourceRequestBean) (*application.ManifestResponse, error)
func (*K8sApplicationServiceImpl) DecodeDevtronAppId ¶ added in v0.6.18
func (impl *K8sApplicationServiceImpl) DecodeDevtronAppId(applicationId string) (*DevtronAppIdentifier, error)
func (*K8sApplicationServiceImpl) DeleteResource ¶
func (impl *K8sApplicationServiceImpl) DeleteResource(ctx context.Context, request *ResourceRequestBean, userId int32) (*application.ManifestResponse, error)
func (*K8sApplicationServiceImpl) FetchConnectionStatusForCluster ¶ added in v0.6.18
func (impl *K8sApplicationServiceImpl) FetchConnectionStatusForCluster(k8sClientSet *kubernetes.Clientset, clusterId int) error
func (*K8sApplicationServiceImpl) FilterServiceAndIngress ¶ added in v0.6.4
func (impl *K8sApplicationServiceImpl) FilterServiceAndIngress(ctx context.Context, resourceTree map[string]interface{}, validRequests []ResourceRequestBean, appDetail bean.AppDetailContainer, appId string) []ResourceRequestBean
func (*K8sApplicationServiceImpl) GetAllApiResources ¶ added in v0.6.11
func (impl *K8sApplicationServiceImpl) GetAllApiResources(ctx context.Context, clusterId int, isSuperAdmin bool, userId int32) (*application.GetAllApiResourcesResponse, error)
func (*K8sApplicationServiceImpl) GetManifestsByBatch ¶ added in v0.6.4
func (impl *K8sApplicationServiceImpl) GetManifestsByBatch(ctx context.Context, requests []ResourceRequestBean) ([]BatchResourceResponse, error)
func (*K8sApplicationServiceImpl) GetPodLogs ¶
func (impl *K8sApplicationServiceImpl) GetPodLogs(ctx context.Context, request *ResourceRequestBean) (io.ReadCloser, error)
func (*K8sApplicationServiceImpl) GetResource ¶
func (impl *K8sApplicationServiceImpl) GetResource(ctx context.Context, request *ResourceRequestBean) (*application.ManifestResponse, error)
func (*K8sApplicationServiceImpl) GetResourceInfo ¶ added in v0.4.0
func (impl *K8sApplicationServiceImpl) GetResourceInfo(ctx context.Context) (*ResourceInfo, error)
func (*K8sApplicationServiceImpl) GetResourceList ¶ added in v0.6.11
func (impl *K8sApplicationServiceImpl) GetResourceList(ctx context.Context, token string, request *ResourceRequestBean, validateResourceAccess func(token string, clusterName string, request ResourceRequestBean, casbinAction string) bool) (*util.ClusterResourceListMap, error)
func (*K8sApplicationServiceImpl) GetRestConfigByClusterId ¶ added in v0.4.24
func (*K8sApplicationServiceImpl) GetUrlsByBatch ¶ added in v0.6.4
func (impl *K8sApplicationServiceImpl) GetUrlsByBatch(ctx context.Context, resp []BatchResourceResponse) []interface{}
func (*K8sApplicationServiceImpl) ListEvents ¶
func (impl *K8sApplicationServiceImpl) ListEvents(ctx context.Context, request *ResourceRequestBean) (*application.EventsResponse, error)
func (*K8sApplicationServiceImpl) RotatePods ¶ added in v0.6.17
func (impl *K8sApplicationServiceImpl) RotatePods(ctx context.Context, request *RotatePodRequest) (*RotatePodResponse, error)
func (*K8sApplicationServiceImpl) UpdateResource ¶
func (impl *K8sApplicationServiceImpl) UpdateResource(ctx context.Context, request *ResourceRequestBean) (*application.ManifestResponse, error)
func (*K8sApplicationServiceImpl) ValidateClusterResourceBean ¶ added in v0.6.13
func (impl *K8sApplicationServiceImpl) ValidateClusterResourceBean(ctx context.Context, clusterId int, manifest unstructured.Unstructured, gvk schema.GroupVersionKind, rbacCallback func(clusterName string, resourceIdentifier application.ResourceIdentifier) bool) bool
func (*K8sApplicationServiceImpl) ValidateClusterResourceRequest ¶ added in v0.6.13
func (impl *K8sApplicationServiceImpl) ValidateClusterResourceRequest(ctx context.Context, clusterResourceRequest *ResourceRequestBean, rbacCallback func(clusterName string, resourceIdentifier application.ResourceIdentifier) bool) (bool, error)
func (*K8sApplicationServiceImpl) ValidatePodLogsRequestQuery ¶ added in v0.6.18
func (impl *K8sApplicationServiceImpl) ValidatePodLogsRequestQuery(r *http.Request) (*ResourceRequestBean, error)
func (*K8sApplicationServiceImpl) ValidateResourceRequest ¶
func (impl *K8sApplicationServiceImpl) ValidateResourceRequest(ctx context.Context, appIdentifier *client.AppIdentifier, request *application.K8sRequestBean) (bool, error)
func (*K8sApplicationServiceImpl) ValidateTerminalRequestQuery ¶ added in v0.6.18
func (impl *K8sApplicationServiceImpl) ValidateTerminalRequestQuery(r *http.Request) (*terminal.TerminalSessionRequest, *ResourceRequestBean, error)
type K8sCapacityRestHandler ¶ added in v0.4.24
type K8sCapacityRestHandler interface { GetClusterListRaw(w http.ResponseWriter, r *http.Request) GetClusterListWithDetail(w http.ResponseWriter, r *http.Request) GetClusterDetail(w http.ResponseWriter, r *http.Request) GetNodeList(w http.ResponseWriter, r *http.Request) GetNodeDetail(w http.ResponseWriter, r *http.Request) UpdateNodeManifest(w http.ResponseWriter, r *http.Request) DeleteNode(w http.ResponseWriter, r *http.Request) CordonOrUnCordonNode(w http.ResponseWriter, r *http.Request) DrainNode(w http.ResponseWriter, r *http.Request) EditNodeTaints(w http.ResponseWriter, r *http.Request) }
type K8sCapacityRestHandlerImpl ¶ added in v0.4.24
type K8sCapacityRestHandlerImpl struct {
// contains filtered or unexported fields
}
func NewK8sCapacityRestHandlerImpl ¶ added in v0.4.24
func NewK8sCapacityRestHandlerImpl(logger *zap.SugaredLogger, k8sCapacityService K8sCapacityService, userService user.UserService, enforcer casbin.Enforcer, clusterService cluster.ClusterService, environmentService cluster.EnvironmentService) *K8sCapacityRestHandlerImpl
func (*K8sCapacityRestHandlerImpl) CheckRbacForCluster ¶ added in v0.4.24
func (handler *K8sCapacityRestHandlerImpl) CheckRbacForCluster(cluster *cluster.ClusterBean, token string) (authenticated bool, err error)
func (*K8sCapacityRestHandlerImpl) CordonOrUnCordonNode ¶ added in v0.6.10
func (handler *K8sCapacityRestHandlerImpl) CordonOrUnCordonNode(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) DeleteNode ¶ added in v0.6.10
func (handler *K8sCapacityRestHandlerImpl) DeleteNode(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) DrainNode ¶ added in v0.6.10
func (handler *K8sCapacityRestHandlerImpl) DrainNode(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) EditNodeTaints ¶ added in v0.6.10
func (handler *K8sCapacityRestHandlerImpl) EditNodeTaints(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) GetClusterDetail ¶ added in v0.4.24
func (handler *K8sCapacityRestHandlerImpl) GetClusterDetail(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) GetClusterListRaw ¶ added in v0.6.17
func (handler *K8sCapacityRestHandlerImpl) GetClusterListRaw(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) GetClusterListWithDetail ¶ added in v0.6.17
func (handler *K8sCapacityRestHandlerImpl) GetClusterListWithDetail(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) GetNodeDetail ¶ added in v0.4.24
func (handler *K8sCapacityRestHandlerImpl) GetNodeDetail(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) GetNodeList ¶ added in v0.4.24
func (handler *K8sCapacityRestHandlerImpl) GetNodeList(w http.ResponseWriter, r *http.Request)
func (*K8sCapacityRestHandlerImpl) UpdateNodeManifest ¶ added in v0.4.24
func (handler *K8sCapacityRestHandlerImpl) UpdateNodeManifest(w http.ResponseWriter, r *http.Request)
type K8sCapacityRouter ¶ added in v0.4.24
type K8sCapacityRouterImpl ¶ added in v0.4.24
type K8sCapacityRouterImpl struct {
// contains filtered or unexported fields
}
func NewK8sCapacityRouterImpl ¶ added in v0.4.24
func NewK8sCapacityRouterImpl(k8sCapacityRestHandler K8sCapacityRestHandler) *K8sCapacityRouterImpl
func (*K8sCapacityRouterImpl) InitK8sCapacityRouter ¶ added in v0.4.24
func (impl *K8sCapacityRouterImpl) InitK8sCapacityRouter(k8sCapacityRouter *mux.Router)
type K8sCapacityService ¶ added in v0.4.24
type K8sCapacityService interface { GetClusterCapacityDetailList(ctx context.Context, clusters []*cluster.ClusterBean) ([]*ClusterCapacityDetail, error) GetClusterCapacityDetail(ctx context.Context, cluster *cluster.ClusterBean, callForList bool) (*ClusterCapacityDetail, error) GetNodeCapacityDetailsListByCluster(ctx context.Context, cluster *cluster.ClusterBean) ([]*NodeCapacityDetail, error) GetNodeCapacityDetailByNameAndCluster(ctx context.Context, cluster *cluster.ClusterBean, name string) (*NodeCapacityDetail, error) UpdateNodeManifest(ctx context.Context, request *NodeUpdateRequestDto) (*application.ManifestResponse, error) DeleteNode(ctx context.Context, request *NodeUpdateRequestDto) (*application.ManifestResponse, error) CordonOrUnCordonNode(ctx context.Context, request *NodeUpdateRequestDto) (string, error) DrainNode(ctx context.Context, request *NodeUpdateRequestDto) (string, error) EditNodeTaints(ctx context.Context, request *NodeUpdateRequestDto) (string, error) GetNode(ctx context.Context, clusterId int, nodeName string) (*corev1.Node, error) }
type K8sCapacityServiceImpl ¶ added in v0.4.24
type K8sCapacityServiceImpl struct { K8sUtil *util.K8sUtil // contains filtered or unexported fields }
func NewK8sCapacityServiceImpl ¶ added in v0.4.24
func NewK8sCapacityServiceImpl(Logger *zap.SugaredLogger, clusterService cluster.ClusterService, k8sApplicationService K8sApplicationService, k8sClientService application.K8sClientService, clusterCronService ClusterCronService, K8sUtil *util.K8sUtil) *K8sCapacityServiceImpl
func (*K8sCapacityServiceImpl) CordonOrUnCordonNode ¶ added in v0.6.10
func (impl *K8sCapacityServiceImpl) CordonOrUnCordonNode(ctx context.Context, request *NodeUpdateRequestDto) (string, error)
func (*K8sCapacityServiceImpl) DeleteNode ¶ added in v0.6.10
func (impl *K8sCapacityServiceImpl) DeleteNode(ctx context.Context, request *NodeUpdateRequestDto) (*application.ManifestResponse, error)
func (*K8sCapacityServiceImpl) DrainNode ¶ added in v0.6.10
func (impl *K8sCapacityServiceImpl) DrainNode(ctx context.Context, request *NodeUpdateRequestDto) (string, error)
func (*K8sCapacityServiceImpl) EditNodeTaints ¶ added in v0.6.10
func (impl *K8sCapacityServiceImpl) EditNodeTaints(ctx context.Context, request *NodeUpdateRequestDto) (string, error)
func (*K8sCapacityServiceImpl) GetClusterCapacityDetail ¶ added in v0.4.24
func (impl *K8sCapacityServiceImpl) GetClusterCapacityDetail(ctx context.Context, cluster *cluster.ClusterBean, callForList bool) (*ClusterCapacityDetail, error)
func (*K8sCapacityServiceImpl) GetClusterCapacityDetailList ¶ added in v0.4.24
func (impl *K8sCapacityServiceImpl) GetClusterCapacityDetailList(ctx context.Context, clusters []*cluster.ClusterBean) ([]*ClusterCapacityDetail, error)
func (*K8sCapacityServiceImpl) GetNodeCapacityDetailByNameAndCluster ¶ added in v0.4.24
func (impl *K8sCapacityServiceImpl) GetNodeCapacityDetailByNameAndCluster(ctx context.Context, cluster *cluster.ClusterBean, name string) (*NodeCapacityDetail, error)
func (*K8sCapacityServiceImpl) GetNodeCapacityDetailsListByCluster ¶ added in v0.4.24
func (impl *K8sCapacityServiceImpl) GetNodeCapacityDetailsListByCluster(ctx context.Context, cluster *cluster.ClusterBean) ([]*NodeCapacityDetail, error)
func (*K8sCapacityServiceImpl) UpdateNodeManifest ¶ added in v0.4.24
func (impl *K8sCapacityServiceImpl) UpdateNodeManifest(ctx context.Context, request *NodeUpdateRequestDto) (*application.ManifestResponse, error)
type LabelAnnotationTaintObject ¶ added in v0.4.24
type NodeCapacityDetail ¶ added in v0.4.24
type NodeCapacityDetail struct { Name string `json:"name"` Version string `json:"version,omitempty"` Kind string `json:"kind,omitempty"` Roles []string `json:"roles"` K8sVersion string `json:"k8sVersion"` Cpu *ResourceDetailObject `json:"cpu,omitempty"` Memory *ResourceDetailObject `json:"memory,omitempty"` Age string `json:"age,omitempty"` Status string `json:"status,omitempty"` PodCount int `json:"podCount,omitempty"` Errors map[corev1.NodeConditionType]string `json:"errors"` InternalIp string `json:"internalIp"` ExternalIp string `json:"externalIp"` Unschedulable bool `json:"unschedulable"` CreatedAt string `json:"createdAt"` Labels []*LabelAnnotationTaintObject `json:"labels,omitempty"` Annotations []*LabelAnnotationTaintObject `json:"annotations,omitempty"` Taints []*LabelAnnotationTaintObject `json:"taints,omitempty"` Conditions []*NodeConditionObject `json:"conditions,omitempty"` Resources []*ResourceDetailObject `json:"resources,omitempty"` Pods []*PodCapacityDetail `json:"pods,omitempty"` Manifest unstructured.Unstructured `json:"manifest,omitempty"` ClusterName string `json:"clusterName,omitempty"` NodeGroup string `json:"nodeGroup"` }
type NodeConditionObject ¶ added in v0.4.24
type NodeCordonHelper ¶ added in v0.6.10
type NodeCordonHelper struct {
UnschedulableDesired bool `json:"unschedulableDesired"`
}
type NodeDetails ¶ added in v0.6.19
type NodeDetails struct { NodeName string `json:"nodeName"` NodeGroup string `json:"nodeGroup"` Taints []*LabelAnnotationTaintObject `json:"taints"` }
type NodeDrainHelper ¶ added in v0.6.10
type NodeDrainHelper struct { Force bool `json:"force"` DeleteEmptyDirData bool `json:"deleteEmptyDirData"` // GracePeriodSeconds is how long to wait for a pod to terminate. // IMPORTANT: 0 means "delete immediately"; set to a negative value // to use the pod's terminationGracePeriodSeconds. GracePeriodSeconds int `json:"gracePeriodSeconds"` IgnoreAllDaemonSets bool `json:"ignoreAllDaemonSets"` // DisableEviction forces drain to use delete rather than evict DisableEviction bool `json:"disableEviction"` // contains filtered or unexported fields }
type NodeUpdateRequestDto ¶ added in v0.6.10
type NodeUpdateRequestDto struct { ClusterId int `json:"clusterId"` Name string `json:"name"` ManifestPatch string `json:"manifestPatch"` Version string `json:"version"` Kind string `json:"kind"` Taints []corev1.Taint `json:"taints"` NodeCordonHelper *NodeCordonHelper `json:"nodeCordonOptions"` NodeDrainHelper *NodeDrainHelper `json:"nodeDrainOptions"` }
type PodCapacityDetail ¶ added in v0.4.24
type PodCapacityDetail struct { Name string `json:"name"` Namespace string `json:"namespace"` Cpu *ResourceDetailObject `json:"cpu"` Memory *ResourceDetailObject `json:"memory"` Age string `json:"age"` CreatedAt string `json:"createdAt"` }
type PodDelete ¶ added in v0.6.10
type PodDelete struct { Pod corev1.Pod Status PodDeleteStatus }
PodDelete informs filtering logic whether a pod should be deleted or not
type PodDeleteList ¶ added in v0.6.10
type PodDeleteList struct {
// contains filtered or unexported fields
}
PodDeleteList is a wrapper around []PodDelete
func (*PodDeleteList) Pods ¶ added in v0.6.10
func (l *PodDeleteList) Pods() []corev1.Pod
Pods returns a list of all pods marked for deletion after filtering.
type PodDeleteStatus ¶ added in v0.6.10
PodDeleteStatus informs filters if a pod should be deleted
func MakePodDeleteStatusOkay ¶ added in v0.6.10
func MakePodDeleteStatusOkay() PodDeleteStatus
MakePodDeleteStatusOkay is a helper method to return the corresponding PodDeleteStatus
func MakePodDeleteStatusSkip ¶ added in v0.6.10
func MakePodDeleteStatusSkip() PodDeleteStatus
MakePodDeleteStatusSkip is a helper method to return the corresponding PodDeleteStatus
func MakePodDeleteStatusWithError ¶ added in v0.6.10
func MakePodDeleteStatusWithError(message string) PodDeleteStatus
MakePodDeleteStatusWithError is a helper method to return the corresponding PodDeleteStatus
func MakePodDeleteStatusWithWarning ¶ added in v0.6.10
func MakePodDeleteStatusWithWarning(delete bool, message string) PodDeleteStatus
MakePodDeleteStatusWithWarning is a helper method to return the corresponding PodDeleteStatus
type PodFilter ¶ added in v0.6.10
type PodFilter func(corev1.Pod) PodDeleteStatus
PodFilter takes a pod and returns a PodDeleteStatus
type ResourceDetailObject ¶ added in v0.4.24
type ResourceDetailObject struct { ResourceName string `json:"name,omitempty"` Capacity string `json:"capacity,omitempty"` Allocatable string `json:"allocatable,omitempty"` Usage string `json:"usage,omitempty"` Request string `json:"request,omitempty"` Limit string `json:"limit,omitempty"` UsagePercentage string `json:"usagePercentage,omitempty"` RequestPercentage string `json:"requestPercentage,omitempty"` LimitPercentage string `json:"limitPercentage,omitempty"` //below fields to be used at FE for sorting CapacityInBytes int64 `json:"capacityInBytes,omitempty"` AllocatableInBytes int64 `json:"allocatableInBytes,omitempty"` UsageInBytes int64 `json:"usageInBytes,omitempty"` RequestInBytes int64 `json:"requestInBytes,omitempty"` LimitInBytes int64 `json:"limitInBytes,omitempty"` }
type ResourceInfo ¶ added in v0.4.0
type ResourceInfo struct {
PodName string `json:"podName"`
}
type ResourceRequestBean ¶
type ResourceRequestBean struct { AppId string `json:"appId"` AppType int `json:"appType,omitempty"` // 0: DevtronApp, 1: HelmApp DeploymentType int `json:"deploymentType,omitempty"` // 0: DevtronApp, 1: HelmApp AppIdentifier *client.AppIdentifier `json:"-"` K8sRequest *application.K8sRequestBean `json:"k8sRequest"` DevtronAppIdentifier *DevtronAppIdentifier `json:"-"` // For Devtron App Resources ClusterId int `json:"clusterId"` // clusterId is used when request is for direct cluster (not for helm release) }
type RotatePodRequest ¶ added in v0.6.17
type RotatePodRequest struct { ClusterId int `json:"clusterId"` Resources []application.ResourceIdentifier `json:"resources"` }
type RotatePodResourceResponse ¶ added in v0.6.17
type RotatePodResourceResponse struct { application.ResourceIdentifier ErrorResponse string `json:"errorResponse"` }
type RotatePodResponse ¶ added in v0.6.17
type RotatePodResponse struct { Responses []*RotatePodResourceResponse `json:"responses"` ContainsError bool `json:"containsError"` }