mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
Co-authored-by: testa113 <testa113>
28 lines
748 B
Go
28 lines
748 B
Go
package jwt
|
|
|
|
import (
|
|
"time"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
)
|
|
|
|
// GenerateTokenForKubeconfig generates a new JWT token for Kubeconfig
|
|
func (service *Service) GenerateTokenForKubeconfig(data *portainer.TokenData) (string, error) {
|
|
settings, err := service.dataStore.Settings().Settings()
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
expiryDuration, err := time.ParseDuration(settings.KubeconfigExpiry)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
// https://go.dev/play/p/bOrt6cQpA0I time.Time defaults to a zero value which is 0001-01-01 00:00:00 +0000 UTC
|
|
var expiryAt time.Time
|
|
if expiryDuration > time.Duration(0) {
|
|
expiryAt = time.Now().Add(expiryDuration)
|
|
}
|
|
|
|
return service.generateSignedToken(data, expiryAt, kubeConfigScope)
|
|
}
|