Update a project token
For existing core-operator based installations.
Before starting:
Core-Operator is not directly tied to usage of TOKEN so no action should be taken. Telemetry Pipeline CRDs are not affected by this
For existing core-instance installations:
Helm
Important: This is applicable only if the core-instance was installed using Helm charts, like this:
helm install <release_name> calyptia/core-instance --set=cloudToken=<token> --set=coreInstance=<coreinstanceName>
List Helm releases:
helm ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
<release_name> default 1 2024-02-02 14:33:47.33815851 +0000 UTC deployed core-instance-2.4.0 v2.4.0
Pick the release name as desired:
helm upgrade RELEASE_NAME calyptia/core-instance –set=cloudToken="<new_token>"
Replace RELEASE_NAME
with the actual name of the release.
Verification
A core-instance deployment consists of two containers. You must run both commands to confirm the change.
kubectl get deploy calyptia-core-instance-<release_name> -o yaml | yq .spec.template.spec.containers[].env[3]
Newly set token should be shown as output of this command
Example of successful update:
# helm upgrade ci calyptia/core-instance --set=coreInstance=test12345 --set=cloudToken=12345
Release "ci" has been upgraded. Happy Helming!
NAME: ci
LAST DEPLOYED: Fri Feb 2 12:21:25 2024
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
# kubectl get deploy calyptia-core-instance-ci -o yaml | yq .spec.template.spec.containers[1].env[3]
name: TOKEN
value: "12345"
# kubectl get deploy calyptia-core-instance-ci -o yaml | yq .spec.template.spec.containers[0].env[3]
name: TOKEN
value: "12345"
No further action is required. After updating the token the operator will handle replacement of the token for all pipelines.
For detailed instructions about how to validate changes, look at the Validation for Helm and Pipeline CLI at the bottom of this document.
Pipeline CLI
Important: This example is only usable if the core-instance was installed using Pipeline CLI like this:
calyptia create core_instance operator --name <core_instance_name>
List available core_instances:
calyptia get core_instances
Output should look like
NAME
4325 test
Confirm core-instance exists
kubectl get deployment calyptia-<core_instance_name>-default-sync
Check for TOKEN value
kubectl get deploy calyptia-<core_instance_name>-default-sync -o yaml | yq .spec.template.spec.containers[].env[3]
Result should resemble this:
name: TOKEN
value: "<OLD_TOKEN>"
name: TOKEN
value: "<OLD_TOKEN>"
kubectl edit deploy calyptia-<core_instance_name>-default-sync
The terminal will prompt users to edit values with vim. Browse to spec.template.spec.containers using the editor navigate to both TOKEN
fields and change value:
field with the new token.
Example of successful update:
# kubectl get deploy calyptia-<core_instance_name>-default-sync
-o yaml | yq .spec.template.spec.containers[0].env[3]
name: TOKEN
value: "<new_token>"
# kubectl get deploy calyptia-<core_instance_name>-default-sync
-o yaml | yq .spec.template.spec.containers[1].env[3]
name: TOKEN
value: "<new_token>"
For detailed instructions on how to validate changes, look at the Validation for Helm and Pipeline CLI at the bottom of this document. Validation for Helm and Pipeline CLI:
After successful replacement of TOKEN in the deployment. Something resembling this output should be available:
kubectl get po -w
NAME READY STATUS RESTARTS AGE
calyptia-core-controller-manager-ddbd858f7-qkvgd 1/1 Running 0 9m17s
calyptia-test1234-default-sync-85bf467d6c-w6prs 2/2 Running 0 7m30s
calyptia-test123456-default-sync-5cf679db6d-swwxb 2/2 Running 0 5m2s
health-check-f0dc-mt4s-566695479-9985l 1/1 Running 0 4m25s
calyptia-test-default-sync-5b55d7986f-bq26h 2/2 Running 0 4m19s
health-check-8f70-dxk4-69b4bc6569-4cnww 1/1 Running 0 4m16s
pptt-tux0-6d97fb855c-7mhf8 1/1 Running 0 76s
calyptia-test-default-sync-785f5dcc47-j8g4r 0/2 Pending 0 0s
calyptia-test-default-sync-785f5dcc47-j8g4r 0/2 Pending 0 0s
calyptia-test-default-sync-785f5dcc47-j8g4r 0/2 ContainerCreating 0 0s
calyptia-test-default-sync-785f5dcc47-j8g4r 2/2 Running 0 2s
calyptia-test-default-sync-5b55d7986f-bq26h 2/2 Terminating 0 5m31s
calyptia-test-default-sync-5b55d7986f-bq26h 0/2 Terminating 0 5m31s
pptt-tux0-6d97fb855c-7mhf8 1/1 Terminating 0 2m29s
health-check-8f70-dxk4-69b4bc6569-4cnww 1/1 Terminating 0 5m29s
pptt-tux0-6d97fb855c-7mhf8 0/1 Terminating 0 2m29s
health-check-8f70-dxk4-69b4bc6569-4cnww 0/1 Terminating 0 5m29s
calyptia-test-default-sync-5b55d7986f-bq26h 0/2 Terminating 0 5m32s
pptt-tux0-6d97fb855c-7mhf8 0/1 Terminating 0 2m29s
health-check-8f70-dxk4-78fc785d55-jd7lz 0/1 Pending 0 0s
pptt-tux0-6d97fb855c-7mhf8 0/1 Terminating 0 2m29s
pptt-tux0-6d97fb855c-7mhf8 0/1 Terminating 0 2m29s
calyptia-test-default-sync-5b55d7986f-bq26h 0/2 Terminating 0 5m32s
calyptia-test-default-sync-5b55d7986f-bq26h 0/2 Terminating 0 5m32s
pptt-tux0-76c8cb7999-5kdtw 0/1 Pending 0 0s
pptt-tux0-76c8cb7999-5kdtw 0/1 Pending 0 0s
health-check-8f70-dxk4-78fc785d55-jd7lz 0/1 ContainerCreating 0 0s
pptt-tux0-76c8cb7999-5kdtw 0/1 ContainerCreating 0 0s
pptt-tux0-76c8cb7999-5kdtw 1/1 Running 0 1s
health-check-8f70-dxk4-78fc785d55-jd7lz 1/1 Running 0 1s
The change between statuses for pipeline pods should be visible from terminating -> pending -> running
Alternatively:
kubectl get po -l "app.kubernetes.io/component=calyptia-core"
NAME READY STATUS RESTARTS AGE
health-check-f0dc-mt4s-566695479-9985l 1/1 Running 0 5s
pptt-tux0-76c8cb7999-5kdtw 1/1 Running 0 4s
health-check-8f70-dxk4-78fc785d55-jd7lz 1/1 Running 0 4s
All pod AGE
values should be within the time frame from the applied change to the
moment of querying.
Granular example:
kubectl get pipeline
NAME STATUS
health-check-f0dc-mt4s STARTED
pptt-tux0 STARTED
health-check-8f70-dxk4 STARTED
Using one of the pipeline names fetch configMap
kubectl get cm pptt-tux0 -o yaml ## replace pptt-tux0 with the name of actual pipeline
apiVersion: v1
data:
fluent-bit.yaml: |
service:
plugins_file: /opt/calyptia-fluent-bit/etc/enterprise_plugins.conf
Parsers_File: /config/parsers.conf
customs:
- name: calyptia
calyptia_tls.verify: "off"
calyptia_tls: "on"
api_key: <new_token>
All examples may vary in some minute details where the exact position of a property in outputs might slightly differ.
Legacy Telemetry Pipeline
Having an existing legacy core instance installed through Helm:
helm repo add calyptia https://helm.calyptia.com/
helm repo update
kubectl create namespace my-legacy-core
helm install my-legacy-core calyptia/core \
-n my-legacy-core \
--set name=my-legacy-core \
--set project_token=<old-token-here> \
--set api_url=https://cloud-api.calyptia.com
It can be updated to use a new token like this:
helm upgrade my-legacy-core calyptia/core \
-n my-legacy-core \
--set name=my-legacy-core \
--set project_token=<new-token-here> \
--set api_url=https://cloud-api.calyptia.com
No further action is required. The existing pipelines will be recreated.