def KubernetesConfig(self):
    """Create a kubernetes config file.

    Returns:
      Text of a kubernetes config file.
    """
    if self._settings.cpu:
      if isinstance(self._settings.cpu, six.text_type):
        if not self._settings.cpu.endswith('m'):
          raise ValueError('cpu limit must be defined as an integer or as '
                           'millicpus')
        user_cpu = int(self._settings.cpu[:-1]) / 1000.0
      else:
        user_cpu = self._settings.cpu
      cpu_request = min(0.1, user_cpu)
    else:
      cpu_request = None

    code_generators = [
        local.AppContainerGenerator(
            self._settings.service_name, self._settings.image,
            self._settings.env_vars, self._settings.env_vars_secrets,
            self._settings.memory, self._settings.cpu, cpu_request,
            self._settings.readiness_probe),
        local.SecretsGenerator(self._settings.service_name,
                               self._settings.env_vars_secrets,
                               self._settings.volumes_secrets,
                               self._settings.namespace,
                               self._settings.allow_secret_manager)
    ]

    credential_generator = None
    if isinstance(self._settings.credential, local.ServiceAccountSetting):
      credential_generator = local.CredentialGenerator(
          functools.partial(local.GetServiceAccountSecret,
                            self._settings.credential.name))
      code_generators.append(credential_generator)
    elif isinstance(self._settings.credential,
                    local.ApplicationDefaultCredentialSetting):
      credential_generator = local.CredentialGenerator(local.GetUserCredential)
      code_generators.append(credential_generator)

    if self._settings.cloudsql_instances:
      if not credential_generator:
        raise ValueError('A credential generator must be defined when cloudsql '
                         'instances are defined.')
      cloudsql_proxy = local.CloudSqlProxyGenerator(
          self._settings.cloudsql_instances, credential_generator.GetInfo())
      code_generators.append(cloudsql_proxy)

    return _GenerateKubeConfigs(code_generators)
示例#2
0
    def KubernetesConfig(self):
        """Create a kubernetes config file.

    Returns:
      Text of a kubernetes config file.
    """
        if self._settings.cpu:
            cpu_request = min(0.1, self._settings.cpu)
        else:
            cpu_request = None

        code_generators = [
            local.AppContainerGenerator(self._settings.service_name,
                                        self._settings.image,
                                        self._settings.env_vars,
                                        self._settings.memory,
                                        self._settings.cpu, cpu_request,
                                        self._settings.readiness_probe)
        ]

        credential_generator = None
        if isinstance(self._settings.credential, local.ServiceAccountSetting):
            credential_generator = local.CredentialGenerator(
                functools.partial(local.GetServiceAccountSecret,
                                  self._settings.credential.name))
            code_generators.append(credential_generator)
        elif isinstance(self._settings.credential,
                        local.ApplicationDefaultCredentialSetting):
            credential_generator = local.CredentialGenerator(
                local.GetUserCredential)
            code_generators.append(credential_generator)

        if self._settings.cloudsql_instances:
            if not credential_generator:
                raise ValueError(
                    'A credential generator must be defined when cloudsql '
                    'instances are defined.')
            cloudsql_proxy = local.CloudSqlProxyGenerator(
                self._settings.cloudsql_instances,
                credential_generator.GetInfo())
            code_generators.append(cloudsql_proxy)

        return _GenerateKubeConfigs(code_generators)
示例#3
0
  def KubernetesConfig(self):
    """Create a kubernetes config file.

    Returns:
      Text of a kubernetes config file.
    """
    code_generators = [
        local.AppContainerGenerator(self._settings.service_name,
                                    self._settings.image_name,
                                    self._settings.env_vars)
    ]

    if self._settings.service_account:
      secret_generator = local.SecretGenerator(self._settings.service_account)
      code_generators.append(secret_generator)

    if self._settings.cloudsql_instances:
      cloudsql_proxy = local.CloudSqlProxyGenerator(
          self._settings.cloudsql_instances, secret_generator.GetInfo())
      code_generators.append(cloudsql_proxy)

    return _GenerateKubeConfigs(code_generators)