Tiltfile 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- mode: Python -*-
  2. def secret_yaml_generic(name, namespace="", from_file=None, secret_type=None, from_env_file=None):
  3. """Returns YAML for a generic secret
  4. Args:
  5. name: The secret name.
  6. namespace: The namespace.
  7. from_file: Use the from-file secret generator. May be a string or a list of strings.
  8. Example: ["ssh--privatekey=path/to/id_rsa", "ssh-publickey=path/to/id_rsa.pub"]
  9. from_env_file: Specify the path to a file to read lines of key=val pairs to create a secret
  10. (i.e. a Docker .env file)
  11. secret_type (optional): Specify the type of the secret
  12. Example: 'kubernetes.io/dockerconfigjson'
  13. Returns:
  14. The secret YAML as a blob
  15. """
  16. args = [
  17. "kubectl",
  18. "create",
  19. "secret",
  20. "generic",
  21. name,
  22. ]
  23. if namespace:
  24. args.extend(["-n", namespace])
  25. generator = False
  26. if from_file:
  27. if type(from_file) == "string":
  28. args.extend(["--from-file", from_file])
  29. generator = True
  30. elif type(from_file) == "list":
  31. for f in from_file:
  32. args.extend(["--from-file", f])
  33. generator = True
  34. else:
  35. fail("Bad from_file argument: %s" % from_file)
  36. if from_env_file:
  37. if type(from_env_file) != "string":
  38. fail("from_env_file only accepts strings")
  39. args.extend(["--from-env-file", from_env_file])
  40. generator = True
  41. if not generator:
  42. fail("No secret generator specified")
  43. if secret_type:
  44. if type(secret_type) == "string":
  45. args.extend(["--type", secret_type])
  46. else:
  47. fail("Bad secret_type argument: %s" % secret_type)
  48. args.extend(["-o=yaml", "--dry-run=client"])
  49. return local(args)
  50. def secret_create_generic(name, namespace="", from_file=None, secret_type=None, from_env_file=None):
  51. """Creates a secret in the current Kubernetes cluster.
  52. Args:
  53. name: The secret name.
  54. namespace: The namespace.
  55. from_file: Use the from-file secret generator. May be a string or a list of strings.
  56. Example: ["ssh--privatekey=path/to/id_rsa", "ssh-publickey=path/to/id_rsa.pub"]
  57. from_env_file: Specify the path to a file to read lines of key=val pairs to create a secret
  58. (i.e. a Docker .env file)
  59. secret_type (optional): Specify the type of the secret
  60. Example: 'kubernetes.io/dockerconfigjson'
  61. """
  62. k8s_yaml(secret_yaml_generic(name, namespace, from_file, secret_type, from_env_file))