Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Configure publicapi-mta #3556

Open
wants to merge 33 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
93083c6
WIP: Configure publicapi-mta
bonzofenix Feb 20, 2025
4c9cac7
Merge branch 'main' into 850-enable-publicapi-mta
bonzofenix Feb 21, 2025
d2bd0cd
Fix typo
bonzofenix Feb 21, 2025
a65d632
Update devbox
bonzofenix Feb 21, 2025
da09ba0
Add cleanup-autoscaler-deployments target to Makefile
bonzofenix Feb 21, 2025
d6ce3bc
Remove Makefile from src/db directory
bonzofenix Feb 24, 2025
b1441f5
Add commons-lang3 dependency to src/db/pom.xml
bonzofenix Feb 24, 2025
3e4a4d7
Remove commons-lang3 dependency from src/db pom.xml
bonzofenix Feb 24, 2025
8854dba
Add commons-lang3 dependency to src/db/pom.xml
bonzofenix Feb 24, 2025
d08542f
WIP2
bonzofenix Feb 27, 2025
c4c23ad
Merge branch 'main' into 850-enable-publicapi-mta
bonzofenix Feb 28, 2025
339e59d
WIP
bonzofenix Feb 28, 2025
ac0ddb5
Merge branch 'main' into 850-enable-publicapi-mta
bonzofenix Feb 28, 2025
c557a2f
WIP
bonzofenix Feb 28, 2025
82bca77
Add shellcheck exception and create CERTS_DIR in apply-api-changelog.sh
bonzofenix Feb 28, 2025
59851ff
Enable a previously focused test case for scaling out in the AutoScal…
bonzofenix Feb 28, 2025
a66bd29
Remove empty line from devbox.lock file
bonzofenix Feb 28, 2025
6b6c778
Implement support for catalog configuration via user-provided service…
bonzofenix Feb 28, 2025
f6957d9
Remove unused logs
bonzofenix Feb 28, 2025
60b65fa
Remove unused docs
bonzofenix Feb 28, 2025
695f628
Cleanup mta
bonzofenix Feb 28, 2025
5b2f1c1
Update todo description
bonzofenix Feb 28, 2025
ffa9df9
remove comment
bonzofenix Feb 28, 2025
97b0902
Merge branch 'main' into 850-enable-publicapi-mta
bonzofenix Feb 28, 2025
333a6d5
Update oha from 0.6.5 to 1.8.0 across multiple architectures
bonzofenix Feb 28, 2025
64fb12b
Remove WIP label check step from acceptance_tests_reusable workflow
bonzofenix Feb 28, 2025
a4bc151
Moved CPU threshold case handling to else block in deploy-autoscaler.…
bonzofenix Feb 28, 2025
053fc7e
Add ENABLE_MTAR environment variable to deploy apps step in acceptanc…
bonzofenix Feb 28, 2025
45e7b2c
Refactor deploy-autoscaler.sh to use cf_target function and remove re…
bonzofenix Feb 28, 2025
e8642d3
Merge branch 'main' into 850-enable-publicapi-mta
bonzofenix Feb 28, 2025
7462f35
Remove use-cf-services.yml from acceptance tests MTA workflow configu…
bonzofenix Feb 28, 2025
479dd0f
Merge branch 'main' into 850-enable-publicapi-mta
bonzofenix Feb 28, 2025
76de0c4
Update Python version from 3.12.5 to 3.13.2 in devbox.lock
bonzofenix Feb 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/acceptance_tests_mta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,5 @@ jobs:
operations/set-release-version.yml
operations/enable-metricsforwarder-via-syslog-agent.yml
operations/enable-scheduler-logging.yml
operations/use-cf-services.yml
secrets:
bbl_ssh_key: "${{ secrets.BBL_SSH_KEY }}"
1 change: 1 addition & 0 deletions .github/workflows/acceptance_tests_reusable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ jobs:
shell: bash
env:
OPS_FILES: ${{ inputs.ops_files }}
ENABLE_MTAR: ${{ inputs.deploy_apps }}
run: make --directory="${AUTOSCALER_DIR}" deploy-autoscaler

- name: Deploy Apps
Expand Down
10 changes: 8 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,6 @@ test-app.go-mod-tidy:
make --directory='${go-test-app-dir}' go-mod-tidy



.PHONY: mod-download
mod-download:
@for folder in $$(find . -maxdepth 3 -name "go.mod" -exec dirname {} \;);\
Expand Down Expand Up @@ -328,7 +327,7 @@ update-uaac-nix-package:
make --directory='./nix/packages/uaac' gemset.nix

.PHONY: deploy-autoscaler deploy-register-cf deploy-autoscaler-bosh deploy-cleanup
deploy-autoscaler: go-mod-vendor uaac db scheduler deploy-autoscaler-bosh deploy-register-cf ## Deploy autoscaler to OSS dev environment
deploy-autoscaler: go-mod-vendor uaac db scheduler deploy-autoscaler-bosh
deploy-register-cf:
echo " - registering broker with cf"
${CI_DIR}/autoscaler/scripts/register-broker.sh
Expand Down Expand Up @@ -403,6 +402,10 @@ acceptance-tests-config:
cleanup-concourse:
@${CI_DIR}/autoscaler/scripts/cleanup-concourse.sh

.PHONY: cleanup-autoscaler-deployments
cleanup-autoscaler-deployments:
@${CI_DIR}/autoscaler/scripts/cleanup-autoscaler-deployments.sh

.PHONY: cf-login
cf-login: ## Login to OSS CF dev environment
@${CI_DIR}/autoscaler/scripts/cf-login.sh
Expand Down Expand Up @@ -477,5 +480,8 @@ deploy-apps:
echo " - deploying apps"
DEBUG="${DEBUG}" ${CI_DIR}/autoscaler/scripts/deploy-apps.sh

undeploy-apps:
echo " - undeploying apps"
DEBUG="${DEBUG}" ${CI_DIR}/autoscaler/scripts/undeploy-apps.sh
help: ## Show this help
@grep --extended-regexp --no-filename '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
6 changes: 6 additions & 0 deletions ci/autoscaler/scripts/deploy-apps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ popd > /dev/null
function deploy() {
log "Deploying autoscaler apps for bosh deployment '${deployment_name}' "
pushd "${autoscaler_dir}/src/autoscaler" > /dev/null

# Update the default_catalog.json with the deployment name
rm -f api/default_catalog.json
cp api/default_catalog.json.tpl api/default_catalog.json
sed --in-place "s|DEPLOYMENT_NAME|${deployment_name}|g" api/default_catalog.json

make mta-deploy
popd > /dev/null
}
Expand Down
15 changes: 9 additions & 6 deletions ci/autoscaler/scripts/deploy-autoscaler.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,6 @@ ${autoscaler_dir}/operations/enable-scheduler-logging.yml
EOF
)}

case "${cpu_upper_threshold}" in
"100") ;;
"200") ops_files+=" ${autoscaler_dir}/operations/cpu_upper_threshold_200.yml" ;;
"400") ops_files+=" ${autoscaler_dir}/operations/cpu_upper_threshold_400.yml" ;;
*) echo "No Ops file for cpu_upper_threshold of ${cpu_upper_threshold}"; exit 1 ;;
esac

CURRENT_COMMIT_HASH=$(cd "${autoscaler_dir}"; git log -1 --pretty=format:"%H")
bosh_release_version=${RELEASE_VERSION:-${CURRENT_COMMIT_HASH}-${deployment_name}}
Expand Down Expand Up @@ -168,12 +162,21 @@ function pre_deploy() {
ops_files+=" ${autoscaler_dir}/operations/use-cf-services.yml"
cf_login

cf_target ${autoscaler_org} ${autoscaler_space}
local autoscaler_cf_server_xfcc_valid_org_guid=$(cf org ${AUTOSCALER_ORG} --guid)
local autoscaler_cf_server_xfcc_valid_space_guid=$(cf space ${AUTOSCALER_SPACE} --guid)

add_variable "autoscaler_cf_server_xfcc_valid_org_guid" "${autoscaler_cf_server_xfcc_valid_org_guid}"
add_variable "autoscaler_cf_server_xfcc_valid_space_guid" "${autoscaler_cf_server_xfcc_valid_space_guid}"
else
case "${cpu_upper_threshold}" in
"100") ;;
"200") ops_files+=" ${autoscaler_dir}/operations/cpu_upper_threshold_200.yml" ;;
"400") ops_files+=" ${autoscaler_dir}/operations/cpu_upper_threshold_400.yml" ;;
*) echo "No Ops file for cpu_upper_threshold of ${cpu_upper_threshold}"; exit 1 ;;
esac
fi

}

log "Deploying autoscaler '${bosh_release_version}' with name '${deployment_name}'"
Expand Down
23 changes: 23 additions & 0 deletions ci/autoscaler/scripts/undeploy-apps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#! /usr/bin/env bash
# shellcheck disable=SC2086,SC2034,SC2155
set -euo pipefail

script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
source "${script_dir}/common.sh"
source "${script_dir}/vars.source.sh"

pushd "${bbl_state_path}" > /dev/null
eval "$(bbl print-env)"
popd > /dev/null

function undeploy() {
log "Undeploying autoscaler apps for bosh deployment '${deployment_name}'"
pushd "${autoscaler_dir}/src/autoscaler" > /dev/null
make mta-undeploy
popd > /dev/null
}

bosh_login
cf_login
cf_target "${autoscaler_org}" "${autoscaler_space}"
undeploy
28 changes: 14 additions & 14 deletions devbox.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1461,60 +1461,60 @@
}
}
},
"python@latest": {
"last_modified": "2024-08-31T10:12:23Z",
"python@3.13.2": {
"last_modified": "2025-02-23T09:42:26Z",
"plugin_version": "0.0.4",
"resolved": "github:NixOS/nixpkgs/5629520edecb69630a3f4d17d3d33fc96c13f6fe#python3",
"resolved": "github:NixOS/nixpkgs/2d068ae5c6516b2d04562de50a58c682540de9bf#python313",
"source": "devbox-search",
"version": "3.12.5",
"version": "3.13.2",
"systems": {
"aarch64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/75j38g8ii1nqkmpf6sdlj3s5dyah3gas-python3-3.12.5",
"path": "/nix/store/jn2aff295cbc8hpfpnl8iz7zdfi2dyhk-python3-3.13.2",
"default": true
}
],
"store_path": "/nix/store/75j38g8ii1nqkmpf6sdlj3s5dyah3gas-python3-3.12.5"
"store_path": "/nix/store/jn2aff295cbc8hpfpnl8iz7zdfi2dyhk-python3-3.13.2"
},
"aarch64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/ajjwc8k8sk3ksrl3dq4fsg83m1j8n8s3-python3-3.12.5",
"path": "/nix/store/a7prrjdfdnsrv1clfnh5fl739pwlpl2y-python3-3.13.2",
"default": true
},
{
"name": "debug",
"path": "/nix/store/9qvs74485a1v5255w2ps0xf4rxww6w89-python3-3.12.5-debug"
"path": "/nix/store/hbf32f6g8radvw14dqrrd28smigr2w5l-python3-3.13.2-debug"
}
],
"store_path": "/nix/store/ajjwc8k8sk3ksrl3dq4fsg83m1j8n8s3-python3-3.12.5"
"store_path": "/nix/store/a7prrjdfdnsrv1clfnh5fl739pwlpl2y-python3-3.13.2"
},
"x86_64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/rv3rj95fxv57c7qwgl43qa7n0fabdy0a-python3-3.12.5",
"path": "/nix/store/sd10ga8q8w6b7i256zazpfjjpjin0yg0-python3-3.13.2",
"default": true
}
],
"store_path": "/nix/store/rv3rj95fxv57c7qwgl43qa7n0fabdy0a-python3-3.12.5"
"store_path": "/nix/store/sd10ga8q8w6b7i256zazpfjjpjin0yg0-python3-3.13.2"
},
"x86_64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/pgb120fb7srbh418v4i2a70aq1w9dawd-python3-3.12.5",
"path": "/nix/store/1rp7i946hi7fa2wwx2f66w9jsqjh4n08-python3-3.13.2",
"default": true
},
{
"name": "debug",
"path": "/nix/store/4ws5lqhgsxdpfb924n49ma6ll7i8x0hf-python3-3.12.5-debug"
"path": "/nix/store/y0vrby8n95x50xyvg81wv7rysh2lxz06-python3-3.13.2-debug"
}
],
"store_path": "/nix/store/pgb120fb7srbh418v4i2a70aq1w9dawd-python3-3.12.5"
"store_path": "/nix/store/1rp7i946hi7fa2wwx2f66w9jsqjh4n08-python3-3.13.2"
}
}
},
Expand Down
6 changes: 3 additions & 3 deletions jobs/eventgenerator/spec
Original file line number Diff line number Diff line change
Expand Up @@ -124,15 +124,15 @@ properties:
autoscaler.eventgenerator.server_key:
description: "PEM-encoded server key"

autoscaler.cf_server.port:
autoscaler.eventgenerator.cf_server.port:
description: "the listening port of cf xfcc endpoint"
default: 8080

autoscaler.cf_server.xfcc.valid_org_guid:
autoscaler.eventgenerator.cf_server.xfcc.valid_org_guid:
description: approve org guid for xfcc endpoint
default: ''

autoscaler.cf_server.xfcc.valid_space_guid:
autoscaler.eventgenerator.cf_server.xfcc.valid_space_guid:
description: approve space guid for xfcc endpoint
default: ''

Expand Down
6 changes: 3 additions & 3 deletions jobs/eventgenerator/templates/eventgenerator.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ server:
node_index: <%= nodeIndex %>

cf_server:
port: <%= p("autoscaler.cf_server.port") %>
port: <%= p("autoscaler.eventgenerator.cf_server.port") %>
xfcc:
valid_org_guid: <%= p("autoscaler.cf_server.xfcc.valid_org_guid") %>
valid_space_guid: <%= p("autoscaler.cf_server.xfcc.valid_space_guid") %>
valid_org_guid: <%= p("autoscaler.eventgenerator.cf_server.xfcc.valid_org_guid") %>
valid_space_guid: <%= p("autoscaler.eventgenerator.cf_server.xfcc.valid_space_guid") %>

logging:
level: <%= p("autoscaler.eventgenerator.logging.level") %>
Expand Down
6 changes: 3 additions & 3 deletions jobs/scalingengine/spec
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,15 @@ properties:
autoscaler.scalingengine.server_key:
description: "PEM-encoded server key"

autoscaler.cf_server.port:
autoscaler.scalingengine.cf_server.port:
description: "the listening port of cf xfcc endpoint"
default: 8080

autoscaler.cf_server.xfcc.valid_org_guid:
autoscaler.scalingengine.cf_server.xfcc.valid_org_guid:
description: allowed org guid for xfcc endpoint
default: ''

autoscaler.cf_server.xfcc.valid_space_guid:
autoscaler.scalingengine.cf_server.xfcc.valid_space_guid:
description: allowed space guid for xfcc endpoint
default: ''

Expand Down
6 changes: 3 additions & 3 deletions jobs/scalingengine/templates/scalingengine.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ cf:
max_idle_conns_per_host_ms: <%= p("autoscaler.cf.max_idle_conns_per_host_ms") %>

cf_server:
port: <%= p("autoscaler.cf_server.port") %>
port: <%= p("autoscaler.scalingengine.cf_server.port") %>
xfcc:
valid_org_guid: <%= p("autoscaler.cf_server.xfcc.valid_org_guid") %>
valid_space_guid: <%= p("autoscaler.cf_server.xfcc.valid_space_guid") %>
valid_org_guid: <%= p("autoscaler.scalingengine.cf_server.xfcc.valid_org_guid") %>
valid_space_guid: <%= p("autoscaler.scalingengine.cf_server.xfcc.valid_space_guid") %>

server:
port: <%= p("autoscaler.scalingengine.server.port") %>
Expand Down
43 changes: 34 additions & 9 deletions operations/use-cf-services.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## add router tcp route for postgres
## POSTGRES- Add router tcp route for postgres
- type: replace
path: /instance_groups/name=postgres/jobs/-
value:
Expand Down Expand Up @@ -35,11 +35,6 @@
uris:
- ((deployment_name))-postgres.tcp.((system_domain))

- type: replace
path: /instance_groups/name=apiserver/jobs/name=golangapiserver/properties/autoscaler/apiserver/metrics_forwarder/host
value: ((deployment_name))-metricsforwarder.((system_domain))


- type: replace
path: /variables/name=postgres_server/options/alternative_names/-
value: ((deployment_name))-postgres.tcp.((system_domain))
Expand All @@ -48,9 +43,39 @@
path: /variables/name=postgres_client/options/alternative_names/-
value: ((deployment_name))-postgres.tcp.((system_domain))

## APISERVER - remove publicapiserver
- type: remove
path: /instance_groups/name=apiserver


## METRICSFORWARDER - remove metricsforwarder
- type: remove
path: /instance_groups/name=metricsforwarder

## SCHEDULER - Enable cf Server to receive calls from api running on cf --
- type: replace
path: /instance_groups/name=scheduler/jobs/name=scheduler/properties/autoscaler/scheduler/cf_server?/xfcc?/valid_org_guid?
value: ((autoscaler_cf_server_xfcc_valid_org_guid))

- type: replace
path: /instance_groups/name=scheduler/jobs/name=scheduler/properties/autoscaler/scheduler/cf_server?/xfcc?/valid_space_guid?
value: ((autoscaler_cf_server_xfcc_valid_space_guid))

- type: replace
path: /instance_groups/name=scheduler/jobs/name=scheduler/properties/autoscaler/scheduler/http?/port?
value: &SchedulerCfPort 6105

- type: replace
path: /instance_groups/name=scheduler/jobs/name=route_registrar/properties/route_registrar/routes/-
value:
name: ((deployment_name))-cf-scheduler
registration_interval: 20s
port: *SchedulerCfPort
tags:
component: autoscaler_cf_scheduler
uris:
- ((deployment_name))-cf-scheduler.((system_domain))


## SCALINGENGINE - Enable cf Server to receive calls from api running on cf --
- type: replace
Expand All @@ -67,7 +92,7 @@
value: &scalingEngineCfPort 6205

- type: replace
path: /instance_groups/name=postgres/jobs/name=route_registrar/properties/route_registrar/routes/-
path: /instance_groups/name=scalingengine/jobs/name=route_registrar/properties/route_registrar/routes/-
value:
name: ((deployment_name))-cf-scalingengine
registration_interval: 20s
Expand All @@ -90,10 +115,10 @@

- type: replace
path: /instance_groups/name=eventgenerator/jobs/name=eventgenerator/properties/autoscaler/eventgenerator/cf_server?/port?
value: &EventGeneratorCfPort 6205
value: &EventGeneratorCfPort 8080

- type: replace
path: /instance_groups/name=postgres/jobs/name=route_registrar/properties/route_registrar/routes/-
path: /instance_groups/name=eventgenerator/jobs/name=route_registrar/properties/route_registrar/routes/-
value:
name: ((deployment_name))-cf-eventgenerator
registration_interval: 20s
Expand Down
10 changes: 6 additions & 4 deletions spec/jobs/eventgenerator/eventgenerator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,16 @@
end

it "defaults xfcc valid org and space " do
properties["autoscaler"]["cf_server"] = {}
properties["autoscaler"]["cf_server"]["xfcc"] = {
properties["autoscaler"]["eventgenerator"] = {}
properties["autoscaler"]["eventgenerator"]["cf_server"] = {}
properties["autoscaler"]["eventgenerator"]["cf_server"] = {}
properties["autoscaler"]["eventgenerator"]["cf_server"]["xfcc"] = {
"valid_org_guid" => "some-valid-org-guid",
"valid_space_guid" => "some-valid-space-guid"
}

expect(rendered_template["cf_server"]["xfcc"]["valid_org_guid"]).to eq(properties["autoscaler"]["cf_server"]["xfcc"]["valid_org_guid"])
expect(rendered_template["cf_server"]["xfcc"]["valid_space_guid"]).to eq(properties["autoscaler"]["cf_server"]["xfcc"]["valid_space_guid"])
expect(rendered_template["cf_server"]["xfcc"]["valid_org_guid"]).to eq(properties["autoscaler"]["eventgenerator"]["cf_server"]["xfcc"]["valid_org_guid"])
expect(rendered_template["cf_server"]["xfcc"]["valid_space_guid"]).to eq(properties["autoscaler"]["eventgenerator"]["cf_server"]["xfcc"]["valid_space_guid"])
end
end

Expand Down
9 changes: 5 additions & 4 deletions spec/jobs/scalingengine/scalingengine_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,15 @@
end

it "defaults xfcc valid org and space " do
properties["autoscaler"]["cf_server"] = {}
properties["autoscaler"]["cf_server"]["xfcc"] = {
properties["autoscaler"]["scalingengine"] = {}
properties["autoscaler"]["scalingengine"]["cf_server"] = {}
properties["autoscaler"]["scalingengine"]["cf_server"]["xfcc"] = {
"valid_org_guid" => "some-valid-org-guid",
"valid_space_guid" => "some-valid-space-guid"
}

expect(rendered_template["cf_server"]["xfcc"]["valid_org_guid"]).to eq(properties["autoscaler"]["cf_server"]["xfcc"]["valid_org_guid"])
expect(rendered_template["cf_server"]["xfcc"]["valid_space_guid"]).to eq(properties["autoscaler"]["cf_server"]["xfcc"]["valid_space_guid"])
expect(rendered_template["cf_server"]["xfcc"]["valid_org_guid"]).to eq(properties["autoscaler"]["scalingengine"]["cf_server"]["xfcc"]["valid_org_guid"])
expect(rendered_template["cf_server"]["xfcc"]["valid_space_guid"]).to eq(properties["autoscaler"]["scalingengine"]["cf_server"]["xfcc"]["valid_space_guid"])
end
end

Expand Down
Loading
Loading