From 07ac0370de639d9dbd3bcf44ad60e42f70cbb52c Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Thu, 20 Jun 2024 13:11:19 +0300 Subject: [PATCH 01/15] Replace bbs with the PoC version --- packages/bbs/packaging | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bbs/packaging b/packages/bbs/packaging index a2a9a92a82..76c9d68226 100644 --- a/packages/bbs/packaging +++ b/packages/bbs/packaging @@ -10,6 +10,6 @@ source /var/vcap/packages/golang-*-linux/bosh/compile.env mkdir ${BOSH_INSTALL_TARGET}/bin export GOBIN=${BOSH_INSTALL_TARGET}/bin -pushd src/code.cloudfoundry.org -go install code.cloudfoundry.org/bbs/cmd/bbs +pushd src/github.com/dimitardimitrov13 +go github.com/dimitardimitrov13/bbs/cmd/bbs popd From 6cb0e5b81ef2f5a04a06f02cf45ae9fb924b5031 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Tue, 2 Jul 2024 08:41:02 +0300 Subject: [PATCH 02/15] Create service binding root as tmpfs poll --- .../rep/templates/setup_mounted_data_dirs.erb | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/jobs/rep/templates/setup_mounted_data_dirs.erb b/jobs/rep/templates/setup_mounted_data_dirs.erb index 33030c8353..1f46ab10a2 100644 --- a/jobs/rep/templates/setup_mounted_data_dirs.erb +++ b/jobs/rep/templates/setup_mounted_data_dirs.erb @@ -76,3 +76,86 @@ rm -rf "$proxy_config_dir" mkdir -p "$proxy_config_dir" chown -R vcap:vcap "$proxy_config_dir" <% end %> + +#################################### +# Service Binding Root ## +#################################### + +# Define the service binding root directory +service_binding_root="$HOME/var/vcap/jobs/rep/service_binding_root" + +# Calculate the size for the tmpfs (1MB per container) +root_tmpfs_size=$((max_containers * 1))M + +# Function to force unmount all tmpfs directories +force_unmount_tmpfs_directories() { + local dir + for dir in "$1"/*; do + if mountpoint -q "$dir"; then + fuser -k "$dir" + umount -l "$dir" + echo "Force unmounted $dir" + fi + done +} + +# Ensure the root directory is safely removed and recreated +if [ -d "$service_binding_root" ]; then + # Retry unmounting any busy directories + force_unmount_tmpfs_directories "$service_binding_root" + + sleep 10 + + rm -rf "$service_binding_root"/* + + # Ensure the root directory is unmounted before removing it + if mountpoint -q "$service_binding_root"; then + fuser -k "$service_binding_root" + umount -l "$service_binding_root" + echo "Force unmounted $service_binding_root" + fi + + sleep 10 + + rm -rf "$service_binding_root" +fi + +mkdir -p "$service_binding_root" + +# Mount the root tmpfs +if mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root"; then + echo "Root tmpfs successfully mounted to $service_binding_root with size $root_tmpfs_size." +else + echo "Failed to mount root tmpfs to $service_binding_root." + exit 1 +fi + +# Function to create a tmpfs mount point with a UUID +create_tmpfs_with_uuid() { + local mount_point="$1" + local size="$2" + + # Generate a UUID + local uuid=$(uuidgen) + + # Create the directory for the tmpfs + local tmpfs_dir="$mount_point/$uuid" + mkdir -p "$tmpfs_dir" + + # Mount the tmpfs + if mount -t tmpfs -o size="$size" tmpfs "$tmpfs_dir"; then + echo "tmpfs successfully mounted to $tmpfs_dir with size $size." + else + echo "Failed to mount tmpfs to $tmpfs_dir." + exit 1 + fi +} + +# Loop to create the required number of tmpfs mount points +for ((i=0; i Date: Tue, 2 Jul 2024 13:03:25 +0300 Subject: [PATCH 03/15] Revise the service_binding_root strategy. --- .../rep/templates/setup_mounted_data_dirs.erb | 49 +------------------ 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/jobs/rep/templates/setup_mounted_data_dirs.erb b/jobs/rep/templates/setup_mounted_data_dirs.erb index 1f46ab10a2..6c61677d2f 100644 --- a/jobs/rep/templates/setup_mounted_data_dirs.erb +++ b/jobs/rep/templates/setup_mounted_data_dirs.erb @@ -87,27 +87,8 @@ service_binding_root="$HOME/var/vcap/jobs/rep/service_binding_root" # Calculate the size for the tmpfs (1MB per container) root_tmpfs_size=$((max_containers * 1))M -# Function to force unmount all tmpfs directories -force_unmount_tmpfs_directories() { - local dir - for dir in "$1"/*; do - if mountpoint -q "$dir"; then - fuser -k "$dir" - umount -l "$dir" - echo "Force unmounted $dir" - fi - done -} - # Ensure the root directory is safely removed and recreated if [ -d "$service_binding_root" ]; then - # Retry unmounting any busy directories - force_unmount_tmpfs_directories "$service_binding_root" - - sleep 10 - - rm -rf "$service_binding_root"/* - # Ensure the root directory is unmounted before removing it if mountpoint -q "$service_binding_root"; then fuser -k "$service_binding_root" @@ -130,32 +111,6 @@ else exit 1 fi -# Function to create a tmpfs mount point with a UUID -create_tmpfs_with_uuid() { - local mount_point="$1" - local size="$2" - - # Generate a UUID - local uuid=$(uuidgen) - - # Create the directory for the tmpfs - local tmpfs_dir="$mount_point/$uuid" - mkdir -p "$tmpfs_dir" - - # Mount the tmpfs - if mount -t tmpfs -o size="$size" tmpfs "$tmpfs_dir"; then - echo "tmpfs successfully mounted to $tmpfs_dir with size $size." - else - echo "Failed to mount tmpfs to $tmpfs_dir." - exit 1 - fi -} - -# Loop to create the required number of tmpfs mount points -for ((i=0; i Date: Tue, 2 Jul 2024 13:04:40 +0300 Subject: [PATCH 04/15] Restore bbs packaging --- packages/bbs/packaging | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bbs/packaging b/packages/bbs/packaging index 76c9d68226..a2a9a92a82 100644 --- a/packages/bbs/packaging +++ b/packages/bbs/packaging @@ -10,6 +10,6 @@ source /var/vcap/packages/golang-*-linux/bosh/compile.env mkdir ${BOSH_INSTALL_TARGET}/bin export GOBIN=${BOSH_INSTALL_TARGET}/bin -pushd src/github.com/dimitardimitrov13 -go github.com/dimitardimitrov13/bbs/cmd/bbs +pushd src/code.cloudfoundry.org +go install code.cloudfoundry.org/bbs/cmd/bbs popd From c96537a9b031127607c6a915babb9b2225e047e9 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Tue, 2 Jul 2024 16:25:54 +0300 Subject: [PATCH 05/15] Add service_binding_root tmpfs. --- jobs/rep/templates/setup_mounted_data_dirs.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jobs/rep/templates/setup_mounted_data_dirs.erb b/jobs/rep/templates/setup_mounted_data_dirs.erb index 6c61677d2f..ca8cf1abfa 100644 --- a/jobs/rep/templates/setup_mounted_data_dirs.erb +++ b/jobs/rep/templates/setup_mounted_data_dirs.erb @@ -82,7 +82,7 @@ rm -rf "$proxy_config_dir" #################################### # Define the service binding root directory -service_binding_root="$HOME/var/vcap/jobs/rep/service_binding_root" +service_binding_root="/var/vcap/jobs/rep/service_binding_root" # Calculate the size for the tmpfs (1MB per container) root_tmpfs_size=$((max_containers * 1))M From e107132e32db73dc95266dace43d17e12cbb5ada Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 10 Jul 2024 10:41:50 +0300 Subject: [PATCH 06/15] Testing of rep service_binding_root --- jobs/rep/templates/bpm-pre-start.erb | 2 + jobs/rep/templates/rep.json.erb | 2 + jobs/rep/templates/rep_ctl.erb | 1 + .../rep/templates/setup_mounted_data_dirs.erb | 38 ---------------- .../templates/setup_service_binding_root.erb | 44 +++++++++++++++++++ 5 files changed, 49 insertions(+), 38 deletions(-) create mode 100644 jobs/rep/templates/setup_service_binding_root.erb diff --git a/jobs/rep/templates/bpm-pre-start.erb b/jobs/rep/templates/bpm-pre-start.erb index 4fa8e1d39e..3890b72977 100644 --- a/jobs/rep/templates/bpm-pre-start.erb +++ b/jobs/rep/templates/bpm-pre-start.erb @@ -5,3 +5,5 @@ bin_dir=/var/vcap/jobs/rep/bin $bin_dir/set-rep-kernel-params $bin_dir/setup_mounted_data_dirs + +$bin_dir/setup_service_binding_root diff --git a/jobs/rep/templates/rep.json.erb b/jobs/rep/templates/rep.json.erb index 733aca8af1..1cac835314 100644 --- a/jobs/rep/templates/rep.json.erb +++ b/jobs/rep/templates/rep.json.erb @@ -4,6 +4,7 @@ trusted_certs_dir = "/var/vcap/data/rep/shared/garden/trusted_certs" instance_identity_dir = "/var/vcap/data/rep/shared/garden/instance_identity" download_cache_dir= "/var/vcap/data/rep/shared/garden/download_cache" + service_binding_root_dir = "/var/vcap/data/rep/shared/garden/service_binding_root" zone = spec.az if_p("diego.rep.zone") do |value| @@ -103,6 +104,7 @@ report_interval: "1m", max_data_string_length: p("logging.max_data_string_length"), max_log_lines_per_second: p("diego.executor.max_log_lines_per_second"), + service_binding_root: "#{service_binding_root_dir}" } if p("containers.graceful_shutdown_interval_in_seconds") < 10 diff --git a/jobs/rep/templates/rep_ctl.erb b/jobs/rep/templates/rep_ctl.erb index 50e2ab7d72..d22bcfd84b 100644 --- a/jobs/rep/templates/rep_ctl.erb +++ b/jobs/rep/templates/rep_ctl.erb @@ -38,6 +38,7 @@ case $1 in $bin_dir/set-rep-kernel-params $bin_dir/setup_mounted_data_dirs + $bin_dir/setup_service_binding_root # Allowed number of open file descriptors ulimit -n 100000 diff --git a/jobs/rep/templates/setup_mounted_data_dirs.erb b/jobs/rep/templates/setup_mounted_data_dirs.erb index ca8cf1abfa..33030c8353 100644 --- a/jobs/rep/templates/setup_mounted_data_dirs.erb +++ b/jobs/rep/templates/setup_mounted_data_dirs.erb @@ -76,41 +76,3 @@ rm -rf "$proxy_config_dir" mkdir -p "$proxy_config_dir" chown -R vcap:vcap "$proxy_config_dir" <% end %> - -#################################### -# Service Binding Root ## -#################################### - -# Define the service binding root directory -service_binding_root="/var/vcap/jobs/rep/service_binding_root" - -# Calculate the size for the tmpfs (1MB per container) -root_tmpfs_size=$((max_containers * 1))M - -# Ensure the root directory is safely removed and recreated -if [ -d "$service_binding_root" ]; then - # Ensure the root directory is unmounted before removing it - if mountpoint -q "$service_binding_root"; then - fuser -k "$service_binding_root" - umount -l "$service_binding_root" - echo "Force unmounted $service_binding_root" - fi - - sleep 10 - - rm -rf "$service_binding_root" -fi - -mkdir -p "$service_binding_root" - -# Mount the root tmpfs -if mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root"; then - echo "Root tmpfs successfully mounted to $service_binding_root with size $root_tmpfs_size." -else - echo "Failed to mount root tmpfs to $service_binding_root." - exit 1 -fi - -# Set permissions and ownership for the root directory and all subdirectories -chmod 0700 "$service_binding_root" -chown vcap:vcap "$service_binding_root" diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/setup_service_binding_root.erb new file mode 100644 index 0000000000..f6834c346c --- /dev/null +++ b/jobs/rep/templates/setup_service_binding_root.erb @@ -0,0 +1,44 @@ +<% + _max_containers = 250 + if_p("diego.rep.max_containers") do |value| + _max_containers = value + end + if _max_containers <= 0 + raise "The max_containers prop should be a positive integer" + end +%> +max_containers=<%= _max_containers %> + +# Define the service binding root directory +service_binding_root="/var/vcap/data/rep/shared/garden/service_binding_root" + +# Calculate the size for the tmpfs (1MB per container) +root_tmpfs_size=$((max_containers * 1))M + +# Ensure the root directory is safely removed and recreated +if [ -d "$service_binding_root" ]; then + # Ensure the root directory is unmounted before removing it + if mountpoint -q "$service_binding_root"; then + fuser -k "$service_binding_root" + umount -l "$service_binding_root" + echo "Force unmounted $service_binding_root" + fi + + sleep 10 + + rm -rf "$service_binding_root" +fi + +mkdir -p "$service_binding_root" + +# Mount the root tmpfs +if mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root"; then + echo "Root tmpfs successfully mounted to $service_binding_root with size $root_tmpfs_size." +else + echo "Failed to mount root tmpfs to $service_binding_root." + exit 1 +fi + +# Set permissions and ownership for the root directory and all subdirectories +chmod 0700 "$service_binding_root" +chown vcap:vcap "$service_binding_root" From 46162b6748741ed11e8fc3cdd54a36f43bd47b38 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 10 Jul 2024 13:59:13 +0300 Subject: [PATCH 07/15] Add service_binding_root to spec. --- jobs/rep/spec | 1 + 1 file changed, 1 insertion(+) diff --git a/jobs/rep/spec b/jobs/rep/spec index 405f90f465..1997c7ebfe 100644 --- a/jobs/rep/spec +++ b/jobs/rep/spec @@ -22,6 +22,7 @@ templates: tls.key.erb: config/certs/tls.key tls_ca.crt.erb: config/certs/tls_ca.crt indicators.yml.erb: config/indicators.yml + setup_service_binding_root.erb: bin/setup_service_binding_root packages: - pid_utils From c530058b46fd763f3c296686f74989f1cf65b707 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 10 Jul 2024 14:45:57 +0300 Subject: [PATCH 08/15] Adding of logging for max containers. Debug. --- jobs/rep/templates/setup_service_binding_root.erb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/setup_service_binding_root.erb index f6834c346c..6836fad8ad 100644 --- a/jobs/rep/templates/setup_service_binding_root.erb +++ b/jobs/rep/templates/setup_service_binding_root.erb @@ -1,3 +1,5 @@ +#!/bin/bash -e + <% _max_containers = 250 if_p("diego.rep.max_containers") do |value| @@ -9,6 +11,8 @@ %> max_containers=<%= _max_containers %> +echo "max_containers=${max_containers}" >> max_containers.log + # Define the service binding root directory service_binding_root="/var/vcap/data/rep/shared/garden/service_binding_root" From 2b925afb918301564ed7b80cedd856c6ae9d6278 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 10 Jul 2024 17:13:41 +0300 Subject: [PATCH 09/15] Remove shebang for a bash. --- jobs/rep/templates/setup_service_binding_root.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/setup_service_binding_root.erb index 6836fad8ad..c6cee1e800 100644 --- a/jobs/rep/templates/setup_service_binding_root.erb +++ b/jobs/rep/templates/setup_service_binding_root.erb @@ -1,4 +1,4 @@ -#!/bin/bash -e +#!/usr/bin/env bash <% _max_containers = 250 From 56f187ba8ec8b8bee8ce8052b77d84e38a4fbf71 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Thu, 11 Jul 2024 14:12:24 +0300 Subject: [PATCH 10/15] Remove debug. --- jobs/rep/templates/setup_service_binding_root.erb | 2 -- 1 file changed, 2 deletions(-) diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/setup_service_binding_root.erb index c6cee1e800..5601778727 100644 --- a/jobs/rep/templates/setup_service_binding_root.erb +++ b/jobs/rep/templates/setup_service_binding_root.erb @@ -11,8 +11,6 @@ %> max_containers=<%= _max_containers %> -echo "max_containers=${max_containers}" >> max_containers.log - # Define the service binding root directory service_binding_root="/var/vcap/data/rep/shared/garden/service_binding_root" From beb5a6269f7141a8c8617032403178a508c77a81 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Mon, 22 Jul 2024 14:59:37 +0300 Subject: [PATCH 11/15] Adding of BDD tests for setup_service_binding_root.erb. --- jobs/rep/templates/setup_service_binding_root.erb | 3 --- spec/rep_template_spec.rb | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/setup_service_binding_root.erb index 5601778727..637c2046c7 100644 --- a/jobs/rep/templates/setup_service_binding_root.erb +++ b/jobs/rep/templates/setup_service_binding_root.erb @@ -23,7 +23,6 @@ if [ -d "$service_binding_root" ]; then if mountpoint -q "$service_binding_root"; then fuser -k "$service_binding_root" umount -l "$service_binding_root" - echo "Force unmounted $service_binding_root" fi sleep 10 @@ -35,9 +34,7 @@ mkdir -p "$service_binding_root" # Mount the root tmpfs if mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root"; then - echo "Root tmpfs successfully mounted to $service_binding_root with size $root_tmpfs_size." else - echo "Failed to mount root tmpfs to $service_binding_root." exit 1 fi diff --git a/spec/rep_template_spec.rb b/spec/rep_template_spec.rb index cb0dd82821..97df4228e1 100644 --- a/spec/rep_template_spec.rb +++ b/spec/rep_template_spec.rb @@ -106,5 +106,18 @@ end.to raise_error(/The max_containers prop should be a positive integer/) end end - end + end + + describe 'setup_service_binding_root.erb' do + let(:template) { job.template('bin/setup_service_binding_root') } + + context 'checks the max_containers value' do + it 'raises an error if max_containers is <= 0' do + deployment_manifest_fragment['diego']['rep']['max_containers'] = -10 + expect do + rendered_template + end.to raise_error(/The max_containers prop should be a positive integer/) + end + end + end end From f0b8a59b6b428b5d054a28a3532ee8780efc80cf Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 24 Jul 2024 09:05:16 +0300 Subject: [PATCH 12/15] Refactoring. --- jobs/rep/templates/setup_service_binding_root.erb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/setup_service_binding_root.erb index 637c2046c7..9eb554fbb2 100644 --- a/jobs/rep/templates/setup_service_binding_root.erb +++ b/jobs/rep/templates/setup_service_binding_root.erb @@ -33,10 +33,7 @@ fi mkdir -p "$service_binding_root" # Mount the root tmpfs -if mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root"; then -else - exit 1 -fi +mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root" || exit 1 # Set permissions and ownership for the root directory and all subdirectories chmod 0700 "$service_binding_root" From f97689b96fd24638f7cebd958966aa47346cd2c5 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Tue, 29 Oct 2024 13:14:35 +0200 Subject: [PATCH 13/15] Changes according Updates #1008 --- .gitmodules | 4 ++-- jobs/rep/spec | 2 +- jobs/rep/templates/bpm-pre-start.erb | 2 +- jobs/rep/templates/rep.json.erb | 4 ++-- jobs/rep/templates/rep_ctl.erb | 2 +- ...ding_root.erb => volume_mounted_files.erb} | 20 +++++++++---------- spec/rep_template_spec.rb | 4 ++-- 7 files changed, 19 insertions(+), 19 deletions(-) rename jobs/rep/templates/{setup_service_binding_root.erb => volume_mounted_files.erb} (58%) diff --git a/.gitmodules b/.gitmodules index fc4ff50de7..f73822a26b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "src/code.cloudfoundry.org/bbs"] path = src/code.cloudfoundry.org/bbs - url = https://github.com/cloudfoundry/bbs - branch = main + url = https://github.com/dimitardimitrov13/bbs + branch = CFAR-929_VCAP_SERVICES [submodule "src/code.cloudfoundry.org/auctioneer"] path = src/code.cloudfoundry.org/auctioneer url = https://github.com/cloudfoundry/auctioneer diff --git a/jobs/rep/spec b/jobs/rep/spec index d527a318cf..da3718b02f 100644 --- a/jobs/rep/spec +++ b/jobs/rep/spec @@ -22,7 +22,7 @@ templates: tls.key.erb: config/certs/tls.key tls_ca.crt.erb: config/certs/tls_ca.crt indicators.yml.erb: config/indicators.yml - setup_service_binding_root.erb: bin/setup_service_binding_root + volume_mounted_files.erb: bin/volume_mounted_files packages: - pid_utils diff --git a/jobs/rep/templates/bpm-pre-start.erb b/jobs/rep/templates/bpm-pre-start.erb index 3890b72977..33afd337f3 100644 --- a/jobs/rep/templates/bpm-pre-start.erb +++ b/jobs/rep/templates/bpm-pre-start.erb @@ -6,4 +6,4 @@ $bin_dir/set-rep-kernel-params $bin_dir/setup_mounted_data_dirs -$bin_dir/setup_service_binding_root +$bin_dir/volume_mounted_files diff --git a/jobs/rep/templates/rep.json.erb b/jobs/rep/templates/rep.json.erb index a04b329d87..05198b6770 100644 --- a/jobs/rep/templates/rep.json.erb +++ b/jobs/rep/templates/rep.json.erb @@ -4,7 +4,7 @@ trusted_certs_dir = "/var/vcap/data/rep/shared/garden/trusted_certs" instance_identity_dir = "/var/vcap/data/rep/shared/garden/instance_identity" download_cache_dir= "/var/vcap/data/rep/shared/garden/download_cache" - service_binding_root_dir = "/var/vcap/data/rep/shared/garden/service_binding_root" + volume_mounted_files = "/var/vcap/data/rep/shared/volume_mounted_files" zone = spec.az if_p("diego.rep.zone") do |value| @@ -105,7 +105,7 @@ report_interval: "1m", max_data_string_length: p("logging.max_data_string_length"), max_log_lines_per_second: p("diego.executor.max_log_lines_per_second"), - service_binding_root: "#{service_binding_root_dir}" + volume_mounted_files: "#{volume_mounted_files}" } if p("containers.graceful_shutdown_interval_in_seconds") < 10 diff --git a/jobs/rep/templates/rep_ctl.erb b/jobs/rep/templates/rep_ctl.erb index d22bcfd84b..70d134df1a 100644 --- a/jobs/rep/templates/rep_ctl.erb +++ b/jobs/rep/templates/rep_ctl.erb @@ -38,7 +38,7 @@ case $1 in $bin_dir/set-rep-kernel-params $bin_dir/setup_mounted_data_dirs - $bin_dir/setup_service_binding_root + $bin_dir/volume_mounted_files # Allowed number of open file descriptors ulimit -n 100000 diff --git a/jobs/rep/templates/setup_service_binding_root.erb b/jobs/rep/templates/volume_mounted_files.erb similarity index 58% rename from jobs/rep/templates/setup_service_binding_root.erb rename to jobs/rep/templates/volume_mounted_files.erb index 9eb554fbb2..0c0735eda8 100644 --- a/jobs/rep/templates/setup_service_binding_root.erb +++ b/jobs/rep/templates/volume_mounted_files.erb @@ -12,29 +12,29 @@ max_containers=<%= _max_containers %> # Define the service binding root directory -service_binding_root="/var/vcap/data/rep/shared/garden/service_binding_root" +volume_mounted_files="/var/vcap/data/rep/shared/garden/volume_mounted_files" # Calculate the size for the tmpfs (1MB per container) root_tmpfs_size=$((max_containers * 1))M # Ensure the root directory is safely removed and recreated -if [ -d "$service_binding_root" ]; then +if [ -d "$volume_mounted_files" ]; then # Ensure the root directory is unmounted before removing it - if mountpoint -q "$service_binding_root"; then - fuser -k "$service_binding_root" - umount -l "$service_binding_root" + if mountpoint -q "$volume_mounted_files"; then + fuser -k "$volume_mounted_files" + umount -l "$volume_mounted_files" fi sleep 10 - rm -rf "$service_binding_root" + rm -rf "$volume_mounted_files" fi -mkdir -p "$service_binding_root" +mkdir -p "$volume_mounted_files" # Mount the root tmpfs -mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$service_binding_root" || exit 1 +mount -t tmpfs -o size="$root_tmpfs_size" tmpfs "$volume_mounted_files" || exit 1 # Set permissions and ownership for the root directory and all subdirectories -chmod 0700 "$service_binding_root" -chown vcap:vcap "$service_binding_root" +chmod 0700 "$volume_mounted_files" +chown vcap:vcap "$volume_mounted_files" diff --git a/spec/rep_template_spec.rb b/spec/rep_template_spec.rb index 97df4228e1..30a5b237e0 100644 --- a/spec/rep_template_spec.rb +++ b/spec/rep_template_spec.rb @@ -108,8 +108,8 @@ end end - describe 'setup_service_binding_root.erb' do - let(:template) { job.template('bin/setup_service_binding_root') } + describe 'volume_mounted_files.erb' do + let(:template) { job.template('bin/volume_mounted_files') } context 'checks the max_containers value' do it 'raises an error if max_containers is <= 0' do From 95aa7c41a1dcf4d4c6c5068da784ea17b8ea110b Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Tue, 29 Oct 2024 15:09:51 +0200 Subject: [PATCH 14/15] Revert bbs submodule. --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index f73822a26b..fc4ff50de7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,8 @@ branch = main [submodule "src/code.cloudfoundry.org/bbs"] path = src/code.cloudfoundry.org/bbs - url = https://github.com/dimitardimitrov13/bbs - branch = CFAR-929_VCAP_SERVICES + url = https://github.com/cloudfoundry/bbs + branch = main [submodule "src/code.cloudfoundry.org/auctioneer"] path = src/code.cloudfoundry.org/auctioneer url = https://github.com/cloudfoundry/auctioneer From 1af6dda8b41a2d312cdc98ba5a9afed24cfd1673 Mon Sep 17 00:00:00 2001 From: Dimitar Dimitrov Date: Wed, 30 Oct 2024 09:23:29 +0200 Subject: [PATCH 15/15] Fix volume_mounted_files path --- jobs/rep/templates/rep.json.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jobs/rep/templates/rep.json.erb b/jobs/rep/templates/rep.json.erb index 05198b6770..bf702215be 100644 --- a/jobs/rep/templates/rep.json.erb +++ b/jobs/rep/templates/rep.json.erb @@ -4,7 +4,7 @@ trusted_certs_dir = "/var/vcap/data/rep/shared/garden/trusted_certs" instance_identity_dir = "/var/vcap/data/rep/shared/garden/instance_identity" download_cache_dir= "/var/vcap/data/rep/shared/garden/download_cache" - volume_mounted_files = "/var/vcap/data/rep/shared/volume_mounted_files" + volume_mounted_files = "/var/vcap/data/rep/shared/garden/volume_mounted_files" zone = spec.az if_p("diego.rep.zone") do |value|