From 63d94b90108c24b41ff8a900514cd6fd947ec599 Mon Sep 17 00:00:00 2001 From: Robert B Gordon Date: Wed, 11 Mar 2026 12:51:55 -0500 Subject: [PATCH 1/7] config endpoint not required - point to the correct image for docker. --- scripts/install.sh | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/scripts/install.sh b/scripts/install.sh index ac75f31..ddb8fbf 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -3,7 +3,7 @@ set -e # ControlTheory Agent Installation Script # Version -VERSION="v1.3.0" +VERSION="v1.3.1" # Supports both Docker and Kubernetes (Helm) installations # # Usage: @@ -22,8 +22,8 @@ DOCKER_ADMISSION_TOKEN="" CONFIG_ENDPOINT="" DATA_ENDPOINT="" ORG_API_ENDPOINT="" -DOCKER_IMAGE="controltheory/supervisor" -DOCKER_IMAGE_TAG="v1.3.16.1" +DOCKER_IMAGE="controltheory/aigent" +DOCKER_IMAGE_TAG="v1.3.18" # Defaults OPERATION="install" @@ -56,7 +56,6 @@ General options: Options: -i, --org-id Organization identifier (required for install) - --config-endpoint Config endpoint URL (required for install) --data-endpoint Data endpoint address (required for install) --org-api-endpoint Org API endpoint URL (optional) --cluster-name Cluster/host name (required for k8s, optional for docker - defaults to 'docker') @@ -76,7 +75,7 @@ Options for k8s platform: --helm-version Helm chart version (default: latest stable) Examples: - $0 -i okz30akqj --ds-token --cluster-token --config-endpoint --data-endpoint --cluster-name mycluster -e prod + $0 -i okz30akqj --ds-token --cluster-token --data-endpoint --cluster-name mycluster -e prod $0 -i okz30akqj -t ds --ds-token --config-endpoint --data-endpoint --cluster-name mycluster -e dev $0 -i okz30akqj -p docker --docker-token --config-endpoint --data-endpoint --cluster-name myhost -e prod $0 -o uninstall @@ -120,10 +119,6 @@ while [ $# -gt 0 ]; do CLUSTER_ADMISSION_TOKEN="$2" shift 2 ;; - --config-endpoint) - CONFIG_ENDPOINT="$2" - shift 2 - ;; --data-endpoint) DATA_ENDPOINT="$2" shift 2 @@ -200,10 +195,6 @@ validate_config() { echo "Error: -i/--org-id is required for install" usage fi - if [ -z "$CONFIG_ENDPOINT" ]; then - echo "Error: --config-endpoint is required for install" - usage - fi if [ -z "$DATA_ENDPOINT" ]; then echo "Error: --data-endpoint is required for install" usage From e39ee8be2e9f29d94a8d2a3cafe997b3ada2b2ed Mon Sep 17 00:00:00 2001 From: Robert B Gordon Date: Wed, 11 Mar 2026 13:35:09 -0500 Subject: [PATCH 2/7] phew ok .. more stuff that is not needed. --- scripts/install.sh | 51 ++++++++++++---------------------------------- 1 file changed, 13 insertions(+), 38 deletions(-) diff --git a/scripts/install.sh b/scripts/install.sh index ddb8fbf..91b3db2 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -3,13 +3,13 @@ set -e # ControlTheory Agent Installation Script # Version -VERSION="v1.3.1" +VERSION="v1.4.0" # Supports both Docker and Kubernetes (Helm) installations # # Usage: -# ./install.sh -i --ds-token --cluster-token --config-endpoint --data-endpoint --cluster-name -e -# ./install.sh -i -t ds --ds-token --config-endpoint --data-endpoint --cluster-name -e -# ./install.sh -i -p docker --docker-token --config-endpoint --data-endpoint --cluster-name -e +# ./install.sh -i --ds-token --cluster-token --org-api-endpoint --cluster-name -e +# ./install.sh -i -t ds --ds-token --org-api-endpoint --cluster-name -e +# ./install.sh -i -p docker --docker-token --org-api-endpoint --cluster-name -e # ./install.sh -o uninstall # ./install.sh -o uninstall -p docker # ./install.sh -o status @@ -19,8 +19,6 @@ VERSION="v1.3.1" DS_ADMISSION_TOKEN="" CLUSTER_ADMISSION_TOKEN="" DOCKER_ADMISSION_TOKEN="" -CONFIG_ENDPOINT="" -DATA_ENDPOINT="" ORG_API_ENDPOINT="" DOCKER_IMAGE="controltheory/aigent" DOCKER_IMAGE_TAG="v1.3.18" @@ -56,8 +54,7 @@ General options: Options: -i, --org-id Organization identifier (required for install) - --data-endpoint Data endpoint address (required for install) - --org-api-endpoint Org API endpoint URL (optional) + --org-api-endpoint Org API endpoint URL (required for install) --cluster-name Cluster/host name (required for k8s, optional for docker - defaults to 'docker') -e, --env Deployment environment (required for install) @@ -75,9 +72,9 @@ Options for k8s platform: --helm-version Helm chart version (default: latest stable) Examples: - $0 -i okz30akqj --ds-token --cluster-token --data-endpoint --cluster-name mycluster -e prod - $0 -i okz30akqj -t ds --ds-token --config-endpoint --data-endpoint --cluster-name mycluster -e dev - $0 -i okz30akqj -p docker --docker-token --config-endpoint --data-endpoint --cluster-name myhost -e prod + $0 -i okz30akqj --ds-token --cluster-token --org-api-endpoint --cluster-name mycluster -e prod + $0 -i okz30akqj -t ds --ds-token --org-api-endpoint --cluster-name mycluster -e dev + $0 -i okz30akqj -p docker --docker-token --org-api-endpoint --cluster-name myhost -e prod $0 -o uninstall $0 -o uninstall -p docker $0 -o status @@ -119,10 +116,6 @@ while [ $# -gt 0 ]; do CLUSTER_ADMISSION_TOKEN="$2" shift 2 ;; - --data-endpoint) - DATA_ENDPOINT="$2" - shift 2 - ;; --org-api-endpoint) ORG_API_ENDPOINT="$2" shift 2 @@ -195,8 +188,8 @@ validate_config() { echo "Error: -i/--org-id is required for install" usage fi - if [ -z "$DATA_ENDPOINT" ]; then - echo "Error: --data-endpoint is required for install" + if [ -z "$ORG_API_ENDPOINT" ]; then + echo "Error: --org-api-endpoint is required for install" usage fi # cluster_name is required for k8s, optional for docker @@ -271,18 +264,12 @@ docker_install() { -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/lib/docker/containers:/var/lib/docker/containers:ro \ -v /var/log:/var/log \ - -e CONTROLPLANE_ENDPOINT=$CONFIG_ENDPOINT \ -e ADMISSION_TOKEN=$DOCKER_ADMISSION_TOKEN \ - -e BUTLER_ENDPOINT=$DATA_ENDPOINT \ + -e CT_ORG_API_ENDPOINT=$ORG_API_ENDPOINT \ -e DEPLOYMENT_ENV=$DEPLOYMENT_ENV \ -e K8S_NODE_NAME=$HOST_NAME \ -e HOST_NAME=$HOST_NAME" - # Add org API settings if provided - if [ -n "$ORG_API_ENDPOINT" ]; then - DOCKER_CMD="$DOCKER_CMD -e CT_ORG_API_ENDPOINT=$ORG_API_ENDPOINT" - fi - # Default cluster name to "docker" for docker platform if [ -z "$CLUSTER_NAME" ]; then CLUSTER_NAME="docker" @@ -369,17 +356,11 @@ k8s_install_ds() { local HELM_ARGS=( --namespace="$NAMESPACE" --set daemonset.controlplane.admission_token="$DS_ADMISSION_TOKEN" - --set daemonset.controlplane.endpoint="$CONFIG_ENDPOINT" - --set daemonset.butler_endpoint="$DATA_ENDPOINT" + --set daemonset.org_api_endpoint="$ORG_API_ENDPOINT" --set daemonset.cluster_name="$CLUSTER_NAME" --set daemonset.deployment_env="$DEPLOYMENT_ENV" ) - # Add org API settings if provided - if [ -n "$ORG_API_ENDPOINT" ]; then - HELM_ARGS+=(--set daemonset.org_api_endpoint="$ORG_API_ENDPOINT") - fi - if [ "$HOST_PORT" = "true" ]; then HELM_ARGS+=(--set hostPort.enabled=true) echo " Host Port: enabled (1757/1758)" @@ -401,17 +382,11 @@ k8s_install_cluster() { local HELM_ARGS=( --namespace="$NAMESPACE" --set deployment.controlplane.admission_token="$CLUSTER_ADMISSION_TOKEN" - --set deployment.controlplane.endpoint="$CONFIG_ENDPOINT" - --set deployment.butler_endpoint="$DATA_ENDPOINT" + --set deployment.org_api_endpoint="$ORG_API_ENDPOINT" --set deployment.cluster_name="$CLUSTER_NAME" --set deployment.deployment_env="$DEPLOYMENT_ENV" ) - # Add org API settings if provided - if [ -n "$ORG_API_ENDPOINT" ]; then - HELM_ARGS+=(--set deployment.org_api_endpoint="$ORG_API_ENDPOINT") - fi - if [ -n "$HELM_VERSION" ]; then HELM_ARGS+=(--version "$HELM_VERSION") fi From 53bfe50970c66283030974792bc34449abd5fea9 Mon Sep 17 00:00:00 2001 From: Robert B Gordon Date: Thu, 19 Mar 2026 14:09:58 -0500 Subject: [PATCH 3/7] bump docker version --- scripts/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install.sh b/scripts/install.sh index 91b3db2..f21e19a 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -21,7 +21,7 @@ CLUSTER_ADMISSION_TOKEN="" DOCKER_ADMISSION_TOKEN="" ORG_API_ENDPOINT="" DOCKER_IMAGE="controltheory/aigent" -DOCKER_IMAGE_TAG="v1.3.18" +DOCKER_IMAGE_TAG="v1.3.20" # Defaults OPERATION="install" From 45d45532ea260350d62a745f3b5fcee8d3c3578d Mon Sep 17 00:00:00 2001 From: Robert B Gordon Date: Mon, 23 Mar 2026 09:48:16 -0500 Subject: [PATCH 4/7] allow setting for data_endpoint this is for local dev use only --- scripts/install.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/install.sh b/scripts/install.sh index f21e19a..c09c921 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -20,6 +20,7 @@ DS_ADMISSION_TOKEN="" CLUSTER_ADMISSION_TOKEN="" DOCKER_ADMISSION_TOKEN="" ORG_API_ENDPOINT="" +DATA_ENDPOINT="" DOCKER_IMAGE="controltheory/aigent" DOCKER_IMAGE_TAG="v1.3.20" @@ -70,6 +71,7 @@ Options for k8s platform: --kubeconfig Path to kubeconfig file (default: ~/.kube/config) -n, --namespace Kubernetes namespace (default: controltheory) --helm-version Helm chart version (default: latest stable) + --data-endpoint Data endpoint for local dev (e.g., butler.org.local:7761) Examples: $0 -i okz30akqj --ds-token --cluster-token --org-api-endpoint --cluster-name mycluster -e prod @@ -132,6 +134,10 @@ while [ $# -gt 0 ]; do CLUSTER_NAME="$2" shift 2 ;; + --data-endpoint) + DATA_ENDPOINT="$2" + shift 2 + ;; --kubeconfig) KUBECONFIG_FILE="$2" shift 2 @@ -361,6 +367,10 @@ k8s_install_ds() { --set daemonset.deployment_env="$DEPLOYMENT_ENV" ) + if [ -n "$DATA_ENDPOINT" ]; then + HELM_ARGS+=(--set "daemonset.env.DATA_ENDPOINT=$DATA_ENDPOINT") + fi + if [ "$HOST_PORT" = "true" ]; then HELM_ARGS+=(--set hostPort.enabled=true) echo " Host Port: enabled (1757/1758)" @@ -387,6 +397,10 @@ k8s_install_cluster() { --set deployment.deployment_env="$DEPLOYMENT_ENV" ) + if [ -n "$DATA_ENDPOINT" ]; then + HELM_ARGS+=(--set "deployment.env.DATA_ENDPOINT=$DATA_ENDPOINT") + fi + if [ -n "$HELM_VERSION" ]; then HELM_ARGS+=(--version "$HELM_VERSION") fi From d0e175280d11d7a5cbddc06225daf717231d3e88 Mon Sep 17 00:00:00 2001 From: Robert B Gordon Date: Mon, 30 Mar 2026 09:28:00 -0500 Subject: [PATCH 5/7] support data_endpoint. --- scripts/install.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/install.sh b/scripts/install.sh index c09c921..fe9e05d 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -21,8 +21,9 @@ CLUSTER_ADMISSION_TOKEN="" DOCKER_ADMISSION_TOKEN="" ORG_API_ENDPOINT="" DATA_ENDPOINT="" +DATA_TLS="" DOCKER_IMAGE="controltheory/aigent" -DOCKER_IMAGE_TAG="v1.3.20" +DOCKER_IMAGE_TAG="v1.3.24" # Defaults OPERATION="install" @@ -138,6 +139,10 @@ while [ $# -gt 0 ]; do DATA_ENDPOINT="$2" shift 2 ;; + --data-tls) + DATA_TLS="$2" + shift 2 + ;; --kubeconfig) KUBECONFIG_FILE="$2" shift 2 @@ -368,7 +373,10 @@ k8s_install_ds() { ) if [ -n "$DATA_ENDPOINT" ]; then - HELM_ARGS+=(--set "daemonset.env.DATA_ENDPOINT=$DATA_ENDPOINT") + HELM_ARGS+=(--set "daemonset.data_endpoint=$DATA_ENDPOINT") + fi + if [ -n "$DATA_TLS" ]; then + HELM_ARGS+=(--set "daemonset.data_tls=$DATA_TLS") fi if [ "$HOST_PORT" = "true" ]; then @@ -398,7 +406,10 @@ k8s_install_cluster() { ) if [ -n "$DATA_ENDPOINT" ]; then - HELM_ARGS+=(--set "deployment.env.DATA_ENDPOINT=$DATA_ENDPOINT") + HELM_ARGS+=(--set "deployment.data_endpoint=$DATA_ENDPOINT") + fi + if [ -n "$DATA_TLS" ]; then + HELM_ARGS+=(--set "deployment.data_tls=$DATA_TLS") fi if [ -n "$HELM_VERSION" ]; then From c6a1d1b65168bd70fbdb850eb7360daba789dbaf Mon Sep 17 00:00:00 2001 From: Robert Quinlivan Date: Mon, 30 Mar 2026 14:44:57 -0500 Subject: [PATCH 6/7] Add source_id to install script --- scripts/install.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/scripts/install.sh b/scripts/install.sh index ac75f31..502f192 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -35,6 +35,7 @@ NAMESPACE="${NAMESPACE:-controltheory}" ORG_ID="" CLUSTER_NAME="" DEPLOYMENT_ENV="" +SOURCE_ID="" HELM_VERSION="" HELM_DEVEL="false" @@ -61,6 +62,7 @@ Options: --org-api-endpoint Org API endpoint URL (optional) --cluster-name Cluster/host name (required for k8s, optional for docker - defaults to 'docker') -e, --env Deployment environment (required for install) + --source-id Source ID to bind the agent to (required for install) Options for docker platform: --docker-token Docker admission token (required for install) @@ -144,6 +146,10 @@ while [ $# -gt 0 ]; do CLUSTER_NAME="$2" shift 2 ;; + --source-id) + SOURCE_ID="$2" + shift 2 + ;; --kubeconfig) KUBECONFIG_FILE="$2" shift 2 @@ -298,6 +304,11 @@ docker_install() { fi DOCKER_CMD="$DOCKER_CMD -e CLUSTER_NAME=$CLUSTER_NAME" + # Pass source ID when provided (source-backed install) + if [ -n "$SOURCE_ID" ]; then + DOCKER_CMD="$DOCKER_CMD -e SOURCE_ID=$SOURCE_ID" + fi + DOCKER_CMD="$DOCKER_CMD \ -p 4317:1757 \ -p 4318:1758 \ @@ -389,6 +400,11 @@ k8s_install_ds() { HELM_ARGS+=(--set daemonset.org_api_endpoint="$ORG_API_ENDPOINT") fi + # Pass source ID when provided (source-backed install) + if [ -n "$SOURCE_ID" ]; then + HELM_ARGS+=(--set daemonset.source_id="$SOURCE_ID") + fi + if [ "$HOST_PORT" = "true" ]; then HELM_ARGS+=(--set hostPort.enabled=true) echo " Host Port: enabled (1757/1758)" @@ -421,6 +437,11 @@ k8s_install_cluster() { HELM_ARGS+=(--set deployment.org_api_endpoint="$ORG_API_ENDPOINT") fi + # Pass source ID when provided (source-backed install) + if [ -n "$SOURCE_ID" ]; then + HELM_ARGS+=(--set deployment.source_id="$SOURCE_ID") + fi + if [ -n "$HELM_VERSION" ]; then HELM_ARGS+=(--version "$HELM_VERSION") fi From a1662d86b5e2832be4c25ed4f5dd4e286d9770b0 Mon Sep 17 00:00:00 2001 From: Robert B Gordon Date: Sat, 4 Apr 2026 08:40:05 -0500 Subject: [PATCH 7/7] add org --- scripts/install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/install.sh b/scripts/install.sh index 7cf8d7f..b6bd76e 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -283,6 +283,7 @@ docker_install() { -v /var/log:/var/log \ -e ADMISSION_TOKEN=$DOCKER_ADMISSION_TOKEN \ -e CT_ORG_API_ENDPOINT=$ORG_API_ENDPOINT \ + -e CT_ORG_DNS_ID=$ORG_ID \ -e DEPLOYMENT_ENV=$DEPLOYMENT_ENV \ -e K8S_NODE_NAME=$HOST_NAME \ -e HOST_NAME=$HOST_NAME" @@ -381,6 +382,7 @@ k8s_install_ds() { --set daemonset.org_api_endpoint="$ORG_API_ENDPOINT" --set daemonset.cluster_name="$CLUSTER_NAME" --set daemonset.deployment_env="$DEPLOYMENT_ENV" + --set daemonset.org_dns_id="$ORG_ID" ) if [ -n "$DATA_ENDPOINT" ]; then @@ -419,6 +421,7 @@ k8s_install_cluster() { --set deployment.org_api_endpoint="$ORG_API_ENDPOINT" --set deployment.cluster_name="$CLUSTER_NAME" --set deployment.deployment_env="$DEPLOYMENT_ENV" + --set deployment.org_dns_id="$ORG_ID" ) if [ -n "$DATA_ENDPOINT" ]; then