Documentation
¶
Index ¶
- Constants
- func SetupWithManager(mgr manager.Manager, systemConfig *SystemConfig) error
- type ActiveTransition
- type ApprovalEngine
- type ApprovalPolicy
- type ApprovalResult
- type ApprovalStatusSummary
- type BatchOptions
- type BatchResult
- type BlockingIssue
- type BuildInfo
- type CICDIntegration
- type CertIntegration
- type ComplianceCheck
- type ComplianceIssue
- type ComponentHealth
- type CorrectionStep
- type DriftCorrectionPlan
- type DriftDetail
- type DriftDetectionResult
- type DriftDetector
- type EscalationPolicy
- type ExternalIntegrations
- type FeatureFlags
- type FluentdConfig
- type GitOpsIntegration
- type GrafanaConfig
- type IntegrationConfig
- type IntegrationHealth
- type JaegerConfig
- type KeyRotationConfig
- type LifecycleStatus
- type ManagerConfig
- type ManagerHealth
- type ManagerMetrics
- type MonitoringIntegration
- type NetworkIntentPackageReconciler
- type NetworkIntentPackageStatus
- type NotificationResult
- type ONAPConfig
- type OSMConfig
- type PackageMetrics
- type PackageOperationResult
- type PackageRevisionManager
- type PackageRevisionSystem
- type PendingAction
- type PendingTransition
- type PolicyValidation
- type PolicyViolation
- type PrometheusConfig
- type RollbackResult
- type SecretIntegration
- type SecurityCheck
- type SecurityValidation
- type StageHistoryEntry
- type SystemComponents
- type SystemConfig
- type SystemFactory
- type SystemHealth
- type SystemMetrics
- type TelemetryEndpoint
- type TelemetryIntegration
- type TransitionHistoryEntry
- type TransitionOptions
- type TransitionResult
- type ValidationError
- type ValidationPolicy
- type ValidationResult
- type ValidationSummary
- type ValidationWarning
- type Vulnerability
- type VulnerabilityScan
Constants ¶
View Source
const (
NetworkIntentFinalizer = "networkintent.nephoran.com/package-revision"
)
Variables ¶
This section is empty.
Functions ¶
func SetupWithManager ¶
func SetupWithManager(mgr manager.Manager, systemConfig *SystemConfig) error
Types ¶
type ActiveTransition ¶
type ActiveTransition struct {
ID string `json:"id"`
PackageRef *porch.PackageReference `json:"packageRef"`
TargetStage porch.PackageRevisionLifecycle `json:"targetStage"`
StartTime time.Time `json:"startTime"`
LastUpdate time.Time `json:"lastUpdate"`
Status string `json:"status"`
Progress int `json:"progress"` // 0-100
CurrentStep string `json:"currentStep"`
Options *TransitionOptions `json:"options"`
}
type ApprovalEngine ¶
type ApprovalEngine interface {
ExecuteApprovalWorkflow(ctx context.Context, ref *porch.PackageReference, stage porch.PackageRevisionLifecycle, policy *ApprovalPolicy) (*ApprovalResult, error)
Close() error
}
func NewApprovalEngine ¶
func NewApprovalEngine(config *ManagerConfig) (ApprovalEngine, error)
type ApprovalPolicy ¶
type ApprovalPolicy struct {
RequiredApprovals int `json:"requiredApprovals"`
ApprovalStages []string `json:"approvalStages"`
Approvers []string `json:"approvers"`
AutoApproveForStages []string `json:"autoApproveForStages,omitempty"`
EscalationPolicy *EscalationPolicy `json:"escalationPolicy,omitempty"`
}
type ApprovalResult ¶
type ApprovalResult struct {
WorkflowID string `json:"workflowId"`
Stage string `json:"stage"`
Status string `json:"status"` // pending, approved, rejected
Approver string `json:"approver,omitempty"`
ApprovalTime *metav1.Time `json:"approvalTime,omitempty"`
Comments string `json:"comments,omitempty"`
RequiredApprovals int `json:"requiredApprovals"`
ReceivedApprovals int `json:"receivedApprovals"`
}
type ApprovalStatusSummary ¶
type BatchOptions ¶
type BatchOptions struct {
Concurrency int `json:"concurrency"`
ContinueOnError bool `json:"continueOnError"`
ValidationPolicy *ValidationPolicy `json:"validationPolicy,omitempty"`
ApprovalPolicy *ApprovalPolicy `json:"approvalPolicy,omitempty"`
CreateRollbackPoints bool `json:"createRollbackPoints"`
Timeout time.Duration `json:"timeout"`
DryRun bool `json:"dryRun"`
}
type BatchResult ¶
type BatchResult struct {
TotalRequests int `json:"totalRequests"`
SuccessfulOperations int `json:"successfulOperations"`
FailedOperations int `json:"failedOperations"`
Results []*PackageOperationResult `json:"results"`
Duration time.Duration `json:"duration"`
OverallSuccess bool `json:"overallSuccess"`
}
type BlockingIssue ¶
type CICDIntegration ¶
type CertIntegration ¶
type ComplianceCheck ¶
type ComplianceCheck struct {
Standard string `json:"standard"` // O-RAN, 3GPP, etc.
Version string `json:"version"`
Interface string `json:"interface,omitempty"` // A1, O1, O2, E2
Compliant bool `json:"compliant"`
Issues []ComplianceIssue `json:"issues,omitempty"`
}
type ComplianceIssue ¶
type ComponentHealth ¶
type CorrectionStep ¶
type DriftCorrectionPlan ¶
type DriftCorrectionPlan struct {
CorrectionSteps []*CorrectionStep `json:"correctionSteps"`
RequiresApproval bool `json:"requiresApproval"`
EstimatedTime time.Duration `json:"estimatedTime"`
RiskLevel string `json:"riskLevel"`
}
type DriftDetail ¶
type DriftDetail struct {
ResourceType string `json:"resourceType"`
ResourceName string `json:"resourceName"`
Path string `json:"path"`
ExpectedValue interface{} `json:"expectedValue"`
ActualValue interface{} `json:"actualValue"`
DriftType string `json:"driftType"` // modified, missing, unexpected
Impact string `json:"impact"` // low, medium, high
AutoCorrectible bool `json:"autoCorrectible"`
}
type DriftDetectionResult ¶
type DriftDetectionResult struct {
HasDrift bool `json:"hasDrift"`
DetectionTime time.Time `json:"detectionTime"`
DriftDetails []*DriftDetail `json:"driftDetails"`
Severity string `json:"severity"` // low, medium, high, critical
AutoCorrectible bool `json:"autoCorrectible"`
CorrectionPlan *DriftCorrectionPlan `json:"correctionPlan,omitempty"`
}
type DriftDetector ¶
type DriftDetector interface {
DetectDrift(ctx context.Context, ref *porch.PackageReference) (*DriftDetectionResult, error)
Close() error
}
func NewDriftDetector ¶
func NewDriftDetector(client porch.PorchClient, config *ManagerConfig) (DriftDetector, error)
type EscalationPolicy ¶
type ExternalIntegrations ¶
type ExternalIntegrations struct {
GitOps *GitOpsIntegration `yaml:"gitops"`
CICD *CICDIntegration `yaml:"cicd"`
Monitoring *MonitoringIntegration `yaml:"monitoring"`
SecretManagement *SecretIntegration `yaml:"secretManagement"`
CertificateManagement *CertIntegration `yaml:"certificateManagement"`
NetworkTelemetry *TelemetryIntegration `yaml:"networkTelemetry"`
}
type FeatureFlags ¶
type FeatureFlags struct {
EnableORANCompliance bool `yaml:"enableOranCompliance"`
Enable3GPPValidation bool `yaml:"enable3gppValidation"`
EnableDriftDetection bool `yaml:"enableDriftDetection"`
EnableAutoCorrection bool `yaml:"enableAutoCorrection"`
EnableApprovalWorkflows bool `yaml:"enableApprovalWorkflows"`
EnableAdvancedTemplating bool `yaml:"enableAdvancedTemplating"`
EnableSecurityScanning bool `yaml:"enableSecurityScanning"`
EnableChaosEngineering bool `yaml:"enableChaosEngineering"`
EnableMLOptimization bool `yaml:"enableMlOptimization"`
}
type FluentdConfig ¶
type GitOpsIntegration ¶
type GitOpsIntegration struct {
Provider string `yaml:"provider"` // argocd, flux, tekton
Endpoint string `yaml:"endpoint"`
Repository string `yaml:"repository"`
Branch string `yaml:"branch"`
Credentials map[string]string `yaml:"credentials"`
AutoSync bool `yaml:"autoSync"`
SyncWave int `yaml:"syncWave"`
}
type GrafanaConfig ¶
type IntegrationConfig ¶
type IntegrationConfig struct {
AutoPromoteToProposed bool `yaml:"autoPromoteToProposed"`
AutoPromoteToPublished bool `yaml:"autoPromoteToPublished"`
AutoCreateRollbackPoints bool `yaml:"autoCreateRollbackPoints"`
DefaultTransitionTimeout time.Duration `yaml:"defaultTransitionTimeout"`
RequireYANGValidation bool `yaml:"requireYangValidation"`
RequiredApprovals int `yaml:"requiredApprovals"`
ValidationModels []string `yaml:"validationModels"`
PreferredTemplateVendors []string `yaml:"preferredTemplateVendors"`
EnableTemplateInheritance bool `yaml:"enableTemplateInheritance"`
FailureRetryCount int `yaml:"failureRetryCount"`
FailureRetryInterval time.Duration `yaml:"failureRetryInterval"`
ContinueOnValidationError bool `yaml:"continueOnValidationError"`
UpdateStatusFrequency time.Duration `yaml:"updateStatusFrequency"`
EnableDetailedStatus bool `yaml:"enableDetailedStatus"`
}
func GetDefaultIntegrationConfig ¶
func GetDefaultIntegrationConfig() *IntegrationConfig
type IntegrationHealth ¶
type JaegerConfig ¶
type KeyRotationConfig ¶
type LifecycleStatus ¶
type LifecycleStatus struct {
CurrentStage porch.PackageRevisionLifecycle `json:"currentStage"`
StageStartTime time.Time `json:"stageStartTime"`
StageHistory []*StageHistoryEntry `json:"stageHistory"`
PendingActions []*PendingAction `json:"pendingActions,omitempty"`
BlockingIssues []*BlockingIssue `json:"blockingIssues,omitempty"`
NextPossibleStages []porch.PackageRevisionLifecycle `json:"nextPossibleStages"`
}
type ManagerConfig ¶
type ManagerConfig struct {
DefaultRepository string `yaml:"defaultRepository"`
DefaultTimeout time.Duration `yaml:"defaultTimeout"`
MaxConcurrentTransitions int `yaml:"maxConcurrentTransitions"`
EnableYANGValidation bool `yaml:"enableYANGValidation"`
EnablePolicyValidation bool `yaml:"enablePolicyValidation"`
EnableSecurityValidation bool `yaml:"enableSecurityValidation"`
EnableComplianceChecks bool `yaml:"enableComplianceChecks"`
ValidationTimeout time.Duration `yaml:"validationTimeout"`
EnableApprovalWorkflow bool `yaml:"enableApprovalWorkflow"`
DefaultApprovalPolicy string `yaml:"defaultApprovalPolicy"`
ApprovalTimeout time.Duration `yaml:"approvalTimeout"`
EnableDriftDetection bool `yaml:"enableDriftDetection"`
DriftDetectionInterval time.Duration `yaml:"driftDetectionInterval"`
AutoCorrectDrift bool `yaml:"autoCorrectDrift"`
TemplateRepository string `yaml:"templateRepository"`
TemplateRefreshInterval time.Duration `yaml:"templateRefreshInterval"`
EnableMetrics bool `yaml:"enableMetrics"`
MetricsInterval time.Duration `yaml:"metricsInterval"`
EnableNotifications bool `yaml:"enableNotifications"`
NotificationChannels []string `yaml:"notificationChannels"`
}
type ManagerHealth ¶
type ManagerHealth struct {
Status string `json:"status"`
ActiveTransitions int `json:"activeTransitions"`
QueuedOperations int `json:"queuedOperations"`
ComponentHealth map[string]string `json:"componentHealth"`
LastActivity time.Time `json:"lastActivity"`
Metrics *ManagerMetrics `json:"metrics,omitempty"`
}
type ManagerMetrics ¶
type ManagerMetrics struct {
TotalPackagesManaged prometheus.Counter `json:"totalPackagesManaged"`
TransitionsTotal *prometheus.CounterVec `json:"transitionsTotal"`
TransitionDuration *prometheus.HistogramVec `json:"transitionDuration"`
ValidationResults *prometheus.CounterVec `json:"validationResults"`
ApprovalLatency prometheus.Histogram `json:"approvalLatency"`
DriftDetections prometheus.Counter `json:"driftDetections"`
ActiveTransitions prometheus.Gauge `json:"activeTransitions"`
QueueSize prometheus.Gauge `json:"queueSize"`
}
type MonitoringIntegration ¶
type MonitoringIntegration struct {
Prometheus *PrometheusConfig `yaml:"prometheus"`
Grafana *GrafanaConfig `yaml:"grafana"`
Jaeger *JaegerConfig `yaml:"jaeger"`
Fluentd *FluentdConfig `yaml:"fluentd"`
}
type NetworkIntentPackageReconciler ¶
type NetworkIntentPackageReconciler struct {
client.Client
Scheme *runtime.Scheme
Logger logr.Logger
PackageManager PackageRevisionManager
TemplateEngine templates.TemplateEngine
YANGValidator yang.YANGValidator
PorchClient porch.PorchClient
LifecycleManager porch.LifecycleManager
Config *IntegrationConfig
}
func NewNetworkIntentPackageReconciler ¶
func NewNetworkIntentPackageReconciler( client client.Client, scheme *runtime.Scheme, packageManager PackageRevisionManager, templateEngine templates.TemplateEngine, yangValidator yang.YANGValidator, porchClient porch.PorchClient, lifecycleManager porch.LifecycleManager, config *IntegrationConfig, ) *NetworkIntentPackageReconciler
func (*NetworkIntentPackageReconciler) SetupWithManager ¶
func (r *NetworkIntentPackageReconciler) SetupWithManager(mgr ctrl.Manager) error
type NetworkIntentPackageStatus ¶
type NetworkIntentPackageStatus struct {
PackageReference *porch.PackageReference `json:"packageReference,omitempty"`
PackageLifecycle porch.PackageRevisionLifecycle `json:"packageLifecycle,omitempty"`
PackageCreatedAt *metav1.Time `json:"packageCreatedAt,omitempty"`
PackageLastUpdated *metav1.Time `json:"packageLastUpdated,omitempty"`
UsedTemplate string `json:"usedTemplate,omitempty"`
TemplateVersion string `json:"templateVersion,omitempty"`
GeneratedResources int `json:"generatedResources,omitempty"`
YANGValidationResult *ValidationSummary `json:"yangValidationResult,omitempty"`
ApprovalStatus *ApprovalStatusSummary `json:"approvalStatus,omitempty"`
TransitionHistory []*TransitionHistoryEntry `json:"transitionHistory,omitempty"`
PendingTransitions []*PendingTransition `json:"pendingTransitions,omitempty"`
LastError string `json:"lastError,omitempty"`
ErrorCount int `json:"errorCount,omitempty"`
LastErrorTime *metav1.Time `json:"lastErrorTime,omitempty"`
ProcessingDuration *metav1.Duration `json:"processingDuration,omitempty"`
ValidationDuration *metav1.Duration `json:"validationDuration,omitempty"`
DeploymentDuration *metav1.Duration `json:"deploymentDuration,omitempty"`
}
type NotificationResult ¶
type ONAPConfig ¶
type PackageMetrics ¶
type PackageMetrics struct {
PackageRef *porch.PackageReference `json:"packageRef"`
TotalTransitions int64 `json:"totalTransitions"`
TransitionsByStage map[porch.PackageRevisionLifecycle]int64 `json:"transitionsByStage"`
AverageTransitionTime time.Duration `json:"averageTransitionTime"`
FailedTransitions int64 `json:"failedTransitions"`
ValidationFailures int64 `json:"validationFailures"`
ApprovalCycles int64 `json:"approvalCycles"`
DriftDetections int64 `json:"driftDetections"`
AutoCorrections int64 `json:"autoCorrections"`
TimeInCurrentStage time.Duration `json:"timeInCurrentStage"`
LastActivity time.Time `json:"lastActivity"`
}
type PackageOperationResult ¶
type PackageOperationResult struct {
Intent *nephoranv1.NetworkIntent `json:"intent"`
PackageRef *porch.PackageReference `json:"packageRef,omitempty"`
Success bool `json:"success"`
Result interface{} `json:"result,omitempty"`
Error string `json:"error,omitempty"`
Duration time.Duration `json:"duration"`
}
type PackageRevisionManager ¶
type PackageRevisionManager interface {
CreateFromIntent(ctx context.Context, intent *nephoranv1.NetworkIntent) (*porch.PackageRevision, error)
UpdateFromIntent(ctx context.Context, intent *nephoranv1.NetworkIntent, existing *porch.PackageRevision) (*porch.PackageRevision, error)
DeletePackageRevision(ctx context.Context, ref *porch.PackageReference) error
TransitionToProposed(ctx context.Context, ref *porch.PackageReference, opts *TransitionOptions) (*TransitionResult, error)
TransitionToPublished(ctx context.Context, ref *porch.PackageReference, opts *TransitionOptions) (*TransitionResult, error)
RollbackRevision(ctx context.Context, ref *porch.PackageReference, targetRevision string) (*RollbackResult, error)
ValidateConfiguration(ctx context.Context, ref *porch.PackageReference) (*ValidationResult, error)
DetectConfigurationDrift(ctx context.Context, ref *porch.PackageReference) (*DriftDetectionResult, error)
CorrectConfigurationDrift(ctx context.Context, ref *porch.PackageReference, driftResult *DriftDetectionResult) error
GetAvailableTemplates(ctx context.Context, targetComponent nephoranv1.ORANComponent) ([]*templates.BlueprintTemplate, error)
RenderTemplate(ctx context.Context, template *templates.BlueprintTemplate, params map[string]interface{}) ([]*porch.KRMResource, error)
GetLifecycleStatus(ctx context.Context, ref *porch.PackageReference) (*LifecycleStatus, error)
GetPackageMetrics(ctx context.Context, ref *porch.PackageReference) (*PackageMetrics, error)
BatchCreateFromIntents(ctx context.Context, intents []*nephoranv1.NetworkIntent, opts *BatchOptions) (*BatchResult, error)
GetManagerHealth(ctx context.Context) (*ManagerHealth, error)
Close() error
}
func NewPackageRevisionManager ¶
func NewPackageRevisionManager( porchClient porch.PorchClient, lifecycleManager porch.LifecycleManager, templateEngine templates.TemplateEngine, yangValidator yang.YANGValidator, config *ManagerConfig, ) (PackageRevisionManager, error)
type PackageRevisionSystem ¶
type PackageRevisionSystem struct {
Config *SystemConfig
Components *SystemComponents
Health *SystemHealth
CreatedAt time.Time
LastHealthCheck time.Time
SystemID string
}
type PendingAction ¶
type PendingTransition ¶
type PolicyValidation ¶
type PolicyValidation struct {
PolicyName string `json:"policyName"`
PolicyType string `json:"policyType"`
Valid bool `json:"valid"`
Violations []PolicyViolation `json:"violations,omitempty"`
}
type PolicyViolation ¶
type PrometheusConfig ¶
type RollbackResult ¶
type RollbackResult struct {
Success bool `json:"success"`
RollbackPoint *porch.RollbackPoint `json:"rollbackPoint"`
PreviousStage porch.PackageRevisionLifecycle `json:"previousStage"`
RestoredStage porch.PackageRevisionLifecycle `json:"restoredStage"`
Duration time.Duration `json:"duration"`
RestoredResources []*porch.KRMResource `json:"restoredResources,omitempty"`
Warnings []string `json:"warnings,omitempty"`
}
type SecretIntegration ¶
type SecurityCheck ¶
type SecurityValidation ¶
type SecurityValidation struct {
Valid bool `json:"valid"`
SecurityChecks []SecurityCheck `json:"securityChecks"`
VulnerabilityScans []VulnerabilityScan `json:"vulnerabilityScans,omitempty"`
}
type StageHistoryEntry ¶
type StageHistoryEntry struct {
FromStage porch.PackageRevisionLifecycle `json:"fromStage"`
ToStage porch.PackageRevisionLifecycle `json:"toStage"`
TransitionTime time.Time `json:"transitionTime"`
Duration time.Duration `json:"duration"`
User string `json:"user,omitempty"`
Reason string `json:"reason,omitempty"`
}
type SystemComponents ¶
type SystemComponents struct {
PorchClient porch.PorchClient
LifecycleManager porch.LifecycleManager
TemplateEngine templates.TemplateEngine
YANGValidator yang.YANGValidator
PackageManager PackageRevisionManager
}
type SystemConfig ¶
type SystemConfig struct {
PorchConfig *porch.ClientConfig `yaml:"porch"`
LifecycleConfig *porch.LifecycleManagerConfig `yaml:"lifecycle"`
TemplateConfig *templates.EngineConfig `yaml:"templates"`
YANGConfig *yang.ValidatorConfig `yaml:"yang"`
PackageManagerConfig *ManagerConfig `yaml:"packageManager"`
IntegrationConfig *IntegrationConfig `yaml:"integration"`
SystemName string `yaml:"systemName"`
Environment string `yaml:"environment"`
LogLevel string `yaml:"logLevel"`
EnableMetrics bool `yaml:"enableMetrics"`
MetricsPort int `yaml:"metricsPort"`
HealthCheckPort int `yaml:"healthCheckPort"`
GracefulShutdownTimeout time.Duration `yaml:"gracefulShutdownTimeout"`
Features *FeatureFlags `yaml:"features"`
Integrations *ExternalIntegrations `yaml:"integrations"`
}
func GetDefaultSystemConfig ¶
func GetDefaultSystemConfig() *SystemConfig
type SystemFactory ¶
type SystemFactory interface {
CreatePorchClient(ctx context.Context, config *porch.ClientConfig) (porch.PorchClient, error)
CreateLifecycleManager(ctx context.Context, client porch.PorchClient, config *porch.LifecycleManagerConfig) (porch.LifecycleManager, error)
CreateTemplateEngine(ctx context.Context, yangValidator yang.YANGValidator, config *templates.EngineConfig) (templates.TemplateEngine, error)
CreateYANGValidator(ctx context.Context, config *yang.ValidatorConfig) (yang.YANGValidator, error)
CreatePackageRevisionManager(ctx context.Context, components *SystemComponents, config *ManagerConfig) (PackageRevisionManager, error)
CreateCompleteSystem(ctx context.Context, systemConfig *SystemConfig) (*PackageRevisionSystem, error)
CreateNetworkIntentIntegration(ctx context.Context, k8sClient client.Client, scheme *runtime.Scheme, system *PackageRevisionSystem, config *IntegrationConfig) (*NetworkIntentPackageReconciler, error)
GetSystemHealth(ctx context.Context) (*SystemHealth, error)
ShutdownSystem(ctx context.Context, gracePeriod time.Duration) error
Close() error
}
func NewSystemFactory ¶
func NewSystemFactory() SystemFactory
type SystemHealth ¶
type SystemHealth struct {
Status string `json:"status"` // healthy, degraded, unhealthy
Components map[string]ComponentHealth `json:"components"`
LastCheck time.Time `json:"lastCheck"`
Uptime time.Duration `json:"uptime"`
Version string `json:"version"`
BuildInfo *BuildInfo `json:"buildInfo,omitempty"`
FeatureStatus map[string]bool `json:"featureStatus"`
IntegrationStatus map[string]IntegrationHealth `json:"integrationStatus"`
Metrics *SystemMetrics `json:"metrics,omitempty"`
}
type SystemMetrics ¶
type SystemMetrics struct {
TotalRequests int64 `json:"totalRequests"`
SuccessfulRequests int64 `json:"successfulRequests"`
FailedRequests int64 `json:"failedRequests"`
AverageResponseTime time.Duration `json:"averageResponseTime"`
ActiveConnections int `json:"activeConnections"`
MemoryUsage int64 `json:"memoryUsage"`
CPUUsage float64 `json:"cpuUsage"`
DiskUsage int64 `json:"diskUsage"`
}
type TelemetryEndpoint ¶
type TelemetryIntegration ¶
type TelemetryIntegration struct {
ONAPIntegration *ONAPConfig `yaml:"onap"`
OSMIntegration *OSMConfig `yaml:"osm"`
CustomEndpoints []*TelemetryEndpoint `yaml:"customEndpoints"`
}
type TransitionHistoryEntry ¶
type TransitionHistoryEntry struct {
FromStage porch.PackageRevisionLifecycle `json:"fromStage"`
ToStage porch.PackageRevisionLifecycle `json:"toStage"`
TransitionTime metav1.Time `json:"transitionTime"`
Duration metav1.Duration `json:"duration"`
Success bool `json:"success"`
User string `json:"user,omitempty"`
Reason string `json:"reason,omitempty"`
}
type TransitionOptions ¶
type TransitionOptions struct {
SkipValidation bool `json:"skipValidation,omitempty"`
SkipApproval bool `json:"skipApproval,omitempty"`
CreateRollbackPoint bool `json:"createRollbackPoint,omitempty"`
RollbackDescription string `json:"rollbackDescription,omitempty"`
ForceTransition bool `json:"forceTransition,omitempty"`
ValidationPolicy *ValidationPolicy `json:"validationPolicy,omitempty"`
ApprovalPolicy *ApprovalPolicy `json:"approvalPolicy,omitempty"`
NotificationTargets []string `json:"notificationTargets,omitempty"`
Metadata map[string]string `json:"metadata,omitempty"`
Timeout time.Duration `json:"timeout,omitempty"`
DryRun bool `json:"dryRun,omitempty"`
}
type TransitionResult ¶
type TransitionResult struct {
Success bool `json:"success"`
PreviousStage porch.PackageRevisionLifecycle `json:"previousStage"`
NewStage porch.PackageRevisionLifecycle `json:"newStage"`
TransitionTime time.Time `json:"transitionTime"`
Duration time.Duration `json:"duration"`
ValidationResults []*ValidationResult `json:"validationResults,omitempty"`
ApprovalResults []*ApprovalResult `json:"approvalResults,omitempty"`
RollbackPoint *porch.RollbackPoint `json:"rollbackPoint,omitempty"`
GeneratedResources []*porch.KRMResource `json:"generatedResources,omitempty"`
Warnings []string `json:"warnings,omitempty"`
Notifications []*NotificationResult `json:"notifications,omitempty"`
Metadata json.RawMessage `json:"metadata,omitempty"`
}
type ValidationError ¶
type ValidationPolicy ¶
type ValidationPolicy struct {
RequireYANGValidation bool `json:"requireYangValidation"`
RequirePolicyValidation bool `json:"requirePolicyValidation"`
RequireSecurityValidation bool `json:"requireSecurityValidation"`
RequireComplianceChecks bool `json:"requireComplianceChecks"`
AllowedStandards []string `json:"allowedStandards,omitempty"`
SecurityScanners []string `json:"securityScanners,omitempty"`
FailOnWarnings bool `json:"failOnWarnings"`
}
type ValidationResult ¶
type ValidationResult struct {
Valid bool `json:"valid"`
Errors []*ValidationError `json:"errors,omitempty"`
Warnings []*ValidationWarning `json:"warnings,omitempty"`
YANGValidationResult *yang.ValidationResult `json:"yangValidationResult,omitempty"`
PolicyValidation []*PolicyValidation `json:"policyValidation,omitempty"`
ComplianceChecks []*ComplianceCheck `json:"complianceChecks,omitempty"`
SecurityValidation *SecurityValidation `json:"securityValidation,omitempty"`
}
type ValidationSummary ¶
type ValidationWarning ¶
type Vulnerability ¶
type VulnerabilityScan ¶
type VulnerabilityScan struct {
Scanner string `json:"scanner"`
ImageName string `json:"imageName"`
Vulnerabilities []Vulnerability `json:"vulnerabilities"`
}
Click to show internal directories.
Click to hide internal directories.