Class: OpenAI::Auth::SubjectTokenProviders::K8sServiceAccountTokenProvider

Inherits:
Object
  • Object
show all
Includes:
OpenAI::Auth::SubjectTokenProvider
Defined in:
lib/openai/auth/subject_token_providers/k8s_service_account_token_provider.rb

Constant Summary collapse

DEFAULT_TOKEN_PATH =
"/var/run/secrets/kubernetes.io/serviceaccount/token"

Instance Method Summary collapse

Constructor Details

#initialize(token_path: self.class::DEFAULT_TOKEN_PATH) ⇒ K8sServiceAccountTokenProvider

Returns a new instance of K8sServiceAccountTokenProvider.



11
12
13
# File 'lib/openai/auth/subject_token_providers/k8s_service_account_token_provider.rb', line 11

def initialize(token_path: self.class::DEFAULT_TOKEN_PATH)
  @token_path = token_path
end

Instance Method Details

#get_tokenObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/openai/auth/subject_token_providers/k8s_service_account_token_provider.rb', line 19

def get_token
  File.read(@token_path).strip
rescue SystemCallError => e
  raise OpenAI::Errors::SubjectTokenProviderError.new(
    message: "Failed to read Kubernetes service account token from #{@token_path}: #{e.message}",
    provider: "kubernetes",
    cause: e
  )
rescue StandardError => e
  raise OpenAI::Errors::SubjectTokenProviderError.new(
    message: "Unexpected error reading Kubernetes token: #{e.message}",
    provider: "kubernetes",
    cause: e
  )
end

#token_typeObject



15
16
17
# File 'lib/openai/auth/subject_token_providers/k8s_service_account_token_provider.rb', line 15

def token_type
  TokenType::JWT
end