Help Docs

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.

Note

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
  1. If monitorAllNamespaces is true, all namespaces are considered except excludeNamespaces.
  2. If monitorAllNamespaces is false, only namespaces listed in includeNamespaces are considered.
  3. excludeNamespaces acts 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"

 

Note
  • Namespace: The site24x7-operator expects all resources to be deployed in the site24x7 namespace by default.
  • Secret Requirement: The site24x7-agent secret must exist before creating the Site24x7K8s resource.
  • RBAC: The site24x7-operator automatically creates necessary RBAC resources (ClusterRole, ClusterRoleBinding).
  • CSI Driver: For APM agent injection, the site24x7-operator deploys a CSI driver to mount agent binaries into pods.
  • Webhook: A MutatingWebhookConfiguration is created to intercept pod creation and inject APM agents.
  • APM: APM Injection does not work for the GKE Autopilot environment. 

 

Was this document helpful?

Would you like to help us improve our documents? Tell us what you think we could do better.


We're sorry to hear that you're not satisfied with the document. We'd love to learn what we could do to improve the experience.


Thanks for taking the time to share your feedback. We'll use your feedback to improve our online help resources.

Shortlink has been copied!