| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # -*- mode: Python -*-
- def secret_yaml_generic(name, namespace="", from_file=None, secret_type=None, from_env_file=None):
- """Returns YAML for a generic secret
- Args:
- name: The secret name.
- namespace: The namespace.
- from_file: Use the from-file secret generator. May be a string or a list of strings.
- Example: ["ssh--privatekey=path/to/id_rsa", "ssh-publickey=path/to/id_rsa.pub"]
- from_env_file: Specify the path to a file to read lines of key=val pairs to create a secret
- (i.e. a Docker .env file)
- secret_type (optional): Specify the type of the secret
- Example: 'kubernetes.io/dockerconfigjson'
- Returns:
- The secret YAML as a blob
- """
- args = [
- "kubectl",
- "create",
- "secret",
- "generic",
- name,
- ]
- if namespace:
- args.extend(["-n", namespace])
- generator = False
- if from_file:
- if type(from_file) == "string":
- args.extend(["--from-file", from_file])
- generator = True
- elif type(from_file) == "list":
- for f in from_file:
- args.extend(["--from-file", f])
- generator = True
- else:
- fail("Bad from_file argument: %s" % from_file)
- if from_env_file:
- if type(from_env_file) != "string":
- fail("from_env_file only accepts strings")
- args.extend(["--from-env-file", from_env_file])
- generator = True
- if not generator:
- fail("No secret generator specified")
- if secret_type:
- if type(secret_type) == "string":
- args.extend(["--type", secret_type])
- else:
- fail("Bad secret_type argument: %s" % secret_type)
- args.extend(["-o=yaml", "--dry-run=client"])
- return local(args)
- def secret_create_generic(name, namespace="", from_file=None, secret_type=None, from_env_file=None):
- """Creates a secret in the current Kubernetes cluster.
- Args:
- name: The secret name.
- namespace: The namespace.
- from_file: Use the from-file secret generator. May be a string or a list of strings.
- Example: ["ssh--privatekey=path/to/id_rsa", "ssh-publickey=path/to/id_rsa.pub"]
- from_env_file: Specify the path to a file to read lines of key=val pairs to create a secret
- (i.e. a Docker .env file)
- secret_type (optional): Specify the type of the secret
- Example: 'kubernetes.io/dockerconfigjson'
- """
- k8s_yaml(secret_yaml_generic(name, namespace, from_file, secret_type, from_env_file))
|