File tree Expand file tree Collapse file tree 8 files changed +219
-0
lines changed
modules/integrations/splunk_otel_eks Expand file tree Collapse file tree 8 files changed +219
-0
lines changed Original file line number Diff line number Diff line change 1+ <!-- BEGIN_TF_DOCS -->
2+ ## Requirements
3+
4+ | Name | Version |
5+ | ------| ---------|
6+ | <a name =" requirement_terraform " ></a > [ terraform] ( #requirement\_ terraform ) | >= 1.9.1 |
7+ | <a name =" requirement_aws " ></a > [ aws] ( #requirement\_ aws ) | ~ > 5.90 |
8+ | <a name =" requirement_helm " ></a > [ helm] ( #requirement\_ helm ) | 2.17.0 |
9+ | <a name =" requirement_kubernetes " ></a > [ kubernetes] ( #requirement\_ kubernetes ) | 2.36.0 |
10+
11+ ## Providers
12+
13+ | Name | Version |
14+ | ------| ---------|
15+ | <a name =" provider_aws " ></a > [ aws] ( #provider\_ aws ) | 5.99.1 |
16+ | <a name =" provider_helm " ></a > [ helm] ( #provider\_ helm ) | 2.17.0 |
17+
18+ ## Modules
19+
20+ No modules.
21+
22+ ## Resources
23+
24+ | Name | Type |
25+ | ------| ------|
26+ | [ helm_release.splunk_otel_collector] ( https://registry.terraform.io/providers/hashicorp/helm/2.17.0/docs/resources/release ) | resource |
27+ | [ aws_eks_cluster.cluster] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster ) | data source |
28+ | [ aws_eks_cluster_auth.cluster] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster_auth ) | data source |
29+ | [ aws_secretsmanager_secret.secrets] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/secretsmanager_secret ) | data source |
30+ | [ aws_secretsmanager_secret_version.secrets] ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/secretsmanager_secret_version ) | data source |
31+
32+ ## Inputs
33+
34+ | Name | Description | Type | Default | Required |
35+ | ------| -------------| ------| ---------| :--------:|
36+ | <a name =" input_aws_profile " ></a > [ aws\_ profile] ( #input\_ aws\_ profile ) | AWS profile to use. | ` string ` | n/a | yes |
37+ | <a name =" input_aws_region " ></a > [ aws\_ region] ( #input\_ aws\_ region ) | Default AWS region. | ` string ` | n/a | yes |
38+ | <a name =" input_cluster_name " ></a > [ cluster\_ name] ( #input\_ cluster\_ name ) | The name of the EKS cluster | ` string ` | n/a | yes |
39+ | <a name =" input_default_tags " ></a > [ default\_ tags] ( #input\_ default\_ tags ) | A map of tags to apply to resources. | ` map(string) ` | n/a | yes |
40+ | <a name =" input_splunk_otel_collector " ></a > [ splunk\_ otel\_ collector] ( #input\_ splunk\_ otel\_ collector ) | Configuration for the Splunk OpenTelemetry Collector | <pre >object({<br /> splunk_observability_realm = string<br /> splunk_platform_endpoint = string<br /> splunk_platform_index = string<br /> gateway = bool<br /> splunk_observability_profiling = bool<br /> environment = string<br /> discovery = bool<br /> })</pre > | n/a | yes |
41+
42+ ## Outputs
43+
44+ No outputs.
45+ <!-- END_TF_DOCS -->
Original file line number Diff line number Diff line change 1+ terraform {
2+ # Intentionally empty. Will be filled by Terragrunt.
3+ backend "s3" {}
4+ }
Original file line number Diff line number Diff line change 1+ data "aws_eks_cluster" "cluster" {
2+ name = var. cluster_name
3+ }
4+
5+ data "aws_eks_cluster_auth" "cluster" {
6+ name = var. cluster_name
7+ }
Original file line number Diff line number Diff line change 1+ resource "helm_release" "splunk_otel_collector" {
2+ name = " splunk-otel-collector"
3+ repository = " https://signalfx.github.io/splunk-otel-collector-chart"
4+ chart = " splunk-otel-collector"
5+ version = " 0.122.0"
6+ namespace = " splunk-otel-collector"
7+ create_namespace = true
8+ set {
9+ name = " cloudProvider"
10+ value = " aws"
11+ }
12+
13+ set {
14+ name = " distribution"
15+ value = " eks"
16+ }
17+
18+ set {
19+ name = " splunkObservability.accessToken"
20+ value = data.aws_secretsmanager_secret_version.secrets[" splunk_access_ingest_token" ].secret_string
21+ }
22+
23+ set {
24+ name = " clusterName"
25+ value = var.cluster_name
26+ }
27+
28+ set {
29+ name = " splunkObservability.realm"
30+ value = var.splunk_otel_collector.splunk_observability_realm
31+ }
32+
33+ set {
34+ name = " splunkPlatform.endpoint"
35+ value = var.splunk_otel_collector.splunk_platform_endpoint
36+ }
37+
38+ set {
39+ name = " splunkPlatform.index"
40+ value = var.splunk_otel_collector.splunk_platform_index
41+ }
42+
43+ set {
44+ name = " splunkPlatform.token"
45+ value = data.aws_secretsmanager_secret_version.secrets[" splunk_cloud_hec_token_eks" ].secret_string
46+ }
47+
48+ set {
49+ name = " gateway.enabled"
50+ value = var.splunk_otel_collector.gateway
51+ }
52+
53+ set {
54+ name = " splunkObservability.profilingEnabled"
55+ value = var.splunk_otel_collector.splunk_observability_profiling
56+ }
57+
58+ set {
59+ name = " environment"
60+ value = var.splunk_otel_collector.environment
61+ }
62+
63+ set {
64+ name = " agent.discovery.enabled"
65+ value = var.splunk_otel_collector.discovery
66+ }
67+ }
Original file line number Diff line number Diff line change 1+ # Re-use AWS settings from root module.
2+ provider "aws" {
3+ region = var. aws_region
4+ profile = var. aws_profile
5+
6+ # Required, as per security guidelines.
7+ default_tags {
8+ tags = var. default_tags
9+ }
10+ }
11+
12+ provider "kubernetes" {
13+ host = data. aws_eks_cluster . cluster . endpoint
14+ cluster_ca_certificate = base64decode (data. aws_eks_cluster . cluster . certificate_authority [0 ]. data )
15+ token = data. aws_eks_cluster_auth . cluster . token
16+ }
17+
18+ provider "helm" {
19+ kubernetes {
20+ host = data. aws_eks_cluster . cluster . endpoint
21+ cluster_ca_certificate = base64decode (data. aws_eks_cluster . cluster . certificate_authority [0 ]. data )
22+ token = data. aws_eks_cluster_auth . cluster . token
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ locals {
2+ secrets = {
3+ splunk_access_ingest_token = {
4+ name = " /app/tf/splunk_access_ingest_token"
5+ }
6+ splunk_cloud_hec_token_eks = {
7+ name = " /app/tf/splunk_cloud_hec_token_eks"
8+ }
9+ }
10+ }
11+
12+ data "aws_secretsmanager_secret" "secrets" {
13+ for_each = local. secrets
14+ name = each. value . name
15+ }
16+
17+ data "aws_secretsmanager_secret_version" "secrets" {
18+ for_each = data. aws_secretsmanager_secret . secrets
19+ secret_id = each. value . id
20+ }
Original file line number Diff line number Diff line change 1+ variable "aws_profile" {
2+ type = string
3+ description = " AWS profile to use."
4+ }
5+
6+ variable "aws_region" {
7+ type = string
8+ description = " Default AWS region."
9+ }
10+
11+ variable "cluster_name" {
12+ description = " The name of the EKS cluster"
13+ type = string
14+ }
15+
16+ variable "splunk_otel_collector" {
17+ description = " Configuration for the Splunk OpenTelemetry Collector"
18+ type = object ({
19+ splunk_observability_realm = string
20+ splunk_platform_endpoint = string
21+ splunk_platform_index = string
22+ gateway = bool
23+ splunk_observability_profiling = bool
24+ environment = string
25+ discovery = bool
26+ })
27+ }
28+
29+ variable "default_tags" {
30+ type = map (string )
31+ description = " A map of tags to apply to resources."
32+ }
Original file line number Diff line number Diff line change 1+ terraform {
2+ # Provider versions.
3+ required_providers {
4+ aws = {
5+ source = " hashicorp/aws"
6+ version = " ~> 5.90"
7+ }
8+ helm = {
9+ source = " hashicorp/helm"
10+ version = " 2.17.0"
11+ }
12+ kubernetes = {
13+ source = " hashicorp/kubernetes"
14+ version = " 2.36.0"
15+ }
16+ }
17+
18+ # OpenTofu version.
19+ required_version = " >= 1.9.1"
20+ }
You can’t perform that action at this time.
0 commit comments