UNPKG

@chimoney.io/iaas-k8s-deployment

Version:

Kubernetes Infrastructure as a Service deployment package for streamlined multi-cloud environments

243 lines 6.74 kB
export type LogLevel = "debug" | "info" | "warn" | "error" | "silent"; export type DeploymentAction = "up" | "preview" | "destroy" | "outputs" | "refresh" | "rollback"; export type DeploymentStatus = "initializing" | "configuring" | "deploying" | "completed" | "failed" | "rolling-back"; export interface Logger { debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string, ...args: any[]): void; } export interface DeploymentProgress { status: DeploymentStatus; message: string; timestamp: Date; metadata?: Record<string, any>; } export interface DeploymentOptions { action: DeploymentAction; stackName: string; secretsJson: string; companyName: string; workDir?: string; helmChartPath?: string; logLevel?: LogLevel; onProgress?: (progress: DeploymentProgress) => void; validateConfig?: boolean; enableRollback?: boolean; timeout?: number; cloudProvider?: "aws" | "gcp"; cloudConfig?: AwsCloudConfig | GcpCloudConfig; autoSetupConfig?: boolean; namespace?: string; deploymentType: "shared" | "dedicated"; planTier?: import("./plans.js").PlanTier; billingAccountId?: string; defaultDomain?: string; authDomain?: string; openPaymentsDomain?: string; connectorDomain?: string; enableRafikiAuth?: boolean; enableRafikiBackend?: boolean; enableNginx?: boolean; enableRedis?: boolean; graphqlAllowedIps?: string[]; rafikiAuthImage?: { repository?: string; tag?: string; pullPolicy?: string; }; rafikiBackendImage?: { repository?: string; tag?: string; pullPolicy?: string; }; nginxImage?: { repository?: string; tag?: string; pullPolicy?: string; }; redisImage?: { repository?: string; tag?: string; pullPolicy?: string; }; ingressClassName?: string; dedicatedDeploymentHpaEnabledByDefault?: boolean; sharedDeploymentNetworkPolicyEnabled?: boolean; ingressControllerNamespace?: string; ingressControllerPodSelectorLabels?: Record<string, string>; allowedExternalEgressRules?: Array<{ cidr: string; ports?: Array<{ port: number; protocol: "TCP" | "UDP"; }>; }>; prometheusFqdn?: string; clusterName?: string; environment?: string; managedCertificateEnabled?: boolean; createKubernetesSecrets?: boolean; } export interface AwsCloudConfig { region: string; profile?: string; accessKeyId?: string; secretAccessKey?: string; } export interface GcpCloudConfig { project: string; region: string; zone?: string; credentials?: string; } export type CloudConfig = AwsCloudConfig | GcpCloudConfig; export interface DeploymentResult { success: boolean; outputs?: any; summary?: any; error?: string; kubeconfig?: string; rollbackPerformed?: boolean; duration?: number; costMonitoring?: { enabled: boolean; namespace?: string; tier?: string; budget?: number; currency?: string; dashboardUrl?: string; reason?: string; error?: string; }; } export interface FieldValidationError { field: string; message: string; value?: any; } export interface DeploymentConfig { stackName: string; secretsJson: string; companyName: string; cloudProvider?: "aws" | "gcp"; helmChartPath?: string; cloudConfig?: CloudConfig; namespace?: string; deploymentType?: "shared" | "dedicated"; planTier?: import("./plans.js").PlanTier; kubecostEnabled?: boolean; defaultDomain?: string; enableRafikiAuth?: boolean; enableRafikiBackend?: boolean; enableNginx?: boolean; enableRedis?: boolean; rafikiAuthImage?: { repository?: string; tag?: string; pullPolicy?: string; }; rafikiBackendImage?: { repository?: string; tag?: string; pullPolicy?: string; }; nginxImage?: { repository?: string; tag?: string; pullPolicy?: string; }; redisImage?: { repository?: string; tag?: string; pullPolicy?: string; }; ingressClassName?: string; dedicatedDeploymentHpaEnabledByDefault?: boolean; sharedDeploymentNetworkPolicyEnabled?: boolean; ingressControllerNamespace?: string; ingressControllerPodSelectorLabels?: Record<string, string>; allowedExternalEgressRules?: Array<{ cidr: string; ports?: Array<{ port: number; protocol: "TCP" | "UDP"; }>; }>; } export interface NamespaceConfig { name: string; labels?: Record<string, string>; annotations?: Record<string, string>; resourceQuota?: { requests?: { cpu?: string; memory?: string; storage?: string; }; limits?: { cpu?: string; memory?: string; storage?: string; }; persistentvolumeclaims?: string; }; } export interface SharedClusterConfig { clusterName: string; kubeconfig?: string; namespaces?: NamespaceConfig[]; staticIpName?: string; region?: string; zone?: string; project?: string; vpcId?: string; kubecostEnabled?: boolean; tierCapacity?: { maxBasicTenants: number; maxStandardTenants: number; maxPremiumTenants: number; maxEnterpriseTenants: number; }; } export interface TierDeploymentResult extends DeploymentResult { tierInfo?: { planTier: import("./plans.js").PlanTier; resourceAllocation: import("./plans.js").TierResourceAllocation; costEstimate?: { monthly: number; currency: string; }; costMonitoring?: { enabled: boolean; dashboardUrl?: string; budgetAllocated?: number; budgetThresholds?: number[]; alertsEnabled?: boolean; }; }; } export interface ClusterLookupResult { exists: boolean; kubeconfig?: string; clusterName?: string; staticIpName?: string; vpcId?: string; region?: string; zone?: string; project?: string; } export interface K8sLoadBalancerIngress { hostname?: string; ip?: string; } export interface K8sLoadBalancerStatus { ingress?: K8sLoadBalancerIngress[]; } export interface IngressStatus { loadBalancer?: K8sLoadBalancerStatus; } export interface ServiceStatus { loadBalancer?: K8sLoadBalancerStatus; } //# sourceMappingURL=index.d.ts.map