Add jitconfig model field
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
parent
6089f17b08
commit
034cc47185
5 changed files with 35 additions and 5 deletions
|
|
@ -17,8 +17,10 @@ package sql
|
|||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
runnerErrors "github.com/cloudbase/garm-provider-common/errors"
|
||||
"github.com/cloudbase/garm-provider-common/util"
|
||||
"github.com/cloudbase/garm/params"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
|
@ -42,6 +44,19 @@ func (s *sqlDatabase) CreateInstance(ctx context.Context, poolID string, param p
|
|||
}
|
||||
}
|
||||
|
||||
var secret []byte
|
||||
if len(param.JitConfiguration) > 0 {
|
||||
jitConfig, err := json.Marshal(param.JitConfiguration)
|
||||
if err != nil {
|
||||
return params.Instance{}, errors.Wrap(err, "marshalling jit config")
|
||||
}
|
||||
|
||||
secret, err = util.Seal(jitConfig, []byte(s.cfg.Passphrase))
|
||||
if err != nil {
|
||||
return params.Instance{}, fmt.Errorf("failed to encrypt jitconfig: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
newInstance := Instance{
|
||||
Pool: pool,
|
||||
Name: param.Name,
|
||||
|
|
@ -52,6 +67,7 @@ func (s *sqlDatabase) CreateInstance(ctx context.Context, poolID string, param p
|
|||
CallbackURL: param.CallbackURL,
|
||||
MetadataURL: param.MetadataURL,
|
||||
GitHubRunnerGroup: param.GitHubRunnerGroup,
|
||||
JitConfiguration: secret,
|
||||
AditionalLabels: labels,
|
||||
}
|
||||
q := s.conn.Create(&newInstance)
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ type Instance struct {
|
|||
ProviderFault []byte `gorm:"type:longblob"`
|
||||
CreateAttempt int
|
||||
TokenFetched bool
|
||||
JitConfiguration []byte `gorm:"type:longblob"`
|
||||
GitHubRunnerGroup string
|
||||
AditionalLabels datatypes.JSON
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,16 @@ func (s *sqlDatabase) sqlToParamsInstance(instance Instance) (params.Instance, e
|
|||
}
|
||||
}
|
||||
|
||||
var jitConfig map[string]string
|
||||
if len(instance.JitConfiguration) > 0 {
|
||||
decrypted, err := util.Unseal(instance.JitConfiguration, []byte(s.cfg.Passphrase))
|
||||
if err != nil {
|
||||
return params.Instance{}, errors.Wrap(err, "decrypting jit config")
|
||||
}
|
||||
if err := json.Unmarshal(decrypted, &jitConfig); err != nil {
|
||||
return params.Instance{}, errors.Wrap(err, "unmarshalling jit config")
|
||||
}
|
||||
}
|
||||
ret := params.Instance{
|
||||
ID: instance.ID.String(),
|
||||
ProviderID: id,
|
||||
|
|
@ -59,6 +69,7 @@ func (s *sqlDatabase) sqlToParamsInstance(instance Instance) (params.Instance, e
|
|||
CreateAttempt: instance.CreateAttempt,
|
||||
UpdatedAt: instance.UpdatedAt,
|
||||
TokenFetched: instance.TokenFetched,
|
||||
JitConfiguration: jitConfig,
|
||||
GitHubRunnerGroup: instance.GitHubRunnerGroup,
|
||||
AditionalLabels: labels,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue