コード例 #1
0
ファイル: K8sSecret.py プロジェクト: froch/kubernetes-py
 def create_service_account_api_token(config=None, name=None):
     s = Secret()
     s.name = "{}-token-{}".format(name, str(uuid.uuid4().hex[:5]))
     s.add_annotation(Secret.K8s_ANNOTATION_SERVICE_ACCOUNT_NAME, name)
     s.type = Secret.K8s_TYPE_SERVICE_ACCOUNT
     k8s = K8sSecret(config=config, name=s.name)
     k8s.model = s
     k8s.create()
     return k8s
コード例 #2
0
ファイル: K8sSecret.py プロジェクト: froch/kubernetes-py
    def create_image_pull_secret(config=None, prefix=None, name=None, data=None):
        s = Secret()

        if name is not None:
            s.name = "{0}-docker-{1}".format(name, str(uuid.uuid4().hex[:5]))
        elif name is None and prefix is not None:
            s.name = "{0}-docker-{1}".format(prefix, str(uuid.uuid4().hex[:5]))
        else:
            s.name = "docker-{0}".format(str(uuid.uuid4().hex[:5]))

        s.dockerconfigjson = data
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s
コード例 #3
0
 def list_image_pull_secrets(config=None):
     _list = K8sSecret(config=config, name="throwaway").list()
     _secrets = []
     for x in _list:
         s = Secret(x)
         if s.type == 'kubernetes.io/.dockerconfigjson':
             k8s = K8sSecret(config=config, name=s.name)
             k8s.model = s
             _secrets.append(k8s)
     return _secrets
コード例 #4
0
ファイル: K8sSecret.py プロジェクト: riconnon/kubernetes-py
 def list(self, pattern=None, labels=None):
     ls = super(K8sSecret, self).list(labels=labels)
     secrets = list(map(lambda x: Secret(x), ls))
     if pattern is not None:
         secrets = list(filter(lambda x: pattern in x.name, secrets))
     k8s = []
     for x in secrets:
         j = K8sSecret(config=self.config, name=x.name).from_model(m=x)
         k8s.append(j)
     return k8s
コード例 #5
0
 def api_tokens_for_service_account(config=None, name=None):
     _list = K8sSecret(config=config, name="throwaway").list()
     _tokens = []
     for x in _list:
         s = Secret(x)
         if s.type == 'kubernetes.io/service-account-token':
             if s.metadata.annotations[
                     'kubernetes.io/service-account.name'] == name:
                 k8s = K8sSecret(config=config, name=s.name)
                 k8s.model = s
                 _tokens.append(k8s)
     return _tokens
コード例 #6
0
 def create_service_account_api_token(config=None, name=None):
     s = Secret()
     s.name = "{}-secret".format(name)
     s.add_annotation('kubernetes.io/service-account.name', name)
     s.type = 'kubernetes.io/service-account-token'
     k8s = K8sSecret(config=config, name=s.name)
     k8s.model = s
     k8s.create()
     return k8s
コード例 #7
0
 def create_service_account_api_token(config=None, name=None):
     s = Secret()
     s.name = "{}-token-{}".format(name, str(uuid.uuid4().hex[:5]))
     s.add_annotation(Secret.K8s_ANNOTATION_SERVICE_ACCOUNT_NAME, name)
     s.type = Secret.K8s_TYPE_SERVICE_ACCOUNT
     k8s = K8sSecret(config=config, name=s.name)
     k8s.model = s
     k8s.create()
     return k8s
コード例 #8
0
ファイル: K8sSecret.py プロジェクト: riconnon/kubernetes-py
    def create_image_pull_secret(config=None, prefix=None, name=None, data=None):
        s = Secret()

        if name is not None:
            s.name = "{0}-docker-{1}".format(name, str(uuid.uuid4().hex[:5]))
        elif name is None and prefix is not None:
            s.name = "{0}-docker-{1}".format(prefix, str(uuid.uuid4().hex[:5]))
        else:
            s.name = "docker-{0}".format(str(uuid.uuid4().hex[:5]))

        s.dockerconfigjson = data
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s
コード例 #9
0
ファイル: K8sSecret.py プロジェクト: linerio/kubernetes-py
class K8sSecret(K8sObject):

    def __init__(self, config=None, name=None):
        K8sObject.__init__(self, config=config, obj_type='Secret', name=name)
        self.model = Secret(name=name, namespace=self.config.get_namespace())

    def add_annotation(self, k, v):
        assert isinstance(k, str)
        assert isinstance(v, str)
        self.model.add_annotation(k=k, v=v)
        return self

    def add_label(self, k, v):
        assert isinstance(k, str)
        assert isinstance(v, str)
        self.model.add_label(k=k, v=v)
        return self

    def get(self):
        self.model = Secret(model=self.get_model())
        return self

    def set_data(self, data_key, data_value):
        assert isinstance(data_value, str)
        assert isinstance(data_value, str)
        self.model.set_data(data_key=data_key, data_value=data_value)
        return self

    def set_type(self, secret_type):
        assert isinstance(secret_type, str)
        self.model.set_type(secret_type=secret_type)
        return self

    def set_dockercfg_secret(self, data):
        assert isinstance(data, str)
        self.model.set_dockercfg_secret(data=data)
        return self

    def set_dockercfg_json_secret(self, data):
        assert isinstance(data, str)
        self.model.set_dockercfg_json_secret(data=data)
        return self

    def set_service_account_token(self, account_name, account_uid, token,
                                  kubecfg_data=None, cacert=None):
        assert isinstance(account_name, str)
        assert isinstance(account_uid, str)
        assert isinstance(token, str)
        self.model.set_service_account_token(account_name=account_name, account_uid=account_uid,
                                             token=token, kubecfg_data=kubecfg_data, cacert=cacert)
        return self
コード例 #10
0
ファイル: K8sSecret.py プロジェクト: mnubo/kubernetes-py
 def get(self):
     self.model = Secret(name=self.name, model=self.get_model())
     return self
コード例 #11
0
ファイル: K8sSecret.py プロジェクト: froch/kubernetes-py
 def get(self):
     self.model = Secret(self.get_model())
     return self
コード例 #12
0
ファイル: K8sSecret.py プロジェクト: froch/kubernetes-py
class K8sSecret(K8sObject):

    def __init__(self, config=None, name=None):
        super(K8sSecret, self).__init__(
            config=config,
            obj_type='Secret',
            name=name
        )

    # -------------------------------------------------------------------------------------  override

    def get(self):
        self.model = Secret(self.get_model())
        return self

    def create(self):
        super(K8sSecret, self).create()
        self.get()
        return self

    def update(self):
        super(K8sSecret, self).update()
        self.get()
        return self

    def list(self, pattern=None):
        ls = super(K8sSecret, self).list()
        secrets = list(map(lambda x: Secret(x), ls))
        if pattern is not None:
            secrets = list(filter(lambda x: pattern in x.name, secrets))
        k8s = []
        for x in secrets:
            j = K8sSecret(config=self.config, name=x.name)
            j.model = x
            k8s.append(j)
        return k8s

    # -------------------------------------------------------------------------------------  image pull secrets

    @staticmethod
    def create_image_pull_secret(config=None, prefix=None, name=None, data=None):
        s = Secret()

        if name is not None:
            s.name = "{0}-docker-{1}".format(name, str(uuid.uuid4().hex[:5]))
        elif name is None and prefix is not None:
            s.name = "{0}-docker-{1}".format(prefix, str(uuid.uuid4().hex[:5]))
        else:
            s.name = "docker-{0}".format(str(uuid.uuid4().hex[:5]))

        s.dockerconfigjson = data
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s

    @staticmethod
    def list_image_pull_secrets(config=None):
        _list = K8sSecret(config=config, name="yo").list()
        secrets = []
        for x in _list:
            if x.type == Secret.K8s_TYPE_DOCKER_CONFIG:
                secrets.append(x)
        return secrets

    @staticmethod
    def image_pull_secret_with_name(config=None, name=None):
        _secrets = K8sSecret.list_image_pull_secrets(config=config)
        _list = list(filter(lambda x: x.name == name, _secrets))
        if len(_list):
            return _list[0]
        return None

    # -------------------------------------------------------------------------------------  service accounts

    @staticmethod
    def create_service_account_api_token(config=None, name=None):
        s = Secret()
        s.name = "{}-token-{}".format(name, str(uuid.uuid4().hex[:5]))
        s.add_annotation(Secret.K8s_ANNOTATION_SERVICE_ACCOUNT_NAME, name)
        s.type = Secret.K8s_TYPE_SERVICE_ACCOUNT
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s

    @staticmethod
    def api_tokens_for_service_account(config=None, name=None):
        _list = K8sSecret(config=config, name="yo").list()
        _tokens = []
        for x in _list:
            if x.type == Secret.K8s_TYPE_SERVICE_ACCOUNT:
                if x.annotations[Secret.K8s_ANNOTATION_SERVICE_ACCOUNT_NAME] == name:
                    _tokens.append(x)
        return _tokens

    # ------------------------------------------------------------------------------------- data

    @property
    def data(self):
        return self.model.data

    @data.setter
    def data(self, data=None):
        self.model.data = data

    # ------------------------------------------------------------------------------------- type

    @property
    def type(self):
        return self.model.type

    @type.setter
    def type(self, t=None):
        self.model.type = t

    # ------------------------------------------------------------------------------------- dockerconfigjson

    @property
    def dockerconfigjson(self):
        data = None
        if self.model.dockerconfigjson is not None:
            data = json.loads(self.model.dockerconfigjson)
        return data

    @dockerconfigjson.setter
    def dockerconfigjson(self, secret=None):
        self.model.dockerconfigjson = secret

    # ------------------------------------------------------------------------------------- set

    def set_service_account_token(self, account_name=None, account_uid=None, token=None,
                                  kubecfg_data=None, cacert=None):
        self.model.set_service_account_token(
            account_name=account_name,
            account_uid=account_uid,
            token=token,
            kubecfg_data=kubecfg_data,
            cacert=cacert
        )
        return self
コード例 #13
0
 def get(self):
     self.model = Secret(self.get_model())
     return self
コード例 #14
0
class K8sSecret(K8sObject):
    def __init__(self, config=None, name=None):
        super(K8sSecret, self).__init__(config=config,
                                        obj_type='Secret',
                                        name=name)

    # -------------------------------------------------------------------------------------  override

    def get(self):
        self.model = Secret(self.get_model())
        return self

    def create(self):
        super(K8sSecret, self).create()
        self.get()
        return self

    def update(self):
        super(K8sSecret, self).update()
        self.get()
        return self

    def list(self, pattern=None):
        ls = super(K8sSecret, self).list()
        secrets = list(map(lambda x: Secret(x), ls))
        if pattern is not None:
            secrets = list(filter(lambda x: pattern in x.name, secrets))
        k8s = []
        for x in secrets:
            j = K8sSecret(config=self.config, name=x.name)
            j.model = x
            k8s.append(j)
        return k8s

    # -------------------------------------------------------------------------------------  image pull secrets

    @staticmethod
    def create_image_pull_secret(config=None,
                                 prefix=None,
                                 name=None,
                                 data=None):
        s = Secret()

        if name is not None:
            s.name = "{0}-docker-{1}".format(name, str(uuid.uuid4().hex[:5]))
        elif name is None and prefix is not None:
            s.name = "{0}-docker-{1}".format(prefix, str(uuid.uuid4().hex[:5]))
        else:
            s.name = "docker-{0}".format(str(uuid.uuid4().hex[:5]))

        s.dockerconfigjson = data
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s

    @staticmethod
    def list_image_pull_secrets(config=None):
        _list = K8sSecret(config=config, name="yo").list()
        secrets = []
        for x in _list:
            if x.type == Secret.K8s_TYPE_DOCKER_CONFIG:
                secrets.append(x)
        return secrets

    @staticmethod
    def image_pull_secret_with_name(config=None, name=None):
        _secrets = K8sSecret.list_image_pull_secrets(config=config)
        _list = list(filter(lambda x: x.name == name, _secrets))
        if len(_list):
            return _list[0]
        return None

    # -------------------------------------------------------------------------------------  service accounts

    @staticmethod
    def create_service_account_api_token(config=None, name=None):
        s = Secret()
        s.name = "{}-token-{}".format(name, str(uuid.uuid4().hex[:5]))
        s.add_annotation(Secret.K8s_ANNOTATION_SERVICE_ACCOUNT_NAME, name)
        s.type = Secret.K8s_TYPE_SERVICE_ACCOUNT
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s

    @staticmethod
    def api_tokens_for_service_account(config=None, name=None):
        _list = K8sSecret(config=config, name="yo").list()
        _tokens = []
        for x in _list:
            if x.type == Secret.K8s_TYPE_SERVICE_ACCOUNT:
                if x.annotations[
                        Secret.K8s_ANNOTATION_SERVICE_ACCOUNT_NAME] == name:
                    _tokens.append(x)
        return _tokens

    # ------------------------------------------------------------------------------------- data

    @property
    def data(self):
        return self.model.data

    @data.setter
    def data(self, data=None):
        self.model.data = data

    # ------------------------------------------------------------------------------------- type

    @property
    def type(self):
        return self.model.type

    @type.setter
    def type(self, t=None):
        self.model.type = t

    # ------------------------------------------------------------------------------------- dockerconfigjson

    @property
    def dockerconfigjson(self):
        data = None
        if self.model.dockerconfigjson is not None:
            data = json.loads(self.model.dockerconfigjson)
        return data

    @dockerconfigjson.setter
    def dockerconfigjson(self, secret=None):
        self.model.dockerconfigjson = secret

    # ------------------------------------------------------------------------------------- set

    def set_service_account_token(self,
                                  account_name=None,
                                  account_uid=None,
                                  token=None,
                                  kubecfg_data=None,
                                  cacert=None):
        self.model.set_service_account_token(account_name=account_name,
                                             account_uid=account_uid,
                                             token=token,
                                             kubecfg_data=kubecfg_data,
                                             cacert=cacert)
        return self
コード例 #15
0
ファイル: K8sSecret.py プロジェクト: lokikiller/kubernetes-py
class K8sSecret(K8sObject):

    def __init__(self, config=None, name=None):
        K8sObject.__init__(self, config=config, obj_type='Secret', name=name)
        self.model = Secret(name=name, namespace=self.config.namespace)

    # ------------------------------------------------------------------------------------- add

    def add_annotation(self, k=None, v=None):
        self.model.add_annotation(k=k, v=v)
        return self

    def add_label(self, k=None, v=None):
        self.model.add_label(k=k, v=v)
        return self

    # ------------------------------------------------------------------------------------- get

    def get(self):
        self.model = Secret(model=self.get_model())
        return self

    # ------------------------------------------------------------------------------------- set

    def set_data(self, k=None, v=None):
        self.model.set_data(k=k, v=v)
        return self

    def set_type(self, secret_type=None):
        self.model.set_type(secret_type=secret_type)
        return self

    def set_dockercfg_secret(self, data=None):
        self.model.set_dockercfg_secret(data=data)
        return self

    def set_dockercfg_json_secret(self, data=None):
        self.model.set_dockercfg_json_secret(data=data)
        return self

    def set_service_account_token(self, account_name=None, account_uid=None, token=None,
                                  kubecfg_data=None, cacert=None):

        self.model.set_service_account_token(
            account_name=account_name,
            account_uid=account_uid,
            token=token,
            kubecfg_data=kubecfg_data,
            cacert=cacert
        )
        return self
コード例 #16
0
ファイル: K8sSecret.py プロジェクト: mnubo/kubernetes-py
 def __init__(self, config=None, name=None):
     super(K8sSecret, self).__init__(config=config, obj_type='Secret', name=name)
     self.model = Secret(name=name, namespace=self.config.namespace)
コード例 #17
0
ファイル: K8sSecret.py プロジェクト: lokikiller/kubernetes-py
 def __init__(self, config=None, name=None):
     K8sObject.__init__(self, config=config, obj_type='Secret', name=name)
     self.model = Secret(name=name, namespace=self.config.namespace)
コード例 #18
0
class K8sSecret(K8sObject):
    def __init__(self, config=None, name=None):
        super(K8sSecret, self).__init__(config=config,
                                        obj_type='Secret',
                                        name=name)

    # -------------------------------------------------------------------------------------  override

    def get(self):
        self.model = Secret(self.get_model())
        return self

    def create(self):
        super(K8sSecret, self).create()
        self.get()
        return self

    def update(self):
        super(K8sSecret, self).update()
        self.get()
        return self

    # -------------------------------------------------------------------------------------  image pull secrets

    @staticmethod
    def create_image_pull_secret(config=None,
                                 prefix=None,
                                 name=None,
                                 data=None):
        s = Secret()

        if name is not None:
            s.name = name
        elif name is None and prefix is not None:
            s.name = "{0}-docker-{1}".format(prefix,
                                             str(uuid.uuid4().get_hex()[:5]))
        else:
            s.name = "docker-{0}".format(str(uuid.uuid4().get_hex()[:5]))

        s.dockerconfigjson = data
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s

    @staticmethod
    def list_image_pull_secrets(config=None):
        _list = K8sSecret(config=config, name="throwaway").list()
        _secrets = []
        for x in _list:
            s = Secret(x)
            if s.type == 'kubernetes.io/.dockerconfigjson':
                k8s = K8sSecret(config=config, name=s.name)
                k8s.model = s
                _secrets.append(k8s)
        return _secrets

    @staticmethod
    def image_pull_secret_with_name(config=None, name=None):
        _secrets = K8sSecret.list_image_pull_secrets(config=config)
        _list = filter(lambda x: x.name == name, _secrets)
        if len(_list):
            return _list[0]
        return None

    # -------------------------------------------------------------------------------------  service accounts

    @staticmethod
    def create_service_account_api_token(config=None, name=None):
        s = Secret()
        s.name = "{}-secret".format(name)
        s.add_annotation('kubernetes.io/service-account.name', name)
        s.type = 'kubernetes.io/service-account-token'
        k8s = K8sSecret(config=config, name=s.name)
        k8s.model = s
        k8s.create()
        return k8s

    @staticmethod
    def api_tokens_for_service_account(config=None, name=None):
        _list = K8sSecret(config=config, name="throwaway").list()
        _tokens = []
        for x in _list:
            s = Secret(x)
            if s.type == 'kubernetes.io/service-account-token':
                if s.metadata.annotations[
                        'kubernetes.io/service-account.name'] == name:
                    k8s = K8sSecret(config=config, name=s.name)
                    k8s.model = s
                    _tokens.append(k8s)
        return _tokens

    # ------------------------------------------------------------------------------------- data

    @property
    def data(self):
        return self.model.data

    @data.setter
    def data(self, data=None):
        self.model.data = data

    # ------------------------------------------------------------------------------------- type

    @property
    def type(self):
        return self.model.type

    @type.setter
    def type(self, t=None):
        self.model.type = t

    # ------------------------------------------------------------------------------------- dockerconfigjson

    @property
    def dockerconfigjson(self):
        data = None
        if self.model.dockerconfigjson is not None:
            data = json.loads(self.model.dockerconfigjson)
        return data

    @dockerconfigjson.setter
    def dockerconfigjson(self, secret=None):
        self.model.dockerconfigjson = secret

    # ------------------------------------------------------------------------------------- set

    def set_service_account_token(self,
                                  account_name=None,
                                  account_uid=None,
                                  token=None,
                                  kubecfg_data=None,
                                  cacert=None):
        self.model.set_service_account_token(account_name=account_name,
                                             account_uid=account_uid,
                                             token=token,
                                             kubecfg_data=kubecfg_data,
                                             cacert=cacert)
        return self