@chimoney.io/iaas-k8s-deployment
Version:
Kubernetes Infrastructure as a Service deployment package for streamlined multi-cloud environments
88 lines • 2.49 kB
TypeScript
export declare enum PlanTier {
BASIC = "basic",
STANDARD = "standard",
PREMIUM = "premium",
ENTERPRISE = "enterprise"
}
export interface ResourceAllocation {
cpu: string;
memory: string;
storage: string;
replicas: number;
}
export interface ServiceResourceAllocation {
rafikiAuth: ResourceAllocation;
rafikiBackend: ResourceAllocation;
nginx: ResourceAllocation;
redis: ResourceAllocation;
}
export interface TierResourceAllocation {
tier: PlanTier;
displayName: string;
description: string;
monthlyPriceUSD: number;
maxNamespaces: number;
maxPersistentVolumeClaims: number;
networkPoliciesEnabled: boolean;
services: ServiceResourceAllocation;
quota: {
requests: {
cpu: string;
memory: string;
storage: string;
};
limits: {
cpu: string;
memory: string;
storage: string;
};
pods: number;
services: number;
secrets: number;
configmaps: number;
persistentvolumeclaims: number;
};
}
export interface KubecostConfig {
enabled: boolean;
namespace: string;
currency: string;
billingAccountId?: string;
costAllocationLabels: string[];
alertingEnabled: boolean;
budgetAlerts: {
enabled: boolean;
thresholds: number[];
};
}
export interface TierConfiguration {
planTier: PlanTier;
resourceAllocation: TierResourceAllocation;
kubecostConfig?: KubecostConfig;
billingMetadata?: {
customerId: string;
subscriptionId: string;
billingCycle: "monthly" | "annual";
};
}
export declare const PLAN_TIER_DEFINITIONS: Record<PlanTier, TierResourceAllocation>;
export declare const DEFAULT_KUBECOST_CONFIG: KubecostConfig;
export declare function validateTierConfiguration(config: TierConfiguration): string[];
export declare function getTierConfiguration(tier: PlanTier): TierConfiguration;
export declare function calculateTierCosts(tier: PlanTier, usageDays?: number): {
baseCost: number;
estimatedResourceCost: number;
totalEstimatedCost: number;
};
export declare function compareTiers(currentTier: PlanTier, targetTier: PlanTier): {
isUpgrade: boolean;
isDowngrade: boolean;
resourceDelta: {
cpu: string;
memory: string;
storage: string;
replicas: number;
};
costDelta: number;
};
//# sourceMappingURL=plans.d.ts.map