Stores data on File (local/remote) using stow
$ pharmer config -h
Pharmer configuration
Usage:
pharmer config [flags]
pharmer config [command]
Examples:
pharmer config view
Available Commands:
get-contexts List available contexts
set-context Create config object
view Print Pharmer config
Flags:
-h, --help help for config
Global Flags:
--alsologtostderr log to standard error as well as files
--analytics Send analytical events to Google Guard (default true)
--config-file string Path to Pharmer config file
--env string Environment used to enable debugging (default "prod")
--log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
--log_dir string If non-empty, write log files in this directory
--logtostderr log to standard error instead of files (default true)
--stderrthreshold severity logs at or above this threshold go to stderr (default 2)
-v, --v Level log level for V logs
--vmodule moduleSpec comma-separated list of pattern=N settings for file-filtered logging
Use "pharmer config [command] --help" for more information about a command.
The configuration details of the storage provider are specified on ~/.pharmer/config.d/default file. Default storage provider is local.
context: default
kind: PharmerConfig
store:
local:
path: /home/sanjid/.pharmer/store.d
Here store type is local, so in path a local directory is used to locate where the cluster and credential resources will be stored.
You can also use Amazon’s s3, gcs to use google cloud storage, azure or swift for storage purpose.
You can use following command to crate a storage provider confiuration.
# AWS S3:
pharmer config set-context --provider=s3 --s3.access_key_id=<key_id> --s3.secret_key=<secret_key> --s3.endpoint=<endpoint> --s3.bucket=<bucket_name> --prefix=<prefix>
# GCS:
pharmer config set-context --provider=google --google.json_key_path=<path_sa_file> --google.project_id=<my_project> --google.bucket=<bucket_name> --prefix=<prefix>
# Microsoft Azure ARM Storage:
pharmer config set-context --provider=azure --azure.account=<storage_ac> --azure.key=<key> --azure.container=<container_name> --prefix=<prefix>
# Local Storage:
pharmer config set-context --provider=local --local.path=<local_path>
# Swift:
pharmer config set-context --provider=swift --swift.key=<key> --swift.tenant_auth_url=<tenant_auth_url> --swift.tenant_name=<tenant_name> --swift.username=<username>
--swift.domain=<domain> --swift.region=<region> --swift.tenant_id=<tenant_id> --swift.tenant_domain=<tenant_domain> --swift.storage_url=<storage_url>
--swift.auth_token=<auth_token> --swift.container=<container_name> --prefix=<prefix>
If you using s3, the configuration file contains following field
s3:
endpoint: <aws endpoint>
bucket: <bucket name>
prefix: <storage prefix>
For gcs
context: default
kind: PharmerConfig
credentials:
- metadata:
creationTimestamp: 2018-01-01T09:01:19Z
name: gce
spec:
data:
projectID: <project-id>
serviceAccount: |-
{
"type": "service_account",
"project_id": <project-id>,
"private_key_id": "private key id",
"private_key": "private key",
"client_email": "email",
"client_id": "client id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "url"
}
provider: GoogleCloud
store:
credentialName: gce
gcs:
bucket: pharmer
The directory tree of the local storage provider will be look like:
~/.pharmer/
|--config.d/
| |
| |__ default
|
|__ store.d/
|
|-- clusters/
|
|__ credentials/
Here,
- config.d/default: is the storage configuration file
- store.d/cluster: stores cluster resources. There is a file with <cluster-name>.json, a nodegroup directory which contains
nodegroup files, a pki directory having cluster certificates and an ssh directory which stores public and private ssh key for the cluster.
- store.d/credentials: stores credential resources
You can view the config using
$ pharmer config view
pharmer config view
context: default
kind: PharmerConfig
store:
local:
path: /home/sanjid/.pharmer/store.d
To list all available contexts run:
$ pharmer config get-contexts
NAME Store
default Local