import { Resource } from '@c6o/kubeclient-contracts'; import { Condition, DeleteOptions, LabelSelector, ListMeta, ObjectMeta, Time } from '../meta/v1'; import { SELinuxOptions } from '../core/v1'; export interface AllowedCSIDriver { name: string; } export interface AllowedFlexVolume { driver: string; } export interface AllowedHostPath { pathPrefix?: string; readOnly?: boolean; } export interface Eviction extends Resource { apiVersion?: 'policy/v1beta1'; deleteOptions?: DeleteOptions; kind?: 'Eviction'; metadata?: ObjectMeta; } export interface FSGroupStrategyOptions { ranges?: Array; rule?: string; } export interface HostPortRange { max: number; min: number; } export interface IDRange { max: number; min: number; } export interface PodDisruptionBudget extends Resource { apiVersion?: 'policy/v1beta1'; kind?: 'PodDisruptionBudget'; metadata?: ObjectMeta; spec?: PodDisruptionBudgetSpec; status?: PodDisruptionBudgetStatus; } export interface PodDisruptionBudgetList extends Resource { apiVersion?: 'policy/v1beta1'; items: Array; kind?: 'PodDisruptionBudgetList'; metadata?: ListMeta; } export interface PodDisruptionBudgetSpec { maxUnavailable?: number | string; minAvailable?: number | string; selector?: LabelSelector; } export interface PodDisruptionBudgetStatus { conditions?: Array; currentHealthy: number; desiredHealthy: number; disruptedPods?: { [name: string]: Time; }; disruptionsAllowed: number; expectedPods: number; observedGeneration?: number; } export interface PodSecurityPolicy extends Resource { apiVersion?: 'policy/v1beta1'; kind?: 'PodSecurityPolicy'; metadata?: ObjectMeta; spec?: PodSecurityPolicySpec; } export interface PodSecurityPolicyList extends Resource { apiVersion?: 'policy/v1beta1'; items: Array; kind?: 'PodSecurityPolicyList'; metadata?: ListMeta; } export interface PodSecurityPolicySpec { allowPrivilegeEscalation?: boolean; allowedCSIDrivers?: Array; allowedCapabilities?: Array; allowedFlexVolumes?: Array; allowedHostPaths?: Array; allowedProcMountTypes?: Array; allowedUnsafeSysctls?: Array; defaultAddCapabilities?: Array; defaultAllowPrivilegeEscalation?: boolean; forbiddenSysctls?: Array; fsGroup: FSGroupStrategyOptions; hostIPC?: boolean; hostNetwork?: boolean; hostPID?: boolean; hostPorts?: Array; privileged?: boolean; readOnlyRootFilesystem?: boolean; requiredDropCapabilities?: Array; runAsGroup?: RunAsGroupStrategyOptions; runAsUser: RunAsUserStrategyOptions; runtimeClass?: RuntimeClassStrategyOptions; seLinux: SELinuxStrategyOptions; supplementalGroups: SupplementalGroupsStrategyOptions; volumes?: Array; } export interface RunAsGroupStrategyOptions { ranges?: Array; rule: string; } export interface RunAsUserStrategyOptions { ranges?: Array; rule: string; } export interface RuntimeClassStrategyOptions { allowedRuntimeClassNames: Array; defaultRuntimeClassName?: string; } export interface SELinuxStrategyOptions { rule: string; seLinuxOptions?: SELinuxOptions; } export interface SupplementalGroupsStrategyOptions { ranges?: Array; rule?: string; }