Prerequisites

Review the tools, cluster requirements, sizing requirements, and privileges needed for a BYOK deployment.

Ensure that the following tools, utilities, and cluster requirements are met:

Kubernetes Tool Requirements

Install the following Kubernetes tools:
Tool Version References
skopeo 1.22.0 Required for load-images.sh
xz 5.8.3
To verify the above tools are present in your computer, run the following commands:
CODE
# For image loading
skopeo --version
xz --version

Essential Linux Tools

Ensure that you have the standard utilities such as sed, awk, grep, curl, base64, and so on.

Kubernetes Cluster Requirements

Ensure that you have the following cluster requirements:
  • OpenShift version 4.18 to 4.22.
  • Network connectivity to the API server.
  • Create the required storage classes for deployment ensure that you have sufficient privileges.

Hardware Specification

The following table describes the minimum hardware specification to deploy Virtual Appliance using Persistent Volume Claim (PVC) with default storage class:

Profile Specification Min Node Count Max Agents Max Metrics/Minute EUM Beacons/Minute Synthetic Sessions/Minute OpenTelemetry Spans/Minute
Browser Mobile
Medium

32 vCPUs, 128 GB RAM, 200 GB OS Disk, and 3 TB SSD Data Disk

4

3500

600,000

20000

40000

15000

48000

Extra Large

96 vCPUs, 384 GB RAM, 200 GB OS Disk, and 10 TB SSD Data Disk

5

14,500

2,600,000

80000

160000

60000

128,000

Service Account Privileges

Ensure that the user or service account has the following privileges:

  • Create and manage namespaces
  • Create Custom Storage Classes
  • Create Custom Resource Definitions (CRDs)
  • Create ClusterRoles and ClusterRoleBindings
  • Manage Security Context Constraints (SCCs)

Use cluster-admin role or equivalent for the user or service account.

CODE
# Login with cluster-admin
oc login --token=<token> --server=<api-server>
# OR
oc login -u cluster-admin -p '<password>' <api-server>

# Verify current privileges (The following list is minimal.)
oc auth can-i create namespaces
oc auth can-i create customresourcedefinitions
oc auth can-i create clusterroles

Upgrade your Kubernetes cluster from 26.1

Since the BYOK deployer and architecture significantly changed in 26.7, the upgrade steps differ from a standard upgrade. Therefore, you must uninstall the existing set up and start a fresh deployment.
  1. Uninstall the previous deployment using the 26.1 BYOK deployer.
    CODE
    ./deploy-byok.sh <profile> destroy

    This command uninstalls the existing services by retaining the PVCs.

  2. Proceed with the next steps to start with 26.7 deployment.

Download the BYOK Deployer

Download and extract the BYOK deployer package from the Downloads portal.

Complete the following steps to download the Bring Your Own Kubernetes (BYOK) build:
  1. Log in to the Downloads portal using your credentials.
  2. In Downloads, select the Virtual Appliance tab.
  3. Select BYOK from the Type list.
  4. Select Download.
  5. Run this command to extract the file contents.
    CODE
    tar -xzvf <filename.tar.gz>
    Example:
    CODE
    tar -xzvf byok8s.tar.gz
The extracted files and folders will appear in your computer as follows:
CODE
byok8s/
├── appdcli                          # AppDynamics CLI executable
├── config/                          # Configuration files
│   ├── globals.yaml.gotmpl          # Main configuration file
│   ├── secrets.yaml.template        # Secrets template
│   ├── license.lic.template         # License file template
│   ├── namespaces.yaml.template     # Namespace configuration template
│   ├── pull-secret.conf             # Pull secret configuration
│   ├── service-endpoints.yaml.gotmpl
│   ├── mysql-endpoint.yaml.gotmpl
│   ├── external-elasticsearch.yaml
│   ├── external-kafka.yaml
│   ├── external-minio.yaml
│   ├── external-mysql.yaml
│   ├── external-postgresql.yaml
│   └── external-redis.yaml
├── scripts/                         # Utility scripts
│   ├── find-available-service-ip.sh # Service CIDR IP finder for CoreDNS
│   ├── load-images.sh               # Image loading for air-gapped environments
│   ├── create-pull-secrets.sh       # Pull secret creation
│   ├── create-namespaces.sh         # Namespace creation
│   ├── resolve-namespaces.sh        # Resolve namespace configuration
│   └── restore-namespaces.sh        # Restore namespace configuration
├── cli/                             # AppDynamics CLI distribution
│   ├── README.md                    # CLI documentation
│   ├── appdcli                      # CLI launcher
│   └── bin/                         # Platform-specific CLI binaries
│       ├── darwin/                  # macOS binaries
│       │   ├── amd64/               # macOS Intel/AMD 64-bit
│       │   │   ├── appdcli
│       │   │   ├── helm
│       │   │   ├── helmfile
│       │   │   ├── jq
│       │   │   ├── kubectl
│       │   │   └── yq
│       │   └── arm64/               # macOS Apple Silicon
│       │       ├── appdcli
│       │       ├── helm
│       │       ├── helmfile
│       │       ├── jq
│       │       ├── kubectl
│       │       └── yq
│       └── linux/                   # Linux binaries
│           ├── amd64/               # Linux AMD/Intel 64-bit
│           │   ├── appdcli
│           │   ├── helm
│           │   ├── helmfile
│           │   ├── jq
│           │   ├── kubectl
│           │   └── yq
│           └── arm64/               # Linux ARM 64-bit
│               ├── appdcli
│               ├── helm
│               ├── helmfile
│               ├── jq
│               ├── kubectl
│               └── yq
├── docs/                            # Deployment documentation
├── images/                          # Offline container-image bundles
├── appd-charts/                     # Core AppDynamics charts
├── aiops-charts/                    # AIOps charts
├── atd-charts/                      # ATD charts
├── mcp-charts/                      # MCP charts
├── monitoring-charts/               # Monitoring charts
├── uil-charts/                      # UIL charts
└── secapp-charts/                   # SecureApp charts
    └── secureapp-byok.sh            # SecureApp operations script