You can use advanced configuration options if you require to override the default configuration of the Cisco Cloud Observability Operator sub-chart. You can include these options under the appdynamics-cloud-operator key in the operators-values.yaml file and proceed with the installation. See Install Kubernetes and App Service Monitoring.

For clusters that do no have access to external docker repositories, configure the operator to use a custom image of kube-rbac-proxy. You can download this image from gcr.io/kubebuilder/kube-rbac-proxy (v0.13.1) and publish it in any repository on which you have access.

The custom image needs to be added when deploying operator as mentioned in the following example:

appdynamics-cloud-operator:
    kubeRbacProxy:
        image: <img>   // default gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1 
        imagePullPolicy: <image pull policy> //default IfNotPresent
CODE

Install Switches Configuration

You can include the following configuration to install specific sub-charts:

ParameterDescriptionRequiredDefaultReinstall Required
appdynamics-smartagent

Set the following enabled option to True if you are installing the Cisco AppDynamics Smart Agent:

appdynamics-smartagent:
  enabled: true 
CODE
OptionalTrueNo

Disable the OpenTelemetry Operator 

One cluster can only install one OpenTelemetry operator. The AppDynamics Operator Helm chart bundles the open-source OpenTelemetry operator by default. If you have already installed your own OpenTelemetry Operator, you can disable the one bundled with AppDynamics Operator Helm chart by applying following setting:

opentelemetry-operator:
  enabled: false 
YML

Disable the OpenTelemetry Operator Pod Mutating Webhook

OpenTelemetry Operator pod mutating webhook may impact the Kubernetes API server for large cluster. If the auto-instrumentation and sidecar OpenTelemetry Collector is not required, you could disable this webhook by using the following configuration:

opentelemetry-operator:
  admissionWebhooks:
    enablePodOperationsWebhook: false
CODE

appdynamics-cloud-operator Configuration Options

The appdynamics-cloud-operator sub-chart includes these configuration options, which can be updated based on your requirements:

Configuration OptionDescriptionRequiredDefault ValueReinstall Needed
operatorServiceAccountThe name to be used for creating the service account for the operator.Optionalappdynamics-cloud-operatorNo
enableOTelCRDManagement

Enable management of Open Telemetry CRDs by using Cisco AppDynamics Operator. 

OptionaltrueNo
Operator Pod Configuration
priorityClassNameThe name of the pod priority class, which is used in the pod specification to set the priority.OptionalNANo
imageThe operator image address in the format: <registryUrl>/<registryAccount>/<project>:<tag>Optional

appdynamics/appdynamics-cloud-operator:24.7.0-1475

No
imagePullPolicyImage pull policy for the operator pod.OptionalAlwaysNo

resources

Resources you assign to the operator pod.

The default resource values are based on the deployment profiles described in Performance and Scaling for Kubernetes Collectors and Operators. For information on performance and scaling, review that page. 

Optional
limits:
 cpu: 200m
 memory: 128Mi
requests:
 cpu: 100m
 memory: 64Mi
YML
No
labelsLabels for the pod.Optional{ }Yes
annotationsAnnotations for the pod.Optional{ }No
nodeSelectorNode selector for the pod.Optional{ }No
imagePullSecretsNames of any image pull secrets.Optional

[]

No
affinityAffinity for the pod.Optional

{ }

No
tolerations

Tolerations for the pod.

Optional

[ ]

No
securityContextSecurity Context for the pod.Optional{ }No

To reinstall or upgrade the operators, see Upgrade or Uninstall Kubernetes and App Service Monitoring.

Example of Using Operator Configuration Options

This example outlines the use of all the configuration options the operator provides:

operator-full-example.yaml

operatorServiceAccount: appdynamics-cloud-operator
operatorPod:
  image: appdynamics/appdynamics-cloud-operator:24.7.0-1475
  imagePullPolicy: IfNotPresent
  resources:
    limits:
      cpu: 200m
      memory: 128Mi
    requests:
      cpu: 100m
      memory: 64Mi
  labels:
    key1: "value1"
  annotations:
    key2: "value2"
  tolerations:
  - key: "key3"
    operator: "Exists"
    effect: "NoSchedule"
  nodeSelector:
    disktype: ssd
  imagePullSecrets:
  - name: aws-ecr-secret
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: key4
                operator: In
                values:
                  - value3
                  - value4
  securityContext:
    fsGroupChangePolicy: "OnRootMismatch"
YML