Deploy
Deploy the Cloud Reporter app to Kubernetes via Helm.
The chart deploys a CronJob for periodic reporter invocation.
Step 1: Prerequisites
| Requirement | Description |
|---|---|
| Log10x License | Your license key (get one) |
| Helm | Helm CLI installed |
| kubectl | Configured to access your cluster |
| GitHub Token | Personal access token for config repo (create one) |
| Analyzer Credentials | API keys for your platform: Splunk, Elasticsearch, Datadog, or CloudWatch |
Step 2: Add Helm Repository
Verify the chart appears:
Step 3: Configure Application
Create a new file called my-cloud-reporter.yaml in your working directory. This Helm values file will be used in all subsequent steps.
Step 4: GitOps (optional)
Log10x uses GitOps to manage configuration centrally.
Setup steps:
- Fork the Config Repository
- Create a branch for your configuration
- Edit the app configuration to match your analyzer input and metric output
Add GitHub credentials to your my-cloud-reporter.yaml:
jobs:
- name: reporter-job
# ... (previous config)
github:
config:
token: "YOUR-GITHUB-TOKEN"
repo: "YOUR-ACCOUNT/REPO-NAME"
branch: "my-cloud-reporter-config" # Optional: defaults to main
An Init Container pulls your config before each job run, ensuring always up-to-date configuration.
Step 5: Configure Secrets
Store sensitive credentials in Kubernetes Secrets rather than plain files.
Important: Only add secrets for analyzer inputs and metric outputs you've configured in your Cloud Reporter app configuration.
Create the secret (example for Splunk):
kubectl create secret generic cloud-reporter-credentials \
--from-literal=splunk-username=YOUR_USERNAME \
--from-literal=splunk-password=YOUR_PASSWORD
Add secret references to your my-cloud-reporter.yaml:
jobs:
- name: reporter-job
# ... (previous config)
extraEnv:
# From k8s Secret (example for Splunk)
- name: SPLUNK_USERNAME
valueFrom:
secretKeyRef:
name: cloud-reporter-credentials
key: splunk-username
- name: SPLUNK_PASSWORD
valueFrom:
secretKeyRef:
name: cloud-reporter-credentials
key: splunk-password
# For other platforms (see vendor docs for credentials):
# Elasticsearch: ELASTIC_USERNAME, ELASTIC_PASSWORD
# Datadog: DD_API_KEY, DD_APP_KEY
# CloudWatch: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
Step 7: Verify
Check the CronJob was created:
Trigger a manual run to test:
Check pod logs for errors:
Verify no errors appear in the log file.
View results in the dashboard:
Once running, view your cost analytics in the Cloud Reporter Dashboard.
Quickstart Full Sample
log10xLicense: "YOUR-LICENSE-KEY-HERE"
jobs:
- name: cloud-reporter
runtimeName: my-first-cloud-reporter
schedule: "*/15 * * * *"
args:
- "@apps/cloud/reporter"
github:
config:
token: "YOUR-GITHUB-TOKEN"
repo: "YOUR-ACCOUNT/REPO-NAME"
branch: "my-cloud-reporter-config"
extraEnv:
- name: SPLUNK_USERNAME
valueFrom:
secretKeyRef:
name: cloud-reporter-credentials
key: splunk-username
- name: SPLUNK_PASSWORD
valueFrom:
secretKeyRef:
name: cloud-reporter-credentials
key: splunk-password