k2hr3-api 1.0.35 → 1.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ k2hr3-api (1.0.36) unstable; urgency=low
2
+
3
+ * Updated k2hr3-init.sh.templ - #123
4
+
5
+ -- Takeshi Nakatani <ggtakec@gmail.com> Mon, 09 Dec 2024 12:52:55 +0900
6
+
1
7
  k2hr3-api (1.0.35) unstable; urgency=low
2
8
 
3
9
  * Fixed bugs about defunct processes and mis-coding - #121
@@ -108,8 +108,10 @@ check_os()
108
108
  #
109
109
  # Set global values
110
110
  # IS_OS_DEBIAN
111
+ # IS_OS_ALPINE
111
112
  # PKGMGR_BIN
112
113
  # PKGMGR_UPDATE_OPT
114
+ # PKGMGR_INSTALL_OPT
113
115
  # PKGMGR_LIST_CMD
114
116
  #
115
117
  . /etc/os-release
@@ -117,39 +119,59 @@ check_os()
117
119
  if echo "${ID}" | grep -q -i "centos"; then
118
120
  if [ -z "${VERSION_ID}" ] || [ "${VERSION_ID}" -eq 7 ]; then
119
121
  IS_OS_DEBIAN=0
122
+ IS_OS_ALPINE=0
120
123
  PKGMGR_BIN="yum"
121
124
  PKGMGR_UPDATE_OPT="update -y"
125
+ PKGMGR_INSTALL_OPT="install -y"
122
126
  PKGMGR_LIST_CMD="yum list installed"
123
127
  else
124
128
  IS_OS_DEBIAN=0
129
+ IS_OS_ALPINE=0
125
130
  PKGMGR_BIN="dnf"
126
131
  PKGMGR_UPDATE_OPT="update -y -qq"
132
+ PKGMGR_INSTALL_OPT="install -y"
127
133
  PKGMGR_LIST_CMD="dnf list installed"
128
134
  fi
129
135
  elif echo "${ID}" | grep -q -i "rocky"; then
130
136
  IS_OS_DEBIAN=0
137
+ IS_OS_ALPINE=0
131
138
  PKGMGR_BIN="dnf"
132
139
  PKGMGR_UPDATE_OPT="update -y -qq"
140
+ PKGMGR_INSTALL_OPT="install -y"
133
141
  PKGMGR_LIST_CMD="dnf list installed"
134
142
 
135
143
  elif echo "${ID}" | grep -q -i "fedora"; then
136
144
  IS_OS_DEBIAN=0
145
+ IS_OS_ALPINE=0
137
146
  PKGMGR_BIN="dnf"
138
147
  PKGMGR_UPDATE_OPT="update -y -qq"
148
+ PKGMGR_INSTALL_OPT="install -y"
139
149
  PKGMGR_LIST_CMD="dnf list installed"
140
150
 
141
151
  elif echo "${ID}" | grep -q -i "ubuntu"; then
142
152
  IS_OS_DEBIAN=1
153
+ IS_OS_ALPINE=0
143
154
  PKGMGR_BIN="apt-get"
144
155
  PKGMGR_UPDATE_OPT="update -y -qq"
156
+ PKGMGR_INSTALL_OPT="install -y"
145
157
  PKGMGR_LIST_CMD="apt list --installed"
146
158
 
147
159
  elif echo "${ID}" | grep -q -i "debian"; then
148
160
  IS_OS_DEBIAN=1
161
+ IS_OS_ALPINE=0
149
162
  PKGMGR_BIN="apt-get"
150
163
  PKGMGR_UPDATE_OPT="update -y -qq"
164
+ PKGMGR_INSTALL_OPT="install -y"
151
165
  PKGMGR_LIST_CMD="apt list --installed"
152
166
 
167
+ elif echo "${ID}" | grep -q -i "alpine"; then
168
+ IS_OS_DEBIAN=0
169
+ IS_OS_ALPINE=1
170
+ PKGMGR_BIN="apk"
171
+ PKGMGR_UPDATE_OPT="update -q --no-progress"
172
+ PKGMGR_INSTALL_OPT="add --no-progress --no-cache"
173
+ PKGMGR_LIST_CMD="apk list --installed"
174
+
153
175
  else
154
176
  exit_err "Unknown OS distribution(${ID})."
155
177
  fi
@@ -187,7 +209,7 @@ check_curl()
187
209
  update_package_local_db
188
210
 
189
211
  # Install curl
190
- if ! /bin/sh -c "${SUDOCMD} ${PKGMGR_BIN} install ${PKGMGR_INSTALL_OPT} curl"; then
212
+ if ! /bin/sh -c "${SUDOCMD} ${PKGMGR_BIN} ${PKGMGR_INSTALL_OPT} curl"; then
191
213
  exit_err "Failed installing curl"
192
214
  fi
193
215
  output_info "Success installing curl"
@@ -270,10 +292,15 @@ setup_packagecloudio_repo()
270
292
  fi
271
293
  if [ "${IS_OS_DEBIAN}" -eq 1 ]; then
272
294
  _SCRIPT_NAME="script.deb.sh"
295
+ _RUN_SHELL_CMD="bash"
296
+ elif [ "${IS_OS_ALPINE}" -eq 1 ]; then
297
+ _SCRIPT_NAME="script.alpine.sh"
298
+ _RUN_SHELL_CMD="sh"
273
299
  else
274
300
  _SCRIPT_NAME="script.rpm.sh"
301
+ _RUN_SHELL_CMD="bash"
275
302
  fi
276
- if ! curl -s https://packagecloud.io/install/repositories/antpickax/stable/"${_SCRIPT_NAME}" | "${SUDOCMD}" bash; then
303
+ if ! /bin/sh -c "curl -s https://packagecloud.io/install/repositories/antpickax/stable/${_SCRIPT_NAME} | ${SUDOCMD} ${_RUN_SHELL_CMD}"; then
277
304
  exit_err "Could not setup packagecloud.io repository."
278
305
  fi
279
306
  SETUP_PC_REPO=1
@@ -324,7 +351,7 @@ install_package()
324
351
  output_info "${_TMP_INSTALL_PKGNAME} pacakge is already installed."
325
352
  else
326
353
  # Install package
327
- if ! /bin/sh -c "${SUDOCMD} ${PKGMGR_BIN} install ${PKGMGR_INSTALL_OPT} ${_TMP_INSTALL_PKGNAME}" >/dev/null 2>&1; then
354
+ if ! /bin/sh -c "${SUDOCMD} ${PKGMGR_BIN} ${PKGMGR_INSTALL_OPT} ${_TMP_INSTALL_PKGNAME}" >/dev/null 2>&1; then
328
355
  exit_err "Failed installing ${_TMP_INSTALL_PKGNAME} package"
329
356
  fi
330
357
  output_info "Success installing ${_TMP_INSTALL_PKGNAME} pacakge"
@@ -357,19 +384,21 @@ get_install_packages()
357
384
  # Check response(expect -> "result": true)
358
385
  if ! echo "${_GET_RESULT}" | tr '[:lower:]' '[:upper:]' | grep -q '["]*RESULT["]*:[[:space:]]*TRUE[[:space:]]*,'; then
359
386
  # Get error message(expect -> "message": "...")
360
- _GET_RESULT_MSG=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*[mM][eE][sS][sS][aA][gG][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
387
+ _GET_RESULT_MSG=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*message["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
361
388
  output_info "There is no keyname($3) with response(${_GET_RESULT_MSG}), then no package is installed."
362
389
  return 0
363
390
  fi
364
391
  output_info "Success getting keyname($3) value."
365
392
 
393
+ # get pacakge list
394
+ INSTALL_PKGS=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*resource["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g' -e 's/,/ /g' -e 's/^[[:space:]]*//g' -e 's/[[:space:]]*$//g')
395
+
366
396
  # setup packakecloud.io repository
367
- if [ "${_INSTALL_PKGS_PC}" -eq 1 ]; then
397
+ if [ "${_INSTALL_PKGS_PC}" -eq 1 ] && [ -n "${INSTALL_PKGS}" ]; then
368
398
  setup_packagecloudio_repo
369
399
  fi
370
400
 
371
- # pacakges
372
- INSTALL_PKGS=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*[rR][eE][sS][oO][uU][rR][cC][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g' -e 's/,/ /g')
401
+ # install each package
373
402
  for _package in ${INSTALL_PKGS}; do
374
403
  install_package "${_package}"
375
404
  done
@@ -398,14 +427,14 @@ start_systemd_service()
398
427
  # Check response(expect -> "result": true)
399
428
  if ! echo "${_GET_RESULT}" | tr '[:lower:]' '[:upper:]' | grep -q '["]*RESULT["]*:[[:space:]]*TRUE[[:space:]]*,'; then
400
429
  # Get error message(expect -> "message": "...")
401
- _GET_RESULT_MSG=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*[mM][eE][sS][sS][aA][gG][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
430
+ _GET_RESULT_MSG=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*message["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
402
431
  output_info "There is no keyname($3) with response(${_GET_RESULT_MSG}), then no package is installed."
403
432
  return 0
404
433
  fi
405
434
  output_info "Success getting keyname($3) value."
406
435
 
407
436
  # pacakges
408
- _TMP_LIST_PKGS=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*[rR][eE][sS][oO][uU][rR][cC][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g' -e 's/,/ /g')
437
+ _TMP_LIST_PKGS=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*resource["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g' -e 's/,/ /g')
409
438
 
410
439
  # check and start/enable systemd service
411
440
  for _package in ${_TMP_LIST_PKGS}; do
@@ -452,14 +481,14 @@ stop_systemd_service()
452
481
  # Check response(expect -> "result": true)
453
482
  if ! echo "${_GET_RESULT}" | tr '[:lower:]' '[:upper:]' | grep -q '["]*RESULT["]*:[[:space:]]*TRUE[[:space:]]*,'; then
454
483
  # Get error message(expect -> "message": "...")
455
- _GET_RESULT_MSG=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*[mM][eE][sS][sS][aA][gG][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
484
+ _GET_RESULT_MSG=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*message["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
456
485
  output_info "There is no keyname($3) with response(${_GET_RESULT_MSG}), then no package is installed."
457
486
  return 0
458
487
  fi
459
488
  output_info "Success getting keyname($3) value."
460
489
 
461
490
  # pacakges
462
- _TMP_LIST_PKGS=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*[rR][eE][sS][oO][uU][rR][cC][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g' -e 's/,/ /g')
491
+ _TMP_LIST_PKGS=$(echo "${_GET_RESULT}" | sed -e 's/^.*["]*resource["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g' -e 's/,/ /g')
463
492
 
464
493
  # make reverse list
465
494
  _TMP_REV_LIST_PKGS=""
@@ -506,7 +535,7 @@ register_host()
506
535
  # Check response(expect -> "result": true)
507
536
  if ! echo "${_REGISTER_RESULT}" | tr '[:lower:]' '[:upper:]' | grep -q '["]*RESULT["]*:[[:space:]]*TRUE[[:space:]]*,'; then
508
537
  # Get error message(expect -> "message": "...")
509
- _REGISTER_RESULT_MSG=$(echo "${_REGISTER_RESULT}" | sed -e 's/^.*["]*[mM][eE][sS][sS][aA][gG][eE]["]*:[[:space:]]*//g' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
538
+ _REGISTER_RESULT_MSG=$(echo "${_REGISTER_RESULT}" | sed -e 's/^.*["]*message["]*:[[:space:]]*//gi' -e 's/["],.*$//g' -e 's/}.*//g' -e 's/"//g')
510
539
  exit_err "Failed to put access for registering by ${_REGISTER_RESULT_MSG}"
511
540
  fi
512
541
  output_info "Success setting this host to k2hr3 role($3)"
@@ -593,9 +622,10 @@ output_info "Start common processing."
593
622
  SETUP_PC_REPO=0
594
623
  IS_UPDATE_PKG_LOCAL_DB=0
595
624
  IS_OS_DEBIAN=0
625
+ IS_OS_ALPINE=0
596
626
  PKGMGR_BIN=
597
627
  PKGMGR_UPDATE_OPT=
598
- PKGMGR_INSTALL_OPT="-y"
628
+ PKGMGR_INSTALL_OPT=
599
629
  PKGMGR_LIST_CMD=
600
630
 
601
631
  #
@@ -633,7 +663,7 @@ INSTANCE_ID_FILE="${CLOUDINIT_DATA_DIR}/instance-id"
633
663
  #
634
664
  K2HR3_ROLE_TOKEN="{{= %K2HR3_ROLE_TOKEN% }}"
635
665
  K2HR3_ROLE_NAME="{{= %K2HR3_ROLE_NAME% }}"
636
- K2HR3_RESOURCE_NAME=$(echo "${K2HR3_ROLE_NAME}" | sed -e 's/:[rR][oO][lL][eE]:/:resource:/g')
666
+ K2HR3_RESOURCE_NAME=$(echo "${K2HR3_ROLE_NAME}" | sed -e 's/:role:/:resource:/gi')
637
667
  K2HR3_ROLE_TENANT="{{= %K2HR3_ROLE_TENANT% }}"
638
668
  K2HR3_API_HOST_URI="{{= %K2HR3_API_HOST_URI% }}"
639
669
  K2HR3_ERROR_MSG="{{= %K2HR3_ERROR_MSG% }}"
@@ -693,13 +723,40 @@ if [ "${SCRIPTMODE}" = "r" ]; then
693
723
  if [ -z "${INSTANCE_ID}" ]; then
694
724
  exit_err "Unknown Instance Id in ${INSTANCE_ID_FILE}"
695
725
  fi
726
+
727
+ #
728
+ # Get full local hostname(with domain)
729
+ #
730
+ # [NOTE]
731
+ # The order of precedence is:
732
+ # 1) search keyword in resolv.conf as domain name
733
+ # 2) domain keyword in resolv.conf as domain name
734
+ # 3) hostname command(-d) as domain name
735
+ # 4) hostname command(-f)
736
+ #
737
+ LOCAL_HOSTNAME=$(hostname)
738
+ LOCAL_DOMAIN=$(hostname -d)
739
+ RESOLVE_DOMAIN=$(grep -i '^search' /etc/resolv.conf | awk '{print $NF}')
740
+ if [ -z "${RESOLVE_DOMAIN}" ]; then
741
+ RESOLVE_DOMAIN=$(grep -i '^domain' /etc/resolv.conf | awk '{print $NF}')
742
+ fi
743
+
744
+ if [ -n "${RESOLVE_DOMAIN}" ]; then
745
+ LOCAL_FULL_HOSTNAME="${LOCAL_HOSTNAME}.${RESOLVE_DOMAIN}"
746
+ elif [ -n "${LOCAL_DOMAIN}" ]; then
747
+ LOCAL_FULL_HOSTNAME="${LOCAL_HOSTNAME}.${LOCAL_DOMAIN}"
748
+ else
749
+ LOCAL_FULL_HOSTNAME=$(hostname -f)
750
+ fi
751
+ LOCAL_FULL_HOSTNAME=$(echo "${LOCAL_FULL_HOSTNAME}" | sed -e 's#\.$##g' -e 's#\.\.#\.#g')
752
+
753
+ #
754
+ # Set variables
755
+ #
696
756
  CUK_VALUE="${INSTANCE_ID}"
697
757
  CUK_PARAMETER="cuk=${INSTANCE_ID}"
698
758
  EXTRA_PARAMETER="extra=openstack-auto-v1"
699
- TAG_PARAMETER="tag=${LOCAL_HOSTNAME}"
700
- if ! LOCAL_HOSTNAME=$(hostname); then
701
- output_warn "Local hostname is empty"
702
- fi
759
+ TAG_PARAMETER="tag=${LOCAL_FULL_HOSTNAME}"
703
760
 
704
761
  #
705
762
  # Register this host to K2HR3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k2hr3-api",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "dependencies": {
5
5
  "@kubernetes/client-node": "^0.22.3",
6
6
  "body-parser": "^1.20.3",