mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Add periodic etcd scraping to integration tests
.. to help understand where and why things go bad.
This commit is contained in:
		@@ -91,7 +91,35 @@ kube::etcd::start() {
 | 
				
			|||||||
  curl -fs -X POST "${KUBE_INTEGRATION_ETCD_URL}/v3/kv/put" -d '{"key": "X3Rlc3Q=", "value": ""}'
 | 
					  curl -fs -X POST "${KUBE_INTEGRATION_ETCD_URL}/v3/kv/put" -d '{"key": "X3Rlc3Q=", "value": ""}'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kube::etcd::start_scraping() {
 | 
				
			||||||
 | 
					  if [[ -d "${ARTIFACTS:-}" ]]; then
 | 
				
			||||||
 | 
					    ETCD_SCRAPE_DIR="${ARTIFACTS}/etcd-scrapes"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    ETCD_SCRAPE_DIR=$(mktemp -d -t test-etcd-scrapes.XXXXXX)
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  kube::log::info "Periodically scraping etcd to ${ETCD_SCRAPE_DIR} ."
 | 
				
			||||||
 | 
					  mkdir -p "${ETCD_SCRAPE_DIR}"
 | 
				
			||||||
 | 
					  (
 | 
				
			||||||
 | 
					    while sleep 30; do
 | 
				
			||||||
 | 
					      kube::etcd::scrape
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					  ) &
 | 
				
			||||||
 | 
					  ETCD_SCRAPE_PID=$!
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kube::etcd::scrape() {
 | 
				
			||||||
 | 
					    curl -s -S "${KUBE_INTEGRATION_ETCD_URL}/metrics" > "${ETCD_SCRAPE_DIR}/next" && mv "${ETCD_SCRAPE_DIR}/next" "${ETCD_SCRAPE_DIR}/$(date +%H%M%S).scrape"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
kube::etcd::stop() {
 | 
					kube::etcd::stop() {
 | 
				
			||||||
 | 
					  if [[ -n "${ETCD_SCRAPE_PID:-}" ]]; then
 | 
				
			||||||
 | 
					    kill "${ETCD_SCRAPE_PID}" &>/dev/null || :
 | 
				
			||||||
 | 
					    wait "${ETCD_SCRAPE_PID}" &>/dev/null || :
 | 
				
			||||||
 | 
					    kube::etcd::scrape || :
 | 
				
			||||||
 | 
					    # shellcheck disable=SC2015
 | 
				
			||||||
 | 
					    tar czf "${ETCD_SCRAPE_DIR}/scrapes.tgz" "${ETCD_SCRAPE_DIR}"/*.scrape && rm "${ETCD_SCRAPE_DIR}"/*.scrape || :
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
  if [[ -n "${ETCD_PID-}" ]]; then
 | 
					  if [[ -n "${ETCD_PID-}" ]]; then
 | 
				
			||||||
    kill "${ETCD_PID}" &>/dev/null || :
 | 
					    kill "${ETCD_PID}" &>/dev/null || :
 | 
				
			||||||
    wait "${ETCD_PID}" &>/dev/null || :
 | 
					    wait "${ETCD_PID}" &>/dev/null || :
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,6 +64,9 @@ runTests() {
 | 
				
			|||||||
  kube::log::status "Starting etcd instance"
 | 
					  kube::log::status "Starting etcd instance"
 | 
				
			||||||
  CLEANUP_REQUIRED=1
 | 
					  CLEANUP_REQUIRED=1
 | 
				
			||||||
  kube::etcd::start
 | 
					  kube::etcd::start
 | 
				
			||||||
 | 
					  # shellcheck disable=SC2034
 | 
				
			||||||
 | 
					  local ETCD_SCRAPE_PID # Set in kube::etcd::start_scraping, used in cleanup
 | 
				
			||||||
 | 
					  kube::etcd::start_scraping
 | 
				
			||||||
  kube::log::status "Running integration test cases"
 | 
					  kube::log::status "Running integration test cases"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  make -C "${KUBE_ROOT}" test \
 | 
					  make -C "${KUBE_ROOT}" test \
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user