def _build_with_model(self, model=None): if 'accessModes' in model: self.access_modes = model['accessModes'] if 'selector' in model: self.selector = LabelSelector(model['selector']) if 'resources' in model: self.resources = ResourceRequirements(model['resources']) if 'volumeName' in model: self.volume_name = model['volumeName']
def resources(self, res=None): if not is_valid_dict(res): raise SyntaxError( 'K8sPersistentVolumeClaim: resources: [ {} ] is invalid.'. format(res)) resources = ResourceRequirements(res) self.model.spec.resources = resources
def _build_with_model(self, model=None): if 'accessModes' in model: self.access_modes = model['accessModes'] if 'resources' in model: self.resources = ResourceRequirements(model['resources']) if 'storageClassName' in model: self.storage_class_name = model['storageClassName'] if 'selector' in model: self.selector = LabelSelector(model['selector']) if 'volumeName' in model: self.volume_name = model['volumeName']
def __init__(self, model=None): super(PersistentVolumeClaimSpec, self).__init__() self._access_modes = [] self._selector = LabelSelector() self._resources = ResourceRequirements() self._volume_name = None self.access_modes = ['ReadWriteOnce'] self.resources.requests = {'storage': '10Gi'} if model is not None: self._build_with_model(model)
def _build_with_model(self, model=None): if 'args' in model: self.args = model['args'] if 'command' in model: self.command = model['command'] if 'env' in model: envs = [] for e in model['env']: env = EnvVar(e) envs.append(env) self.env = envs if 'image' in model: self.image = model['image'] if 'imagePullPolicy' in model: self.image_pull_policy = model['imagePullPolicy'] if 'livenessProbe' in model: self.liveness_probe = Probe(model['livenessProbe']) if 'name' in model: self.name = model['name'] if 'ports' in model: ports = [] for p in model['ports']: port = ContainerPort(p) ports.append(port) self.ports = ports if 'readinessProbe' in model: self.readiness_probe = Probe(model['readinessProbe']) if 'resources' in model: r = ResourceRequirements(model['resources']) self.resources = r if 'securityContext' in model: self.security_context = SecurityContext(model['securityContext']) if 'terminationMessagePath' in model: self.termination_message_path = model['terminationMessagePath'] if 'volumeMounts' in model: mounts = [] for v in model['volumeMounts']: mount = VolumeMount(v) mounts.append(mount) self.volume_mounts = mounts if 'workingDir' in model: self.working_dir = model['workingDir']
def __init__(self, model=None): super(Container, self).__init__() self._args = None self._command = None self._env = [] self._image = None self._image_pull_policy = 'IfNotPresent' self._liveness_probe = None self._name = None self._ports = None self._readiness_probe = None self._resources = ResourceRequirements() self._security_context = SecurityContext() self._volume_mounts = [] self._working_dir = None self.resources.requests = {'cpu': '100m', 'memory': '32M'} if model is not None: m = filter_model(model) self._build_with_model(m)
def resources(self, res=None): r = ResourceRequirements(res) self.model.resources = r
class PersistentVolumeClaimSpec(object): """ http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_persistentvolumeclaimspec """ VALID_RESOURCES = ['storage'] def __init__(self, model=None): super(PersistentVolumeClaimSpec, self).__init__() self._access_modes = [] self._selector = LabelSelector() self._resources = ResourceRequirements() self._volume_name = None self.access_modes = ['ReadWriteOnce'] self.resources.requests = {'storage': '10Gi'} if model is not None: self._build_with_model(model) def _build_with_model(self, model=None): if 'accessModes' in model: self.access_modes = model['accessModes'] if 'selector' in model: self.selector = LabelSelector(model['selector']) if 'resources' in model: self.resources = ResourceRequirements(model['resources']) if 'volumeName' in model: self.volume_name = model['volumeName'] # ------------------------------------------------------------------------------------- accessModes @property def access_modes(self): return self._access_modes @access_modes.setter def access_modes(self, modes=None): if not is_valid_list(modes, str): raise SyntaxError( 'PersistentVolumeClaimSpec: access_modes: [ {} ] is invalid.'. format(modes)) filtered = list( filter(lambda x: x in PersistentVolumeSpec.VALID_ACCESS_MODES, modes)) self._access_modes = filtered # ------------------------------------------------------------------------------------- selector @property def selector(self): return self._selector @selector.setter def selector(self, sel=None): if not isinstance(sel, LabelSelector): raise SyntaxError( 'PersistentVolumeClaimSpec: selector: [ {} ] is invalid.'. format(sel)) self._selector = sel # ------------------------------------------------------------------------------------- resources @property def resources(self): return self._resources @resources.setter def resources(self, res=None): if not isinstance(res, ResourceRequirements): raise SyntaxError( 'PersistentVolumeClaimSpec: resources: [ {} ] is invalid.'. format(res)) self._resources = res # ------------------------------------------------------------------------------------- volumeName @property def volume_name(self): return self._volume_name @volume_name.setter def volume_name(self, name=None): if not is_valid_string(name): raise SyntaxError( 'PersistentVolumeClaimSpec: volume_name: [ {} ] is invalid.'. format(name)) self._volume_name = name # ------------------------------------------------------------------------------------- serialize def serialize(self): data = {} if self.access_modes is not None: data['accessModes'] = self.access_modes if self.selector is not None: data['selector'] = self.selector.serialize() if self.resources is not None: data['resources'] = self.resources.serialize() if self.volume_name is not None: data['volumeName'] = self.volume_name return data
class PersistentVolumeClaimSpec(object): """ http://kubernetes.io/docs/api-reference/v1/definitions/#_v1_persistentvolumeclaimspec """ VALID_RESOURCES = ['storage'] def __init__(self, model=None): super(PersistentVolumeClaimSpec, self).__init__() self._access_modes = [] self._selector = LabelSelector() self._resources = ResourceRequirements() self._volume_name = None self._storage_class_name = "" self.access_modes = ['ReadWriteOnce'] self.resources.requests = {'storage': '10Gi'} if model is not None: self._build_with_model(model) def _build_with_model(self, model=None): if 'accessModes' in model: self.access_modes = model['accessModes'] if 'resources' in model: self.resources = ResourceRequirements(model['resources']) if 'storageClassName' in model: self.storage_class_name = model['storageClassName'] if 'selector' in model: self.selector = LabelSelector(model['selector']) if 'volumeName' in model: self.volume_name = model['volumeName'] # ------------------------------------------------------------------------------------- accessModes @property def access_modes(self): return self._access_modes @access_modes.setter def access_modes(self, modes=None): if not is_valid_list(modes, str): raise SyntaxError('PersistentVolumeClaimSpec: access_modes: [ {} ] is invalid.'.format(modes)) filtered = list(filter(lambda x: x in PersistentVolumeSpec.VALID_ACCESS_MODES, modes)) self._access_modes = filtered # ------------------------------------------------------------------------------------- resources @property def resources(self): return self._resources @resources.setter def resources(self, res=None): if not isinstance(res, ResourceRequirements): raise SyntaxError('PersistentVolumeClaimSpec: resources: [ {} ] is invalid.'.format(res)) self._resources = res # ------------------------------------------------------------------------------------- selector @property def selector(self): return self._selector @selector.setter def selector(self, sel=None): if not isinstance(sel, LabelSelector): raise SyntaxError('PersistentVolumeClaimSpec: selector: [ {} ] is invalid.'.format(sel)) self._selector = sel # ------------------------------------------------------------------------------------- storage_class_name @property def storage_class_name(self): return self._storage_class_name @storage_class_name.setter def storage_class_name(self, name=None): if not is_valid_string(name): raise SyntaxError('PersistentVolumeClaimSpec: storage_class_name: [ {} ] is invalid.'.format(name)) self._storage_class_name = name # ------------------------------------------------------------------------------------- volumeName @property def volume_name(self): return self._volume_name @volume_name.setter def volume_name(self, name=None): if not is_valid_string(name): raise SyntaxError('PersistentVolumeClaimSpec: volume_name: [ {} ] is invalid.'.format(name)) self._volume_name = name # ------------------------------------------------------------------------------------- serialize def serialize(self): data = {} if self.access_modes is not None: data['accessModes'] = self.access_modes if self.selector is not None: data['selector'] = self.selector.serialize() if self.storage_class_name is not None: data['storageClassName'] = self.storage_class_name if self.resources is not None: data['resources'] = self.resources.serialize() if self.volume_name is not None: data['volumeName'] = self.volume_name return data