Skip to content

Commit e61bc26

Browse files
feat: workload_custom_metrics_data_source TF resource
- Supports Prometheus data source type with presets (e.g. "jvm") and manual metric definitions - Full CRUD operations using the WorkloadOptimizationAPI custom metrics endpoints - Import support with format <cluster_id>/<data_source_id> - Read uses List endpoint and filters by ID (no individual GET endpoint exists)
1 parent 38aba8c commit e61bc26

File tree

5 files changed

+1095
-43
lines changed

5 files changed

+1095
-43
lines changed

castai/provider.go

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -43,48 +43,50 @@ func Provider(version string) *schema.Provider {
4343
},
4444

4545
ResourcesMap: map[string]*schema.Resource{
46-
"castai_eks_cluster": resourceEKSCluster(),
47-
"castai_eks_clusterid": resourceEKSClusterID(),
48-
"castai_gke_cluster": resourceGKECluster(),
49-
"castai_gke_cluster_id": resourceGKEClusterId(),
50-
"castai_aks_cluster": resourceAKSCluster(),
51-
"castai_autoscaler": resourceAutoscaler(),
52-
"castai_evictor_advanced_config": resourceEvictionConfig(),
53-
"castai_node_template": resourceNodeTemplate(),
54-
"castai_rebalancing_schedule": resourceRebalancingSchedule(),
55-
"castai_rebalancing_job": resourceRebalancingJob(),
56-
"castai_node_configuration": resourceNodeConfiguration(),
57-
"castai_node_configuration_default": resourceNodeConfigurationDefault(),
58-
"castai_eks_user_arn": resourceEKSClusterUserARN(),
59-
"castai_reservations": resourceReservations(),
60-
"castai_commitments": resourceCommitments(),
61-
"castai_organization_members": resourceOrganizationMembers(),
62-
"castai_sso_connection": resourceSSOConnection(),
63-
"castai_service_account": resourceServiceAccount(),
64-
"castai_service_account_key": resourceServiceAccountKey(),
65-
"castai_workload_scaling_policy": resourceWorkloadScalingPolicy(),
66-
"castai_workload_scaling_policy_order": resourceWorkloadScalingPolicyOrder(),
67-
"castai_organization_group": resourceOrganizationGroup(),
68-
"castai_role_bindings": resourceRoleBindings(),
69-
"castai_hibernation_schedule": resourceHibernationSchedule(),
70-
"castai_security_runtime_rule": resourceSecurityRuntimeRule(),
71-
"castai_allocation_group": resourceAllocationGroup(),
72-
"castai_enterprise_group": resourceEnterpriseGroup(),
73-
"castai_enterprise_role_binding": resourceEnterpriseRoleBinding(),
74-
"castai_cache_group": resourceCacheGroup(),
75-
"castai_cache_configuration": resourceCacheConfiguration(),
76-
"castai_cache_rule": resourceCacheRule(),
46+
"castai_eks_cluster": resourceEKSCluster(),
47+
"castai_eks_clusterid": resourceEKSClusterID(),
48+
"castai_gke_cluster": resourceGKECluster(),
49+
"castai_gke_cluster_id": resourceGKEClusterId(),
50+
"castai_aks_cluster": resourceAKSCluster(),
51+
"castai_autoscaler": resourceAutoscaler(),
52+
"castai_evictor_advanced_config": resourceEvictionConfig(),
53+
"castai_node_template": resourceNodeTemplate(),
54+
"castai_rebalancing_schedule": resourceRebalancingSchedule(),
55+
"castai_rebalancing_job": resourceRebalancingJob(),
56+
"castai_node_configuration": resourceNodeConfiguration(),
57+
"castai_node_configuration_default": resourceNodeConfigurationDefault(),
58+
"castai_eks_user_arn": resourceEKSClusterUserARN(),
59+
"castai_reservations": resourceReservations(),
60+
"castai_commitments": resourceCommitments(),
61+
"castai_organization_members": resourceOrganizationMembers(),
62+
"castai_sso_connection": resourceSSOConnection(),
63+
"castai_service_account": resourceServiceAccount(),
64+
"castai_service_account_key": resourceServiceAccountKey(),
65+
"castai_organization_group": resourceOrganizationGroup(),
66+
"castai_role_bindings": resourceRoleBindings(),
67+
"castai_hibernation_schedule": resourceHibernationSchedule(),
68+
"castai_security_runtime_rule": resourceSecurityRuntimeRule(),
69+
"castai_allocation_group": resourceAllocationGroup(),
70+
"castai_enterprise_group": resourceEnterpriseGroup(),
71+
"castai_enterprise_role_binding": resourceEnterpriseRoleBinding(),
72+
"castai_cache_group": resourceCacheGroup(),
73+
"castai_cache_configuration": resourceCacheConfiguration(),
74+
"castai_cache_rule": resourceCacheRule(),
75+
76+
"castai_workload_scaling_policy": resourceWorkloadScalingPolicy(),
77+
"castai_workload_scaling_policy_order": resourceWorkloadScalingPolicyOrder(),
78+
"castai_workload_custom_metrics_data_source": resourceWorkloadCustomMetricsDataSource(),
7779
},
7880

7981
DataSourcesMap: map[string]*schema.Resource{
80-
"castai_eks_settings": dataSourceEKSSettings(),
81-
"castai_gke_user_policies": dataSourceGKEPolicies(),
82-
"castai_organization": dataSourceOrganization(),
83-
"castai_rebalancing_schedule": dataSourceRebalancingSchedule(),
84-
"castai_hibernation_schedule": dataSourceHibernationSchedule(),
85-
"castai_workload_scaling_policy_order": dataSourceWorkloadScalingPolicyOrder(),
86-
"castai_cache_group": dataSourceCacheGroup(),
87-
"castai_impersonation_service_account": dataSourceImpersonationServiceAccount(),
82+
"castai_eks_settings": dataSourceEKSSettings(),
83+
"castai_gke_user_policies": dataSourceGKEPolicies(),
84+
"castai_organization": dataSourceOrganization(),
85+
"castai_rebalancing_schedule": dataSourceRebalancingSchedule(),
86+
"castai_hibernation_schedule": dataSourceHibernationSchedule(),
87+
"castai_workload_scaling_policy_order": dataSourceWorkloadScalingPolicyOrder(),
88+
"castai_cache_group": dataSourceCacheGroup(),
89+
"castai_impersonation_service_account": dataSourceImpersonationServiceAccount(),
8890
},
8991

9092
ConfigureContextFunc: providerConfigure(version),

0 commit comments

Comments
 (0)