use crate::analyzer::kubelint::types::ObjectKind;
pub fn matches_kind(specifier: &str, kind: &ObjectKind) -> bool {
match specifier {
"DeploymentLike" => kind.is_deployment_like(),
"JobLike" => kind.is_job_like(),
"Any" => true,
_ => specifier == kind.as_str(),
}
}
pub fn expand_kind_specifier(specifier: &str) -> Vec<ObjectKind> {
match specifier {
"DeploymentLike" => vec![
ObjectKind::Deployment,
ObjectKind::StatefulSet,
ObjectKind::DaemonSet,
ObjectKind::ReplicaSet,
ObjectKind::Pod,
ObjectKind::Job,
ObjectKind::CronJob,
ObjectKind::DeploymentConfig,
],
"JobLike" => vec![ObjectKind::Job, ObjectKind::CronJob],
"Any" => vec![
ObjectKind::Deployment,
ObjectKind::StatefulSet,
ObjectKind::DaemonSet,
ObjectKind::ReplicaSet,
ObjectKind::Pod,
ObjectKind::Job,
ObjectKind::CronJob,
ObjectKind::Service,
ObjectKind::Ingress,
ObjectKind::NetworkPolicy,
ObjectKind::Role,
ObjectKind::ClusterRole,
ObjectKind::RoleBinding,
ObjectKind::ClusterRoleBinding,
ObjectKind::ServiceAccount,
ObjectKind::HorizontalPodAutoscaler,
ObjectKind::PodDisruptionBudget,
],
_ => ObjectKind::from_kind(specifier)
.map(|k| vec![k])
.unwrap_or_default(),
}
}