agent.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. package cluster
  2. import (
  3. "github.com/porter-dev/porter/api/server/shared"
  4. "github.com/porter-dev/porter/internal/kubernetes"
  5. "github.com/porter-dev/porter/internal/models"
  6. )
  7. type KubernetesAgentGetter interface {
  8. GetOutOfClusterConfig(cluster *models.Cluster) *kubernetes.OutOfClusterConfig
  9. GetAgent(cluster *models.Cluster) (*kubernetes.Agent, error)
  10. }
  11. type DefaultKubernetesAgentGetter struct {
  12. config *shared.Config
  13. }
  14. func NewDefaultKubernetesAgentGetter(config *shared.Config) KubernetesAgentGetter {
  15. return &DefaultKubernetesAgentGetter{config}
  16. }
  17. func (d *DefaultKubernetesAgentGetter) GetOutOfClusterConfig(cluster *models.Cluster) *kubernetes.OutOfClusterConfig {
  18. return &kubernetes.OutOfClusterConfig{
  19. Repo: d.config.Repo,
  20. DigitalOceanOAuth: d.config.DOConf,
  21. Cluster: cluster,
  22. }
  23. }
  24. func (d *DefaultKubernetesAgentGetter) GetAgent(cluster *models.Cluster) (*kubernetes.Agent, error) {
  25. ooc := d.GetOutOfClusterConfig(cluster)
  26. return kubernetes.GetAgentOutOfClusterConfig(ooc)
  27. }