Skip to content

Commit

Permalink
chore(setup): use consistent collector name
Browse files Browse the repository at this point in the history
I've also moved collector name determination to the Job template. This
is part of an effort to eventually do no templating in bash scripts and
Terraform manifests.
  • Loading branch information
swiatekm committed Jun 12, 2024
1 parent baf3acc commit bfdba18
Show file tree
Hide file tree
Showing 26 changed files with 265 additions and 236 deletions.
4 changes: 3 additions & 1 deletion deploy/helm/sumologic/conf/cleanup/cleanup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ export HTTP_PROXY="${HTTP_PROXY:=""}"
export HTTPS_PROXY="${HTTPS_PROXY:=""}"
export NO_PROXY="${NO_PROXY:=""}"

readonly SUMOLOGIC_COLLECTOR_NAME="${SUMOLOGIC_COLLECTOR_NAME:?}"

cp /etc/terraform/*.tf /terraform/
cd /terraform || exit 1

Expand All @@ -17,7 +19,7 @@ cd /terraform || exit 1
terraform init -input=false -get=false || terraform init -input=false -upgrade

# shellcheck disable=SC1083
terraform import sumologic_collector.collector {{ template "terraform.collector.name" . }}
terraform import sumologic_collector.collector "${SUMOLOGIC_COLLECTOR_NAME}"
# shellcheck disable=SC1083
terraform import kubernetes_secret.sumologic_collection_secret {{ template "terraform.secret.fullname" . }}

Expand Down
12 changes: 7 additions & 5 deletions deploy/helm/sumologic/conf/setup/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

readonly DEBUG_MODE=${DEBUG_MODE:="false"}
readonly DEBUG_MODE_ENABLED_FLAG="true"
readonly SUMOLOGIC_COLLECTOR_NAME="${SUMOLOGIC_COLLECTOR_NAME:?}"

# Set variables for terraform
export TF_VAR_collector_name="${SUMOLOGIC_COLLECTOR_NAME}"

# Let's compare the variables ignoring the case with help of ${VARIABLE,,} which makes the string lowercased
# so that we don't have to deal with True vs true vs TRUE
Expand Down Expand Up @@ -118,26 +122,24 @@ else
echo "Please refer to https://help.sumologic.com/docs/manage/fields/ to manually create the fields after you have removed unused fields to free up capacity."
fi

readonly COLLECTOR_NAME="{{ template "terraform.collector.name" . }}"

# Sumo Logic Collector and HTTP sources
# Only import sources when collector exists.
if terraform import sumologic_collector.collector "${COLLECTOR_NAME}"; then
if terraform import sumologic_collector.collector "${SUMOLOGIC_COLLECTOR_NAME}"; then
true # prevent to render empty if; then
{{- $ctx := .Values -}}
{{- range $type, $sources := .Values.sumologic.collector.sources }}
{{- if eq (include "terraform.sources.component_enabled" (dict "Values" $ctx "Type" $type)) "true" }}
{{- range $key, $source := $sources }}
{{- if eq (include "terraform.sources.to_create" (dict "Context" $ctx "Type" $type "Name" $key)) "true" }}
terraform import sumologic_http_source.{{ template "terraform.sources.name" (dict "Name" $key "Type" $type) }} "${COLLECTOR_NAME}/{{ $source.name }}"
terraform import sumologic_http_source.{{ template "terraform.sources.name" (dict "Name" $key "Type" $type) }} "${SUMOLOGIC_COLLECTOR_NAME}/{{ $source.name }}"
{{- end }}
{{- end }}
{{- else if and (eq $type "metrics") $ctx.sumologic.traces.enabled }}
{{- /*
If traces are enabled and metrics are disabled, create default metrics source anyway
*/}}
{{- if hasKey $sources "default" }}
terraform import sumologic_http_source.{{ template "terraform.sources.name" (dict "Name" "default" "Type" $type) }} "${COLLECTOR_NAME}/{{ $sources.default.name }}"
terraform import sumologic_http_source.{{ template "terraform.sources.name" (dict "Name" "default" "Type" $type) }} "${SUMOLOGIC_COLLECTOR_NAME}/{{ $sources.default.name }}"
{{- end }}
{{- end }}
{{- end }}
Expand Down
5 changes: 0 additions & 5 deletions deploy/helm/sumologic/conf/setup/variables.tf
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
variable "collector_name" {
type = string
{{- if .Values.sumologic.collectorName }}
default = "{{ .Values.sumologic.collectorName }}"
{{- else }}
default = "{{ template "sumologic.clusterNameReplaceSpaceWithDash" . }}"
{{- end }}
}

variable "namespace_name" {
Expand Down
2 changes: 1 addition & 1 deletion deploy/helm/sumologic/templates/_helpers/_setup.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Example usage:

*/}}
{{- define "terraform.collector.name" -}}
{{- if .Values.sumologic.collectorName }}{{ .Values.sumologic.collectorName }}{{- else}}{{ .Values.sumologic.clusterName }}{{- end}}
{{- if .Values.sumologic.collectorName }}{{ .Values.sumologic.collectorName }}{{- else}}{{ template "sumologic.clusterNameReplaceSpaceWithDash" . }}{{- end}}
{{- end -}}

{{/*
Expand Down
2 changes: 2 additions & 0 deletions deploy/helm/sumologic/templates/cleanup/job.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ spec:
{{- else }}
value: {{ .Values.sumologic.endpoint }}
{{- end }}
- name: SUMOLOGIC_COLLECTOR_NAME
value: {{ include "terraform.collector.name" . }}
{{- include "proxy-env-variables" . | nindent 10 }}
securityContext:
runAsUser: 999
Expand Down
2 changes: 2 additions & 0 deletions deploy/helm/sumologic/templates/setup/job.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ spec:
{{- else }}
value: {{ .Values.sumologic.endpoint }}
{{- end }}
- name: SUMOLOGIC_COLLECTOR_NAME
value: {{ include "terraform.collector.name" . }}
{{- include "proxy-env-variables" . | nindent 8 -}}
{{- if .Values.sumologic.setup.debug }}
- name: DEBUG_MODE
Expand Down
2 changes: 2 additions & 0 deletions tests/helm/testdata/goldenfile/cleanup/basic.output.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ spec:
env:
- name: SUMOLOGIC_BASE_URL
value:
- name: SUMOLOGIC_COLLECTOR_NAME
value: kubernetes

- name: NO_PROXY
value: kubernetes.default.svc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ spec:
env:
- name: SUMOLOGIC_BASE_URL
value: http://RELEASE-NAME-sumologic-mock.sumologic.svc.cluster.local.:3000/terraform/api/
- name: SUMOLOGIC_COLLECTOR_NAME
value: kubernetes

- name: NO_PROXY
value: kubernetes.default.svc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ spec:
env:
- name: SUMOLOGIC_BASE_URL
value: http://RELEASE-NAME-sumologic-mock.sumologic.svc.cluster.local.:3000/terraform/api/
- name: SUMOLOGIC_COLLECTOR_NAME
value: kubernetes

- name: NO_PROXY
value: kubernetes.default.svc
Expand Down
2 changes: 2 additions & 0 deletions tests/helm/testdata/goldenfile/setup/basic.output.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ spec:
env:
- name: SUMOLOGIC_BASE_URL
value:
- name: SUMOLOGIC_COLLECTOR_NAME
value: kubernetes

- name: NO_PROXY
value: kubernetes.default.svc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ spec:
env:
- name: SUMOLOGIC_BASE_URL
value: http://RELEASE-NAME-sumologic-mock.sumologic.svc.cluster.local.:3000/terraform/api/
- name: SUMOLOGIC_COLLECTOR_NAME
value: kubernetes

- name: NO_PROXY
value: kubernetes.default.svc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ spec:
env:
- name: SUMOLOGIC_BASE_URL
value: http://RELEASE-NAME-sumologic-mock.sumologic.svc.cluster.local.:3000/terraform/api/
- name: SUMOLOGIC_COLLECTOR_NAME
value: kubernetes

- name: NO_PROXY
value: kubernetes.default.svc
Expand Down
41 changes: 21 additions & 20 deletions tests/helm/testdata/goldenfile/terraform/all_fields.output.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,10 @@ data:
readonly DEBUG_MODE=${DEBUG_MODE:="false"}
readonly DEBUG_MODE_ENABLED_FLAG="true"
readonly SUMOLOGIC_COLLECTOR_NAME="${SUMOLOGIC_COLLECTOR_NAME:?}"
# Set variables for terraform
export TF_VAR_collector_name="${SUMOLOGIC_COLLECTOR_NAME}"
# Let's compare the variables ignoring the case with help of ${VARIABLE,,} which makes the string lowercased
# so that we don't have to deal with True vs true vs TRUE
Expand Down Expand Up @@ -752,28 +756,26 @@ data:
echo "Please refer to https://help.sumologic.com/docs/manage/fields/ to manually create the fields after you have removed unused fields to free up capacity."
fi
readonly COLLECTOR_NAME="kubernetes"
# Sumo Logic Collector and HTTP sources
# Only import sources when collector exists.
if terraform import sumologic_collector.collector "${COLLECTOR_NAME}"; then
if terraform import sumologic_collector.collector "${SUMOLOGIC_COLLECTOR_NAME}"; then
true # prevent to render empty if; then
terraform import sumologic_http_source.default_events_source "${COLLECTOR_NAME}/events"
terraform import sumologic_http_source.default_otlp_events_source "${COLLECTOR_NAME}/events-otlp"
terraform import sumologic_http_source.default_logs_source "${COLLECTOR_NAME}/logs"
terraform import sumologic_http_source.default_otlp_logs_source "${COLLECTOR_NAME}/logs-otlp"
terraform import sumologic_http_source.apiserver_metrics_source "${COLLECTOR_NAME}/apiserver-metrics"
terraform import sumologic_http_source.control_plane_metrics_source "${COLLECTOR_NAME}/control-plane-metrics"
terraform import sumologic_http_source.controller_metrics_source "${COLLECTOR_NAME}/kube-controller-manager-metrics"
terraform import sumologic_http_source.default_metrics_source "${COLLECTOR_NAME}/(default-metrics)"
terraform import sumologic_http_source.default_otlp_metrics_source "${COLLECTOR_NAME}/metrics-otlp"
terraform import sumologic_http_source.kubelet_metrics_source "${COLLECTOR_NAME}/kubelet-metrics"
terraform import sumologic_http_source.node_metrics_source "${COLLECTOR_NAME}/node-exporter-metrics"
terraform import sumologic_http_source.scheduler_metrics_source "${COLLECTOR_NAME}/kube-scheduler-metrics"
terraform import sumologic_http_source.state_metrics_source "${COLLECTOR_NAME}/kube-state-metrics"
terraform import sumologic_http_source.test_source_metrics_source "${COLLECTOR_NAME}/(Test source)"
terraform import sumologic_http_source.default_traces_source "${COLLECTOR_NAME}/traces"
terraform import sumologic_http_source.default_otlp_traces_source "${COLLECTOR_NAME}/traces-otlp"
terraform import sumologic_http_source.default_events_source "${SUMOLOGIC_COLLECTOR_NAME}/events"
terraform import sumologic_http_source.default_otlp_events_source "${SUMOLOGIC_COLLECTOR_NAME}/events-otlp"
terraform import sumologic_http_source.default_logs_source "${SUMOLOGIC_COLLECTOR_NAME}/logs"
terraform import sumologic_http_source.default_otlp_logs_source "${SUMOLOGIC_COLLECTOR_NAME}/logs-otlp"
terraform import sumologic_http_source.apiserver_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/apiserver-metrics"
terraform import sumologic_http_source.control_plane_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/control-plane-metrics"
terraform import sumologic_http_source.controller_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kube-controller-manager-metrics"
terraform import sumologic_http_source.default_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/(default-metrics)"
terraform import sumologic_http_source.default_otlp_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/metrics-otlp"
terraform import sumologic_http_source.kubelet_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kubelet-metrics"
terraform import sumologic_http_source.node_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/node-exporter-metrics"
terraform import sumologic_http_source.scheduler_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kube-scheduler-metrics"
terraform import sumologic_http_source.state_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kube-state-metrics"
terraform import sumologic_http_source.test_source_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/(Test source)"
terraform import sumologic_http_source.default_traces_source "${SUMOLOGIC_COLLECTOR_NAME}/traces"
terraform import sumologic_http_source.default_otlp_traces_source "${SUMOLOGIC_COLLECTOR_NAME}/traces-otlp"
fi
# Kubernetes Secret
Expand All @@ -800,7 +802,6 @@ data:
variables.tf: |
variable "collector_name" {
type = string
default = "kubernetes"
}
variable "namespace_name" {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -591,6 +591,10 @@ data:
readonly DEBUG_MODE=${DEBUG_MODE:="false"}
readonly DEBUG_MODE_ENABLED_FLAG="true"
readonly SUMOLOGIC_COLLECTOR_NAME="${SUMOLOGIC_COLLECTOR_NAME:?}"
# Set variables for terraform
export TF_VAR_collector_name="${SUMOLOGIC_COLLECTOR_NAME}"
# Let's compare the variables ignoring the case with help of ${VARIABLE,,} which makes the string lowercased
# so that we don't have to deal with True vs true vs TRUE
Expand Down Expand Up @@ -707,27 +711,25 @@ data:
echo "Please refer to https://help.sumologic.com/docs/manage/fields/ to manually create the fields after you have removed unused fields to free up capacity."
fi
readonly COLLECTOR_NAME="kubernetes"
# Sumo Logic Collector and HTTP sources
# Only import sources when collector exists.
if terraform import sumologic_collector.collector "${COLLECTOR_NAME}"; then
if terraform import sumologic_collector.collector "${SUMOLOGIC_COLLECTOR_NAME}"; then
true # prevent to render empty if; then
terraform import sumologic_http_source.default_events_source "${COLLECTOR_NAME}/events"
terraform import sumologic_http_source.default_otlp_events_source "${COLLECTOR_NAME}/events-otlp"
terraform import sumologic_http_source.default_logs_source "${COLLECTOR_NAME}/logs"
terraform import sumologic_http_source.default_otlp_logs_source "${COLLECTOR_NAME}/logs-otlp"
terraform import sumologic_http_source.apiserver_metrics_source "${COLLECTOR_NAME}/apiserver-metrics"
terraform import sumologic_http_source.control_plane_metrics_source "${COLLECTOR_NAME}/control-plane-metrics"
terraform import sumologic_http_source.controller_metrics_source "${COLLECTOR_NAME}/kube-controller-manager-metrics"
terraform import sumologic_http_source.default_metrics_source "${COLLECTOR_NAME}/(default-metrics)"
terraform import sumologic_http_source.default_otlp_metrics_source "${COLLECTOR_NAME}/metrics-otlp"
terraform import sumologic_http_source.kubelet_metrics_source "${COLLECTOR_NAME}/kubelet-metrics"
terraform import sumologic_http_source.node_metrics_source "${COLLECTOR_NAME}/node-exporter-metrics"
terraform import sumologic_http_source.scheduler_metrics_source "${COLLECTOR_NAME}/kube-scheduler-metrics"
terraform import sumologic_http_source.state_metrics_source "${COLLECTOR_NAME}/kube-state-metrics"
terraform import sumologic_http_source.default_traces_source "${COLLECTOR_NAME}/traces"
terraform import sumologic_http_source.default_otlp_traces_source "${COLLECTOR_NAME}/traces-otlp"
terraform import sumologic_http_source.default_events_source "${SUMOLOGIC_COLLECTOR_NAME}/events"
terraform import sumologic_http_source.default_otlp_events_source "${SUMOLOGIC_COLLECTOR_NAME}/events-otlp"
terraform import sumologic_http_source.default_logs_source "${SUMOLOGIC_COLLECTOR_NAME}/logs"
terraform import sumologic_http_source.default_otlp_logs_source "${SUMOLOGIC_COLLECTOR_NAME}/logs-otlp"
terraform import sumologic_http_source.apiserver_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/apiserver-metrics"
terraform import sumologic_http_source.control_plane_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/control-plane-metrics"
terraform import sumologic_http_source.controller_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kube-controller-manager-metrics"
terraform import sumologic_http_source.default_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/(default-metrics)"
terraform import sumologic_http_source.default_otlp_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/metrics-otlp"
terraform import sumologic_http_source.kubelet_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kubelet-metrics"
terraform import sumologic_http_source.node_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/node-exporter-metrics"
terraform import sumologic_http_source.scheduler_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kube-scheduler-metrics"
terraform import sumologic_http_source.state_metrics_source "${SUMOLOGIC_COLLECTOR_NAME}/kube-state-metrics"
terraform import sumologic_http_source.default_traces_source "${SUMOLOGIC_COLLECTOR_NAME}/traces"
terraform import sumologic_http_source.default_otlp_traces_source "${SUMOLOGIC_COLLECTOR_NAME}/traces-otlp"
fi
# Kubernetes Secret
Expand All @@ -754,7 +756,6 @@ data:
variables.tf: |
variable "collector_name" {
type = string
default = "kubernetes"
}
variable "namespace_name" {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,10 @@ data:
readonly DEBUG_MODE=${DEBUG_MODE:="false"}
readonly DEBUG_MODE_ENABLED_FLAG="true"
readonly SUMOLOGIC_COLLECTOR_NAME="${SUMOLOGIC_COLLECTOR_NAME:?}"
# Set variables for terraform
export TF_VAR_collector_name="${SUMOLOGIC_COLLECTOR_NAME}"
# Let's compare the variables ignoring the case with help of ${VARIABLE,,} which makes the string lowercased
# so that we don't have to deal with True vs true vs TRUE
Expand Down Expand Up @@ -587,11 +591,9 @@ data:
echo "Please refer to https://help.sumologic.com/docs/manage/fields/ to manually create the fields after you have removed unused fields to free up capacity."
fi
readonly COLLECTOR_NAME="kubernetes"
# Sumo Logic Collector and HTTP sources
# Only import sources when collector exists.
if terraform import sumologic_collector.collector "${COLLECTOR_NAME}"; then
if terraform import sumologic_collector.collector "${SUMOLOGIC_COLLECTOR_NAME}"; then
true # prevent to render empty if; then
fi
Expand Down Expand Up @@ -619,7 +621,6 @@ data:
variables.tf: |
variable "collector_name" {
type = string
default = "kubernetes"
}
variable "namespace_name" {
Expand Down
9 changes: 5 additions & 4 deletions tests/helm/testdata/goldenfile/terraform/custom.output.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,10 @@ data:
readonly DEBUG_MODE=${DEBUG_MODE:="false"}
readonly DEBUG_MODE_ENABLED_FLAG="true"
readonly SUMOLOGIC_COLLECTOR_NAME="${SUMOLOGIC_COLLECTOR_NAME:?}"
# Set variables for terraform
export TF_VAR_collector_name="${SUMOLOGIC_COLLECTOR_NAME}"
# Let's compare the variables ignoring the case with help of ${VARIABLE,,} which makes the string lowercased
# so that we don't have to deal with True vs true vs TRUE
Expand Down Expand Up @@ -587,11 +591,9 @@ data:
echo "Please refer to https://help.sumologic.com/docs/manage/fields/ to manually create the fields after you have removed unused fields to free up capacity."
fi
readonly COLLECTOR_NAME="kubernetes"
# Sumo Logic Collector and HTTP sources
# Only import sources when collector exists.
if terraform import sumologic_collector.collector "${COLLECTOR_NAME}"; then
if terraform import sumologic_collector.collector "${SUMOLOGIC_COLLECTOR_NAME}"; then
true # prevent to render empty if; then
fi
Expand Down Expand Up @@ -619,7 +621,6 @@ data:
variables.tf: |
variable "collector_name" {
type = string
default = "kubernetes"
}
variable "namespace_name" {
Expand Down
Loading

0 comments on commit bfdba18

Please sign in to comment.