Explore how to customize your Kubernetes optimization journey
PerfectScale allows easy cluster management through profiles, increasing productivity with minimal effort. PerfectScale provides various customizations to help you create your own K8s optimization ecosystem, enhancing observability across your environment and simplifying alerting, ticketing, pricing management, etc., to ensure you achieve the best possible results.
To make your optimization process seamless and personalized, PerfectScale provides various out-of-the-box integrations, helping you to build your optimization ecosystem tailored to your business needs.
You can configure integrations using either UI profiles or CRD-based inline profiles. However, we strongly recommend you configure the integrations via PerfectScale UI.
Profiles referenced via CRD take precedence over profiles assigned in UI.
You can quickly configure integrations using Customization Profiles (YAML files) via UI, or customize your environment by configuring profiles with CRDs.
You can apply multiple profiles to a single cluster, but only one profile of each type (Slack, Jira, etc.).
✨ Recommended path
Create and test profiles in the UI first.
Use refByID to reference the profile by its ID (case-sensitive).
Ensure the profile type you are referencing matches the existing profile type.
apiVersion:perfectscale.io/v1kind:ClusterSettingsmetadata:name:cluster-settings-mainnamespace:perfectscalespec:profiles:pricing: # Reference an existing pricing profile by ID # No assigned field needed - refByID is always assigned-type:customrefByID:"pricing-1"
Configuring integration profile via UI
You can seamlessly create an integration profile directly from the PerfectScale UI. Simply go to Settings, select the integration type, and click Add profile. This approach allows you to set up and manage integrations quickly and accurately. Detailed step-by-step instructions for each integration type are provided on their dedicated integration pages.
Settings
When a profile is created in the UI, its ID has the following format: {type|class}-N. Underscores in type/class names are converted to hyphens in IDs.
Examples: jira-1, slack-2, resiliency-alerts-1, etc.
Created profiles in the UI can be referenced in a CRD using refByID.
Example:
Profiles created via CRD are cluster-specific and cannot be referenced by other clusters.
Prerequisites for configuring the integration profile via CRD
The feature is supported starting from the exporter v1.0.80.
If psc-exporter (v1.0.80+) is newly installed, the required CRDs are installed automatically, allowing you to manage cluster settings using custom resources (CRs). However, CRDs are not installed automatically when running a helm upgrade. If you are upgrading, you must install the CRDs manually by running:
Combining refByID and inline integrations
We highly recommend creating profiles via UI and referencing them using refByID rather than inline profiles. If you prefer using inline profiles, you can test them in UI before activation, even when assigned: false.
You have the option to configure a CR that combines multiple integrations, allowing you to manage them with a single resource. Additionally, you can include existing profiles that were previously configured via the PerfectScale UI, giving you flexibility to mix and match inline and UI-based configurations in one setup.
You can combine both approaches by referencing profiles created in the PerfectScale UI directly in your CR using refByID (case-sensitive). However, refByID cannot reference profiles created via CR, and a CR cannot have both refByID and an inline profile with assigned: true for the same type.
Example:
✅ Valid:refByID + inline profiles with assigned: false (for testing)
❌ Invalid:refByID + inline profile with assigned: true
When using refByID, ensure the profile type matches the existing profile's type: jira, slack, teams, etc.
Example
CRD profiles (both refByID and inline) take precedence over UI-assigned profiles and will override them.
Deleting a profile
Profiles assigned to clusters cannot be deleted.
To delete a profile, it must first be unassigned from all clusters.
If the profile is still assigned to one or more clusters, deletion is blocked, and a pop-up message will inform you of the reason with the following instructions.
Unassign a cluster befor deleting
To unassign a profile from all clusters, navigate to Manage Assignments and deselect the relevant profile.
Profiles created via CRD cannot be deleted in the UI, so the delete option is disabled.
Troubleshooting
CRD creation failed
Check if ClusterSettings already exists: kubectl get clustersettings -n perfectscale