Upgrade procedures for sidecars below v4.10
If you have an existing sidecar running on any prior version to v4.10
,
use the instructions on this page to successfully upgrade your sidecar.
CloudFormation
The CloudFormation template is now open source, meaning that it is not necessary to re-download it from the control plane on every sidecar upgrade.
In order to upgrade an existing sidecar v4.9
or older, use the cft_sidecar.yaml
file
available in our CloudFormation AWS EC2
repository.
For new CloudFormation sidecars, use the quick start guide for CloudFormation AWS EC2 and follow the instructions in the upgrade procedures page.
Configuring the template parameters
A few template parameters changed from the previous version of the template that was downloaded from the control plane. When upgrading an existing sidecar, the parameters you need to configure are:
SidecarVersion
: for the first upgrade coming from a version prior tov4.10.0
to any versionv4.10.0
or later, it is required that you explicitly assign the target version inSidecarVersion
. Once you upgrade the sidecar tov4.10.0
or later and at least one instance shows up green in the Sidecar Instances tab in the control plane, you may proceed to use the 1-click upgrade by settingSidecarVersion
to an empty string.ContainerRegistry
: use Cyral's public container registry by setting it topublic.ecr.aws/cyral
. The previous container registry ingcr.io
is deprecated.ContainerRegistryKey
: set it to an empty string.ContainerRegistryUsername
: set it to an empty string.
Datadog Metrics Support
In case your existing sidecar exports metrics to Datadog, use the following
snippet to inject a Datadog agent container onto the sidecar EC2 instances,
with identical behavior to how the included Datadog agent worked for sidecars
< v4.10
:
export DD_API_KEY=<YOUR DATADOG API KEY> ; echo "init_config:\ninstances:\n - prometheus_url: http://localhost:${METRICS_PORT:-9000}/metrics\n namespace: \"cyral\"\n metrics:\n - go*\n - cyral*\n - node*\n - up\n prometheus_metrics_prefix: prom_\n health_service_check: true\n send_distribution_buckets: true\n send_histograms_buckets: true" > conf.yaml ; sudo docker run -d --restart always --network host --name datadog -v $(pwd)/conf.yaml:/etc/datadog-agent/conf.d/openmetrics.d/conf.yaml -e DD_API_KEY=${DD_API_KEY} --log-driver json-file --log-opt max-file=5 --log-opt max-size=10m --log-opt tag="containerName=\"{{.Name}}\"" gcr.io/datadoghq/agent:7.34.0
Simply replace <YOUR DATADOG API KEY>
in the code snippet above with your
actual Datadog API key you wish to use. Then use the modified snippet as the
value for the CFT parameter CustomUserDataPost
.
Terraform
Sidecars v4.10
require version v4.3.0
or later of our
Cyral Sidecar module for AWS EC2.
We recommend you to use the pessimistic version constraint operator (~>
) to allow Terraform
to always use the latest version v4.x.y
available as follows:
module "cyral_sidecar" {
source = "cyralinc/sidecar-ec2/aws"
version = "~> 4.0" # terraform module version
...
}
When upgrading an existing sidecar, the parameters you need to configure are:
sidecar_version
: for the first upgrade coming from a version prior tov4.10.0
to any versionv4.10.0
or later, it is required that you explicitly assign the target version insidecar_version
. Once you upgrade the sidecar tov4.10.0
or later and at least one instance shows up green in the Sidecar Instances tab in the control plane, you may proceed to use the 1-click upgrade by settingsidecar_version
to an empty string or completely removing this parameter from the module call and re-applying it.container_registry
: use Cyral's public container registry by setting it topublic.ecr.aws/cyral
. The previous container registry ingcr.io
is deprecated.container_registry_key
: set it to an empty string.container_registry_username
: set it to an empty string.
Datadog Metrics Support
In case your existing sidecar exports metrics to Datadog, use the following
snippet to inject a Datadog agent container onto the sidecar EC2 instances,
with identical behavior to how the included Datadog agent worked for sidecars
< v4.10
:
export DD_API_KEY=<YOUR DATADOG API KEY> ; echo "init_config:\ninstances:\n - prometheus_url: http://localhost:${METRICS_PORT:-9000}/metrics\n namespace: \"cyral\"\n metrics:\n - go*\n - cyral*\n - node*\n - up\n prometheus_metrics_prefix: prom_\n health_service_check: true\n send_distribution_buckets: true\n send_histograms_buckets: true" > conf.yaml ; sudo docker run -d --restart always --network host --name datadog -v $(pwd)/conf.yaml:/etc/datadog-agent/conf.d/openmetrics.d/conf.yaml -e DD_API_KEY=${DD_API_KEY} --log-driver json-file --log-opt max-file=5 --log-opt max-size=10m --log-opt tag="containerName=\"{{.Name}}\"" gcr.io/datadoghq/agent:7.34.0
Simply replace <YOUR DATADOG API KEY>
in the code snippet above with your
actual Datadog API key you wish to use. Then use the modified snippet as the
value for the parameter custom_user_data
using the following format:
{"pre": "", "pre_sidecar_start": "", "post": "<CODE SNIPPET HERE>"}
Helm
Follow the upgrade procedure in the Helm sidecar quick start.
Linux
Follow the upgrade procedure in the Linux sidecar quick start.