spk
is a tool that provides automation around defining and operating
Kubernetes clusters with Bedrock
principles.
The three core areas of spk
are:
For more information on the end-to-end experience of using Bedrock principles refer to: Bedrock Developer and Operations Experience
Please refer to the latest SPK release and navigate to the assets section. From there choose from one of the following platform options to download:
- linux
- macos
- windows
Usage: spk [options] [command]
The missing Bedrock CLI
Options:
-v, --verbose Enable verbose logging
-V, --version output the version number
-h, --help output usage information
Commands:
init|i [options] Initialize the spk tool for the first time.
deployment Introspect your deployments
project Initialize and manage your Bedrock project.
service Create and manage services for a Bedrock project.
infra Manage and modify your Bedrock infrastructure.
hld Commands for initalizing and managing a bedrock HLD repository.
variable-group Creates Variable Group in Azure DevOps project.
To utilize spk
as your bedrock project and service management tool, follow the
Managing a bedrock project with spk guide.
Otherwise, generally:
To start using spk
you'll need to:
- Configure
spk
inspk-config.yaml
. Refer to this template to get started. - Run
spk init -f spk-config.yaml
The spk-config.yaml
consists of three main sections:
introspection
infra
azure_devops
To specify private keys or access tokens that should not be stored in raw
text in the spk-config.yaml
file, set the values in environment variables.
For example:
account_name: "someHardcodedValue"
table_name: "anotherNonPrivateKey"
key: "${env:ACCESS_KEY}"
partition_key: "canBeStoredInRawTextKey"
In this case, the value for key
is taken from the environment variable
ACCESS_KEY
.
There are two options to create environment variables:
- In a
.env
file - In your shell
A recommended approach is to have a .env
file in your folder (make sure it's
gitignored!) with all variables and their values.
INTROSPECTION_STORAGE_ACCESS_KEY="access key"
AZURE_TENANT_ID="AAD tenant id"
AZURE_CLIENT_ID="Azure service principal client Id"
AZURE_CLIENT_SECRET="Azure service principal client secret/password"
AZURE_SUBSCRIPTION_ID="Azure subscription id"
To create an environment variable, run the export
command.
The following example creates the ACCESS_KEY
environment variable.
export ACCESS_KEY="33DKHF933JID"
Note: Opening a new shell window erases the previously defined environment
variables. Run the export
command again to create them or use an .env
file
to define them instead.