diff --git a/x-pack/plugins/cloud_security_posture/common/constants.ts b/x-pack/plugins/cloud_security_posture/common/constants.ts index 37453e1364f8d..fd99edd8705e7 100644 --- a/x-pack/plugins/cloud_security_posture/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/common/constants.ts @@ -63,6 +63,8 @@ export const CSP_RULE_TEMPLATE_SAVED_OBJECT_TYPE = 'csp-rule-template'; export const CLOUDBEAT_VANILLA = 'cloudbeat/cis_k8s'; export const CLOUDBEAT_EKS = 'cloudbeat/cis_eks'; +export const CLOUDBEAT_AKS = 'cloudbeat/cis_aks'; +export const CLOUDBEAT_GKE = 'cloudbeat/cis_gke'; export const CLOUDBEAT_AWS = 'cloudbeat/cis_aws'; export const CLOUDBEAT_GCP = 'cloudbeat/cis_gcp'; export const CLOUDBEAT_AZURE = 'cloudbeat/cis_azure'; diff --git a/x-pack/plugins/cloud_security_posture/public/assets/icons/cis_aks_logo.svg b/x-pack/plugins/cloud_security_posture/public/assets/icons/cis_aks_logo.svg new file mode 100644 index 0000000000000..f81d0ae7d0370 --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/public/assets/icons/cis_aks_logo.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/x-pack/plugins/cloud_security_posture/public/assets/icons/cis_gke_logo.svg b/x-pack/plugins/cloud_security_posture/public/assets/icons/cis_gke_logo.svg new file mode 100644 index 0000000000000..6dd28d61ebf0d --- /dev/null +++ b/x-pack/plugins/cloud_security_posture/public/assets/icons/cis_gke_logo.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/x-pack/plugins/cloud_security_posture/public/common/constants.ts b/x-pack/plugins/cloud_security_posture/public/common/constants.ts index 54e0b7467069a..185cd19f200cf 100644 --- a/x-pack/plugins/cloud_security_posture/public/common/constants.ts +++ b/x-pack/plugins/cloud_security_posture/public/common/constants.ts @@ -20,9 +20,13 @@ import { VULN_MGMT_POLICY_TEMPLATE, CLOUDBEAT_VULN_MGMT_GCP, CLOUDBEAT_VULN_MGMT_AZURE, + CLOUDBEAT_AKS, + CLOUDBEAT_GKE, } from '../../common/constants'; import eksLogo from '../assets/icons/cis_eks_logo.svg'; +import aksLogo from '../assets/icons/cis_aks_logo.svg'; +import gkeLogo from '../assets/icons/cis_gke_logo.svg'; export const statusColors = { passed: euiThemeVars.euiColorVis0, @@ -48,7 +52,7 @@ export interface CloudPostureIntegrationProps { name: string; shortName: string; options: Array<{ - type: PostureInput; + type: PostureInput | typeof CLOUDBEAT_AKS | typeof CLOUDBEAT_GKE; name: string; benchmark: string; disabled?: boolean; @@ -119,7 +123,7 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { { type: CLOUDBEAT_VANILLA, name: i18n.translate('xpack.csp.kspmIntegration.vanillaOption.nameTitle', { - defaultMessage: 'Self-Managed/Vanilla Kubernetes', + defaultMessage: 'Self-Managed', }), benchmark: i18n.translate('xpack.csp.kspmIntegration.vanillaOption.benchmarkTitle', { defaultMessage: 'CIS Kubernetes', @@ -129,12 +133,43 @@ export const cloudPostureIntegrations: CloudPostureIntegrations = { { type: CLOUDBEAT_EKS, name: i18n.translate('xpack.csp.kspmIntegration.eksOption.nameTitle', { - defaultMessage: 'EKS (Elastic Kubernetes Service)', + defaultMessage: 'EKS', }), benchmark: i18n.translate('xpack.csp.kspmIntegration.eksOption.benchmarkTitle', { defaultMessage: 'CIS EKS', }), icon: eksLogo, + tooltip: i18n.translate('xpack.csp.kspmIntegration.eksOption.tooltipContent', { + defaultMessage: 'Elastic Kubernetes Service', + }), + }, + { + type: CLOUDBEAT_AKS, + name: i18n.translate('xpack.csp.kspmIntegration.aksOption.nameTitle', { + defaultMessage: 'AKS', + }), + benchmark: i18n.translate('xpack.csp.kspmIntegration.aksOption.benchmarkTitle', { + defaultMessage: 'CIS AKS', + }), + disabled: true, + icon: aksLogo, + tooltip: i18n.translate('xpack.csp.kspmIntegration.aksOption.tooltipContent', { + defaultMessage: 'Azure Kubernetes Service - Coming soon', + }), + }, + { + type: CLOUDBEAT_GKE, + name: i18n.translate('xpack.csp.kspmIntegration.gkeOption.nameTitle', { + defaultMessage: 'GKE', + }), + benchmark: i18n.translate('xpack.csp.kspmIntegration.gkeOption.benchmarkTitle', { + defaultMessage: 'CIS GKE', + }), + disabled: true, + icon: gkeLogo, + tooltip: i18n.translate('xpack.csp.kspmIntegration.gkeOption.tooltipContent', { + defaultMessage: 'Google Kubernetes Engine - Coming soon', + }), }, ], }, diff --git a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx index 7f3b7dc51319e..3427c25e49c19 100644 --- a/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx +++ b/x-pack/plugins/cloud_security_posture/public/components/fleet_extensions/policy_template_form.test.tsx @@ -101,8 +101,8 @@ describe('', () => { it('renders KSPM input selector', () => { const { getByLabelText } = render(); - const option1 = getByLabelText('Self-Managed/Vanilla Kubernetes'); - const option2 = getByLabelText('EKS (Elastic Kubernetes Service)'); + const option1 = getByLabelText('Self-Managed'); + const option2 = getByLabelText('EKS'); expect(option1).toBeInTheDocument(); expect(option2).toBeInTheDocument(); @@ -116,7 +116,7 @@ describe('', () => { const eksPolicy = getMockPolicyEKS(); const { getByLabelText } = render(); - const option = getByLabelText('EKS (Elastic Kubernetes Service)'); + const option = getByLabelText('EKS'); userEvent.click(option); // Listen to the 2nd triggered by the test. @@ -148,8 +148,8 @@ describe('', () => { ); - const option1 = getByLabelText('Self-Managed/Vanilla Kubernetes'); - const option2 = getByLabelText('EKS (Elastic Kubernetes Service)'); + const option1 = getByLabelText('Self-Managed'); + const option2 = getByLabelText('EKS'); expect(option1).toBeInTheDocument(); expect(option2).toBeInTheDocument();