@@ -28,13 +28,13 @@ usage() {
28
28
- Pod restart count in pods mode; default is 30
29
29
- Job failed count in jobs mode; default is 1
30
30
- Pvc storage utilization; default is 80%
31
- - APICERT expiration days for apicert mode; default is 30
31
+ - API cert expiration days for apicert mode; default is 30
32
32
-c CRIT Critical threshold for
33
33
- Pod restart count (in pods mode); default is 150
34
34
- Unbound Persistent Volumes in unboundpvs mode; default is 5
35
35
- Job failed count in jobs mode; default is 2
36
36
- Pvc storage utilization; default is 90%
37
- - APICERT expiration days for apicert mode; default is 15
37
+ - API cert expiration days for apicert mode; default is 15
38
38
-M EXIT_CODE Exit code when resource is missing; default is 2 (CRITICAL)
39
39
-h Show this help and exit
40
40
@@ -159,27 +159,24 @@ mode_apicert() {
159
159
fi
160
160
WARN=${WARN:- 30}
161
161
CRIT=${CRIT:- 15}
162
- APICERT =$( echo " $APISERVER " | awk -F " // " ' { print $2 } ' | awk -F " : " ' { print $1 }' )
163
- APIPORT=$( echo " $APISERVER " | awk -F " // " ' { print $2 } ' | awk -F " : " ' { print $2 }' )
164
- APIPORT=${APIPORT:= 443}
165
- timeout " $TIMEOUT " bash -c " </dev/tcp/ $APICERT / $APIPORT " & > /dev/null
166
- if [ $? -ne 0 ]; then
167
- echo " APICERT is in UNKNOWN"
162
+ APIHOST =$( echo " $APISERVER " | awk -F[/:] ' {print $4 }' )
163
+ APIPORT=$( echo " $APISERVER " | awk -F[/:] ' {print $5 }' )
164
+ APIPORT=${APIPORT:- 443}
165
+ enddate= $( echo | openssl s_client -connect " $APIHOST : $APIPORT " 2 > /dev/null | openssl x509 -enddate -noout 2> /dev/null | sed ' s/notAfter=// ' | xargs -r -0 date +%s -d )
166
+ if [ -z " $enddate " ]; then
167
+ echo " API cert expiration date is UNKNOWN"
168
168
exit 3
169
169
fi
170
- APICERTDATE=$( echo | openssl s_client -connect " $APICERT " :" $APIPORT " 2> /dev/null | openssl x509 -noout -dates | grep notAfter | sed -e ' s#notAfter=##' )
171
- a=$( date -d " $APICERTDATE " +%s)
172
- b=$( date +%s)
173
- c=$(( a- b))
174
- d=$(( c/ 3600 / 24 ))
175
- echo " APICERT expires in $d days"
176
- if [ " $d " -gt " $WARN " ] && [ " $d " -gt " $CRIT " ]; then
177
- echo " APICERT is OK"
178
- elif [ " $d " -le " $WARN " ] && [ $d -gt " $CRIT " ]; then
179
- echo " APICERT is in WARN"
170
+ nowdate=$( date +%s)
171
+ diff=$(( ($enddate - $nowdate )/ 24 / 3600 ))
172
+ OUTPUT=" API cert expires in $diff days"
173
+ if [ " $diff " -gt " $WARN " ] && [ " $diff " -gt " $CRIT " ]; then
174
+ OUTPUT=" OK. $OUTPUT "
175
+ elif [ " $diff " -le " $WARN " ] && [ " $diff " -gt " $CRIT " ]; then
176
+ OUTPUT=" WARNING. $OUTPUT "
180
177
EXITCODE=1
181
- elif [ " $d " -le " $CRIT " ]; then
182
- echo " APICERT is in CRIT "
178
+ elif [ " $diff " -le " $CRIT " ]; then
179
+ OUTPUT= " CRITICAL. $OUTPUT "
183
180
EXITCODE=2
184
181
fi
185
182
}
0 commit comments