1+ locals {
2+ app_name = " haystack-agent"
3+ deployment_yaml_file_path = " ${ path . module } /templates/deployment.yaml"
4+ count = " ${ var . haystack-agent [" enabled" ]? 1 : 0 } "
5+ config_file_path = " ${ path . module } /templates/haystack-agent.conf"
6+ checksum = " ${ sha1 (" ${ data . template_file . config_data . rendered } " )} "
7+ configmap_name = " haystack-agent-${ local . checksum } "
8+ }
9+
10+ resource "kubernetes_config_map" "haystack-config" {
11+ metadata {
12+ name = " ${ local . configmap_name } "
13+ namespace = " ${ var . namespace } "
14+ }
15+ data {
16+ " haystack-agent.conf" = " ${ data . template_file . config_data . rendered } "
17+ }
18+ count = " ${ local . count } "
19+ }
20+
21+ data "template_file" "config_data" {
22+ template = " ${ file (" ${ local . config_file_path } " )} "
23+
24+ vars {
25+ kafka_endpoint = " ${ var . kafka_hostname } :${ var . kafka_port } "
26+ aws_bucket_name = " ${ var . haystack-agent [" blobs_aws_bucket_name" ]} "
27+ aws_region = " ${ var . haystack-agent [" blobs_aws_region" ]} "
28+ }
29+ }
30+
31+ data "template_file" "deployment_yaml" {
32+ template = " ${ file (" ${ local . deployment_yaml_file_path } " )} "
33+
34+ vars {
35+ app_name = " ${ local . app_name } "
36+ node_selecter_label = " ${ var . node_selector_label } "
37+ image = " expediadotcom/haystack-agent:${ var . haystack-agent [" version" ]} "
38+ replicas = " ${ var . haystack-agent [" instances" ]} "
39+ enabled = " ${ var . haystack-agent [" enabled" ]} "
40+ cpu_limit = " ${ var . haystack-agent [" cpu_limit" ]} "
41+ cpu_request = " ${ var . haystack-agent [" cpu_request" ]} "
42+ memory_limit = " ${ var . haystack-agent [" memory_limit" ]} "
43+ memory_request = " ${ var . haystack-agent [" memory_request" ]} "
44+ jvm_memory_limit = " ${ var . haystack-agent [" jvm_memory_limit" ]} "
45+ kubectl_context_name = " ${ var . kubectl_context_name } "
46+ kubectl_executable_name = " ${ var . kubectl_executable_name } "
47+ namespace = " ${ var . namespace } "
48+ spans_service_port = " ${ var . spans_service_port } "
49+ blobs_service_port = " ${ var . blobs_service_port } "
50+ configmap_name = " ${ local . configmap_name } "
51+ graphite_port = " ${ var . graphite_port } "
52+ graphite_host = " ${ var . graphite_hostname } "
53+ graphite_enabled = " ${ var . graphite_enabled } "
54+ }
55+ }
56+
57+ resource "null_resource" "kubectl_apply" {
58+ triggers {
59+ template = " ${ data . template_file . deployment_yaml . rendered } "
60+ }
61+ provisioner "local-exec" {
62+ command = " echo '${ data . template_file . deployment_yaml . rendered } ' | ${ var . kubectl_executable_name } apply -f - --context ${ var . kubectl_context_name } "
63+ }
64+ count = " ${ local . count } "
65+ }
66+
67+
68+ resource "null_resource" "kubectl_destroy" {
69+
70+ provisioner "local-exec" {
71+ command = " echo '${ data . template_file . deployment_yaml . rendered } ' | ${ var . kubectl_executable_name } delete -f - --context ${ var . kubectl_context_name } "
72+ when = " destroy"
73+ }
74+ count = " ${ local . count } "
75+ }
0 commit comments