11import json
2+ from packaging .version import parse
3+
24from scheduler .resources import Resource
35from scheduler .exceptions import KubeException , KubeHTTPException
46
@@ -11,7 +13,7 @@ class HorizontalPodAutoscaler(Resource):
1113 def api_version (self ):
1214 # API location changes between versions
1315 # http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/#api-object
14- if self .version () >= 1.3 :
16+ if self .version () >= parse ( " 1.3.0" ) :
1517 return 'autoscaling/v1'
1618
1719 # 1.2 and older
@@ -69,15 +71,15 @@ def manifest(self, namespace, name, app_type, target, **kwargs):
6971 }
7072 }
7173
72- if self .version () >= 1.3 :
74+ if self .version () >= parse ( " 1.3.0" ) :
7375 manifest ['spec' ]['targetCPUUtilizationPercentage' ] = cpu_percent
7476
7577 manifest ['spec' ]['scaleTargetRef' ] = {
7678 # only works with Deployments, RS and RC
7779 'kind' : target ['kind' ],
7880 'name' : target ['metadata' ]['name' ],
7981 }
80- elif self .version () <= 1.2 :
82+ elif self .version () <= parse ( " 1.2.0" ) :
8183 # api changed between version
8284 manifest ['spec' ]['cpuUtilization' ] = {
8385 'targetPercentage' : cpu_percent
@@ -149,10 +151,10 @@ def wait(self, namespace, name):
149151 # ideally it would use the resources wait commands but they vary
150152 for _ in range (30 ):
151153 # fetch resource attached to it
152- if self .version () >= 1.3 :
154+ if self .version () >= parse ( " 1.3.0" ) :
153155 resource_kind = hpa ['spec' ]['scaleTargetRef' ]['kind' ].lower ()
154156 resource_name = hpa ['spec' ]['scaleTargetRef' ]['name' ]
155- elif self .version () <= 1.2 :
157+ elif self .version () <= parse ( " 1.2.0" ) :
156158 resource_kind = hpa ['spec' ]['scaleRef' ]['kind' ].lower ()
157159 resource_name = hpa ['spec' ]['scaleRef' ]['name' ]
158160
0 commit comments