56 lines
2.5 KiB
Go
56 lines
2.5 KiB
Go
package apps
|
|
|
|
import "github.com/wild-cloud/wild-central/daemon/internal/tools"
|
|
|
|
// AppManifest represents the complete app manifest from manifest.yaml
|
|
type AppManifest struct {
|
|
Name string `json:"name" yaml:"name"`
|
|
Description string `json:"description" yaml:"description"`
|
|
Version string `json:"version" yaml:"version"`
|
|
Icon string `json:"icon,omitempty" yaml:"icon,omitempty"`
|
|
Category string `json:"category,omitempty" yaml:"category,omitempty"`
|
|
Requires []AppDependency `json:"requires,omitempty" yaml:"requires,omitempty"`
|
|
DefaultConfig map[string]interface{} `json:"defaultConfig,omitempty" yaml:"defaultConfig,omitempty"`
|
|
RequiredSecrets []string `json:"requiredSecrets,omitempty" yaml:"requiredSecrets,omitempty"`
|
|
}
|
|
|
|
// AppDependency represents a dependency on another app
|
|
type AppDependency struct {
|
|
Name string `json:"name" yaml:"name"`
|
|
}
|
|
|
|
// EnhancedApp extends DeployedApp with runtime status information
|
|
type EnhancedApp struct {
|
|
Name string `json:"name"`
|
|
Status string `json:"status"`
|
|
Version string `json:"version"`
|
|
Namespace string `json:"namespace"`
|
|
URL string `json:"url,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Icon string `json:"icon,omitempty"`
|
|
Manifest *AppManifest `json:"manifest,omitempty"`
|
|
Runtime *RuntimeStatus `json:"runtime,omitempty"`
|
|
Config map[string]string `json:"config,omitempty"`
|
|
Readme string `json:"readme,omitempty"`
|
|
Documentation string `json:"documentation,omitempty"`
|
|
}
|
|
|
|
// RuntimeStatus contains runtime information from kubernetes
|
|
type RuntimeStatus struct {
|
|
Pods []PodInfo `json:"pods,omitempty"`
|
|
Replicas *ReplicaInfo `json:"replicas,omitempty"`
|
|
Resources *ResourceUsage `json:"resources,omitempty"`
|
|
RecentEvents []KubernetesEvent `json:"recentEvents,omitempty"`
|
|
}
|
|
|
|
// Type aliases for kubectl wrapper types
|
|
// These types are defined in internal/tools and shared across the codebase
|
|
type PodInfo = tools.PodInfo
|
|
type ContainerInfo = tools.ContainerInfo
|
|
type ContainerState = tools.ContainerState
|
|
type PodCondition = tools.PodCondition
|
|
type ReplicaInfo = tools.ReplicaInfo
|
|
type ResourceUsage = tools.ResourceUsage
|
|
type KubernetesEvent = tools.KubernetesEvent
|
|
type LogEntry = tools.LogEntry
|