k8s.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package forms
  2. import (
  3. "net/url"
  4. "strconv"
  5. "github.com/porter-dev/porter/internal/kubernetes"
  6. "github.com/porter-dev/porter/internal/repository"
  7. )
  8. // K8sForm is the generic base type for CRUD operations on k8s objects
  9. type K8sForm struct {
  10. *kubernetes.OutOfClusterConfig
  11. }
  12. // PopulateK8sOptionsFromQueryParams populates fields in the ReleaseForm using the passed
  13. // url.Values (the parsed query params)
  14. func (kf *K8sForm) PopulateK8sOptionsFromQueryParams(
  15. vals url.Values,
  16. repo repository.ClusterRepository,
  17. ) error {
  18. if clusterID, ok := vals["cluster_id"]; ok && len(clusterID) == 1 {
  19. id, err := strconv.ParseUint(clusterID[0], 10, 64)
  20. if err != nil {
  21. return err
  22. }
  23. cluster, err := repo.ReadCluster(uint(id))
  24. if err != nil {
  25. return err
  26. }
  27. kf.Cluster = cluster
  28. }
  29. return nil
  30. }
  31. type ConfigMapForm struct {
  32. Name string `json:"name" form:"required"`
  33. Namespace string `json:"namespace" form:"required"`
  34. EnvVariables map[string]string `json:"variables"`
  35. SecretEnvVariables map[string]string `json:"secret_variables"`
  36. }
  37. type RenameConfigMapForm struct {
  38. Name string `json:"name" form:"required"`
  39. Namespace string `json:"namespace" form:"required"`
  40. NewName string `json:"new_name" form:"required"`
  41. }
  42. type NamespaceForm struct {
  43. Name string `json:"name" form:"required"`
  44. }