Site24x7K8s Custom resource specification reference
This document describes all supported configuration options available for the Site24x7K8s custom resource used by the Site24x7 Kubernetes Operator.
The Site24x7K8s resource acts as the central configuration object for Site24x7 Kubernetes infrastructure monitoring and Application Performance Monitoring (APM). The site24x7-operator continuously watches this resource and automatically provisions, updates, and manages the required monitoring components based on the specified configuration.
Use this reference to customize infrastructure monitoring, APM instrumentation, proxy settings, scheduling behavior, resource allocation, etc.
Top-level configuration
The following settings control site24x7-operator behavior and pod scheduling.
| Field | Type | Default | Description |
|---|---|---|---|
applyDefaultTolerations |
Boolean | true |
When enabled, applies default tolerations to allow pods to run on control-plane and master nodes. |
tolerations |
Array | [] |
Custom tolerations to apply to all operator-managed pods. |
openShift |
Boolean | false |
Configure as true for OpenShift environments. |
gkeAutoPilot |
Boolean | false |
Configure as true for GKE Autopilot environments. |
applyPriorityClass |
Boolean | true |
Creates and applies a PriorityClass to ensure agent pods are scheduled with high priority. |
priorityClassValue |
Integer | 12000000 |
Priority value of the PriorityClass (higher values indicate higher priority). |
Proxy configuration
Use proxy settings when monitoring components must communicate through an HTTP or HTTPS proxy.
spec:
proxy:
http_proxy: ""
https_proxy: ""
| Field | Type | Default | Description |
|---|---|---|---|
proxy.http_proxy |
String | "" |
HTTP proxy URL (for example, http://proxy.example.com:8080). |
proxy.https_proxy |
String | "" |
HTTPS proxy URL (for example, https://proxy.example.com:8080). |
Installation type
Defines which type of monitoring to deploy.
spec:
installationType:
agentType: "custom"
customOptions:
server: true
applications: true
applogs: true
plugins: false
automation: false
apmInsight: true
process: false
resourceChecks: false
| Field | Type | Options | Description |
|---|---|---|---|
agentType |
String | fso, infra, custom |
Predefined monitoring profile or custom configuration. |
Agent types
| Type | Description |
|---|---|
fso |
Full-Stack Observability that enables all monitoring capabilities. |
infra |
Infrastructure monitoring only (Kubernetes and server metrics). |
custom |
Custom selection using customOptions. |
Custom options
Only applicable when agentType: "custom":
| Field | Type | Default | Description |
|---|---|---|---|
server |
Boolean | true |
Enables server/infrastructure monitoring. |
applications |
Boolean | false |
Enables application monitoring. |
applogs |
Boolean | false |
Enables application log collection. |
plugins |
Boolean | false |
Enables plugin-based monitoring. |
automation |
Boolean | false |
Enables IT automation features. |
apmInsight |
Boolean | true |
Enables APM Insight agent injection. |
process |
Boolean | false |
Enables process monitoring. |
resourceChecks |
Boolean | false |
Enables resource check monitoring. |
Infrastructure configuration
The infrastructure section controls Kubernetes cluster monitoring components, including the Site24x7 Agent, Kube State Metrics, Cluster Agent, and Service Account.
Basic settings
spec:
infrastructure:
clusterName: "MY-EKS-CLUSTER"
managementAction: true
| Field | Type | Default | Description |
|---|---|---|---|
clusterName |
String | Required | Display name for the Kubernetes cluster in Site24x7. |
managementAction |
Boolean | true |
Enables management actions (restart pods, scale deployments) from the Site24x7 console. |
Site24x7 agent
The DaemonSet that runs on every node to collect metrics.
The Linux agent DaemonSet is scheduled only on Linux nodes. Windows node pools are not supported for monitoring.
spec:
infrastructure:
site24x7Agent:
create: true
annotations: {}
leaseAPI:
enabled: true
leaseDurationSeconds: 50
updateStrategy:
type: "RollingUpdate"
rollingUpdate:
maxUnavailable: "55%"
nodeSelector: {}
| Field | Type | Default | Description |
|---|---|---|---|
create |
Boolean | true |
Determines whether to create the Site24x7 Agent DaemonSet. |
annotations |
Object | {} |
Additional annotations for the DaemonSet. |
nodeSelector |
Object | {} |
Node selector configuration for scheduling agent pods. |
Lease API configuration
Leader election settings for high availability:
| Field | Type | Default | Description |
|---|---|---|---|
leaseAPI.enabled |
Boolean | true |
Enables lease-based leader election. |
leaseAPI.leaseDurationSeconds |
Integer | 50 | Leadership lease duration in seconds. |
Update strategy
Controls DaemonSet rolling updates:
| Field | Type | Default | Description |
|---|---|---|---|
updateStrategy.type |
String | RollingUpdate |
DaemonSet update strategy type (RollingUpdate or OnDelete). |
updateStrategy.rollingUpdate.maxUnavailable |
String | 55% |
Maximum pods unavailable during an update (number or percentage). |
Site24x7 agent container
Configures the primary monitoring container deployed by the Site24x7 Agent.
spec:
infrastructure:
site24x7AgentContainer:
image:
repository: "site24x7"
name: "docker-agent"
tag: "release22200"
pullPolicy: "IfNotPresent"
resources:
requests:
memory: "100Mi"
limits:
memory: "1Gi"
installerName: "kubernetes"
extraEnv: []
securityContext: {}
applyNonRootSecurityContext: false
| Field | Type | Default | Description |
|---|---|---|---|
image.repository |
String | site24x7 |
Docker image repository. |
image.name |
String | docker-agent |
Docker image name. |
image.tag |
String | - |
Docker image version. |
image.pullPolicy |
String | IfNotPresent |
Image pull policy (Always, IfNotPresent, Never). |
resources |
Object | See example | Resource requests and limits. |
installerName |
String | kubernetes |
Installer identifier used during registration. |
extraEnv |
Array | [] |
Additional environment variables. |
securityContext |
Object | {} |
Container security context. |
applyNonRootSecurityContext |
Boolean | false |
Runs the container as a non-root user. |
AutoProfiler container
Sidecar container used for automatic APM agent injection:
autoProfilerContainer:
image:
repository: "site24x7"
name: "apminsight-autoprofiler"
tag: "latest"
pullPolicy: "IfNotPresent"
extraEnv:
- name: "<ENV NAME>"
value: "ENV VALUE"
| Field | Type | Default | Description |
|---|---|---|---|
image.repository |
String | - | Docker registry or repository for the Auto Profiler image. |
image.name |
String | - | Auto Profiler image name. |
image.tag |
String | - | Auto Profiler image version. |
image.pullPolicy |
String | IfNotPresent |
Image pull policy. |
extraEnv |
Array | [] |
Additional environment variables (e.g., a custom APM endpoint). |
Kube State metrics
Deployment for collecting Kubernetes object metrics.
spec:
infrastructure:
site24x7KubeStateMetrics:
create: true
annotations: {}
updateStrategy: {}
nodeSelector: {}
securityContext: {}
replicas: 1
image:
repository: "registry.k8s.io"
name: "kube-state-metrics/kube-state-metrics"
tag: "v2.9.2"
pullPolicy: "IfNotPresent"
imagePullSecrets: []
resources:
requests:
cpu: "10m"
memory: "100Mi"
limits:
cpu: "200m"
memory: "256Mi"
| Field | Type | Default | Description |
|---|---|---|---|
create |
Boolean | true |
Determines whether the Kube State Metrics deployment is created. |
replicas |
Integer | 1 |
Number of deployment replicas. |
annotations |
Object | {} |
Additional annotations applied to the deployment. |
updateStrategy |
Object | {} |
Strategy used for deployment updates. |
nodeSelector |
Object | {} |
Node selector used for pod scheduling. |
securityContext |
Object | {} |
Security context applied to the pod. |
image.* |
Object | See example | Container image settings. |
image.imagePullSecrets |
Array | [] |
Image pull secrets used to authenticate with private registries. |
resources |
Object | See example | Resource requests and limits for the deployment. |
Cluster agent
Deployment for cluster-wide monitoring and coordination.
spec:
infrastructure:
site24x7ClusterAgent:
create: true
replicas: 1
annotations: {}
updateStrategy: {}
nodeSelector: {}
securityContext: {}
image:
repository: "site24x7"
name: "docker-agent"
tag: "cluster_agent_nonroot"
pullPolicy: "IfNotPresent"
imagePullSecrets: []
resources:
requests:
cpu: "300m"
memory: "500Mi"
limits:
cpu: "600m"
memory: "1Gi"
livenessProbe: {}
readinessProbe: {}
| Field | Type | Default | Description |
|---|---|---|---|
create |
Boolean | true |
Determines whether the Cluster agent deployment is created. |
replicas |
Integer | 1 |
Number of deployment replicas (typically 1 for leader election). |
annotations |
Object | {} |
Additional annotations applied to the deployment. |
updateStrategy |
Object | {} |
Strategy used for deployment updates. |
nodeSelector |
Object | {} |
Node selector used for pod scheduling. |
securityContext |
Object | {} |
Security context applied to the pod. |
image.* |
Object | See example | Container image settings. |
resources |
Object | See example | Resource requests and limits. |
livenessProbe |
Object | {} |
Custom liveness probe configuration. |
readinessProbe |
Object | {} |
Custom readiness probe configuration. |
Service account
Service account configuration for operator-managed workloads.
spec:
infrastructure:
serviceAccount:
create: true
annotations: {}
name: "site24x7"
| Field | Type | Default | Description |
|---|---|---|---|
create |
Boolean | true |
Determines whether the service account is created. |
annotations |
Object | {} |
Additional annotations applied to the service account (for example, IAM role bindings in EKS). |
name |
String | site24x7 |
Name of the service account. |
APM configuration
Application Performance Monitoring (APM) settings for automatic agent injection.
spec:
apm:
webhook:
monitorAllNamespaces: true
includeNamespaces: []
excludeNamespaces:
- kube-system
- kube-public
- kube-node-lease
monitorAllPods: true
includeAppLabels:
javaApp:
- app: "sample-java-app"
excludeAppLabels: {}
agentsImagePullSecrets: []
| Field | Type | Default | Description |
|---|---|---|---|
webhook.monitorAllNamespaces |
Boolean | true |
When true, the webhook monitors all namespaces except those specified in excludeNamespaces. |
webhook.includeNamespaces |
Array | [] |
Specifies the namespaces to monitor when monitorAllNamespaces is disabled. |
webhook.excludeNamespaces |
Array | ["kube-system",
"kube-public",
"kube-node-lease"] |
Specifies the namespaces that should be excluded from webhook-based APM agent injection. |
monitorAllPods |
Boolean | true |
Automatically injects APM agents into all eligible pods. |
includeAppLabels |
Object | {} |
Defines label selectors used to identify pods for APM agent injection. |
excludeAppLabels |
Object | {} |
Defines label selectors used to exclude specific pods from APM agent injection. |
agentsImagePullSecrets |
Array | [] |
Specifies image pull secrets used to authenticate and pull APM agent images. |
Webhook namespace scope
Control where the mutating webhook applies APM injection by namespace.
webhook:
monitorAllNamespaces: false
includeNamespaces:
- prod-payments
- prod-orders
excludeNamespaces:
- kube-system
- kube-public
- kube-node-lease
- site24x7
- If
monitorAllNamespacesistrue, all namespaces are considered exceptexcludeNamespaces. - If
monitorAllNamespacesisfalse, only namespaces listed inincludeNamespacesare considered. excludeNamespacesacts as a deny list and should include system namespaces in production.
Include/Exclude labels
Target specific applications for monitoring:
includeAppLabels:
javaApp:
- app: "my-java-service"
- tier: "backend"
pythonApp:
- app: "my-python-service"
excludeAppLabels:
javaApp:
- app: "legacy-service"
APM agent images
Configure container images for each language-specific APM agent.
Java agent
java:
image:
repository: "site24x7"
name: "apminsight-javaagent"
tag: "7.7.1"
imagePullSecrets: []
Python agent
python:
image:
repository: "site24x7"
name: "apminsight-pythonagent"
tag: "latest"
imagePullSecrets: []
Node.js agent
nodeJS:
image:
repository: "site24x7"
name: "apminsight-nodejsagent"
tag: "latest"
imagePullSecrets: []
.NET agent
dotNet:
image:
repository: "site24x7"
name: "apminsight-dotnetagent"
tag: "latest"
imagePullSecrets: []
eBPF agent
ebpf:
image:
repository: "site24x7"
name: "apminsight-ebpfagent"
tag: "latest"
imagePullSecrets: []
Common Image Fields
| Field | Type | Description |
|---|---|---|
repository |
String | Specifies the Docker registry or repository from which the image is pulled. |
name |
String | Specifies the name of the container image. |
tag |
String | Specifies the image version or tag of the container image. |
imagePullSecrets |
Array | Secrets used to authenticate with private container registries. |
Data Exporter
Configuration for APM data export.
dataExporter:
image:
repository: ""
name: ""
tag: ""
pullPolicy: ""
imagePullSecrets: []
deploymentStrategy: "daemonset"
extraEnv: []
| Field | Type | Options | Description |
|---|---|---|---|
image.* |
Object | - | Settings for the container image used by the Data Exporter. |
pullPolicy |
String | Always, IfNotPresent |
Policy that determines when the image is pulled. |
deploymentStrategy |
String | daemonset, sidecar |
Deployment strategy used for the Data Exporter. |
Deployment strategies
| Strategy | Description |
|---|---|
daemonset |
Deploys one exporter per node in the cluster (recommended). |
sidecar |
Deploys the exporter as a sidecar container in each monitored pod. |
Complete example
apiVersion: site24x7.com/v1alpha1
kind: Site24x7K8s
metadata:
namespace: site24x7
name: site24x7k8s-resource
spec:
applyDefaultTolerations: true
openShift: false
gkeAutoPilot: false
applyPriorityClass: true
priorityClassValue: 12000000
proxy:
http_proxy: ""
https_proxy: ""
installationType:
agentType: "fso" # Full-stack observability
infrastructure:
clusterName: "production-cluster"
managementAction: true
site24x7Agent:
create: true
site24x7AgentContainer:
image:
repository: "site24x7"
name: "docker-agent"
tag: "release22100"
resources:
limits:
memory: "1Gi"
site24x7KubeStateMetrics:
create: true
replicas: 1
site24x7ClusterAgent:
create: true
replicas: 1
serviceAccount:
create: true
name: "site24x7"
apm:
webhook:
monitorAllNamespaces: true
excludeNamespaces:
- kube-system
- kube-public
- kube-node-lease
monitorAllPods: true
java:
image:
repository: "site24x7"
name: "apminsight-javaagent"
tag: "7.7.1"
dataExporter:
deploymentStrategy: "daemonset"
- Namespace: The
site24x7-operatorexpects all resources to be deployed in thesite24x7namespace by default. - Secret Requirement: The
site24x7-agentsecret must exist before creating theSite24x7K8sresource. - RBAC: The
site24x7-operatorautomatically creates necessary RBAC resources (ClusterRole,ClusterRoleBinding). - CSI Driver: For APM agent injection, the
site24x7-operatordeploys a CSI driver to mount agent binaries into pods. - Webhook: A
MutatingWebhookConfigurationis created to intercept pod creation and inject APM agents. - APM: APM Injection does not work for the GKE Autopilot environment.
