Azure Installation Steps
This post describes how to install Myelin on Azure.
Create namespace:
NAMESPACE=myelin kubectl create ns $NAMESPACE kubectl label namespace $NAMESPACE istio-injection=enabled
Install Helm client: Installation
Install Tiller:
kubectl -n kube-system create sa tiller kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller helm init --service-account tiller
Add Myelin repo to Helm:
helm repo add myelin.io https://myelin-helm-charts.storage.googleapis.com/ helm repo update
Setup authentication:
Create a file
secrets.yaml
with the following content:licence: LICENCE authenticateDocker: enabled: true dockerSecret: auths: myelinregistry.azurecr.io: auth: authbase64= Username: username@gmail.com Password: password Email: username@gmail.com artifacts: accesskey: accesskey secretkey: secretkey authenticateGithub: enabled: true github: sshPrivateKey: SSH_PRIVATE_KEY sshPublicKey: SSH_PUBLIC_KEY
In this file the following fields should be provided:
licence: Get a free licence from here.
dockerRegistryUrl: add the repository url instead of this line, for example use
registry.hub.docker.com
for docker hub.dockerSecret.auths.auth: Auth token. For docker hub it can be generated as follows:
echo -n 'username:password' | base64
dockerSecret.auths.Username: docker repository user name
dockerSecret.auths.Password: docker repository password
dockerSecret.auths.Email: docker repository email
Get or create an Azure Storage account and retrieve the key:az storage account create --resource-group myResourceGroup --name myelinstorage --sku Standard_LRS az storage account keys list --resource-group myResourceGroup --account-name myelinstorage
- artifacts.accesskey: Azure access key
- artifacts.secretkey: Azure secret key
To access Github using SSH add the following:- github.sshPrivateKey: private key
- github.sshPublicKey: public key
Create a config fileAzure-config.yaml
:rook-ceph: agent: flexVolumeDirPath: /etc/kubernetes/volumeplugins minio: enabled: true persistence: enabled: false azuregateway: enabled: true replicas: 1 fullnameOverride: myelin-minio-svc defaultBucket: enabled: true name: myelin-bucket accessKey: myelinstorage secretKey: myelinstorage_key axonController: dockerServer: myelinregistry.azurecr.io dockerNamespace: myelinproj config: artifactRepository: archiveLogs: true s3: bucket: myelin-bucket endpoint: myelin-minio-svc.myelin:9000 insecure: true accessKeySecret: name: myelin-artifacts key: accesskey secretKeySecret: name: myelin-artifacts key: secretkey deployerController: config: artifactRepository: archiveLogs: true s3: bucket: myelin-bucket endpoint: myelin-minio-svc.myelin:9000 insecure: true accessKeySecret: name: myelin-artifacts key: accesskey secretKeySecret: name: myelin-artifacts key: secretkey
The following values should be filled in:
- axonController.dockerServer: repository url, for example use
registry.hub.docker.com
for docker hub. - axonController.dockerNamespace: namespace of the repository, for docker hub it is the same as the user name.
Install the Helm chart:
Install Myelin (add the –devel flag if you would like to install the latest development version)
RELEASE_NAME=myelin-app CONFIG_FILE=Azure-config.yaml SECRETS_FILE=secrets.yaml NAMESPACE=myelin helm install myelin.io/myelin \ --debug \ --devel \ --wait --timeout 600 \ --devel \ --name $RELEASE_NAME \ -f $CONFIG_FILE,$SECRETS_FILE \ --set createCustomResource=true \ --set deployerController.createCustomResource=true \ --namespace=$NAMESPACE
Install the Myelin cli:
MacOS installation:
brew tap myelin/cli https://github.com/myelinio/homebrew-cli.git brew install myelin
Linux installation:
curl -sSL -o /usr/local/bin/myelin https://myelin-cli.storage.googleapis.com/cli-linux/v0.4.0/myelin-linux-amd64 chmod +x /usr/local/bin/myelin # Add bash completion apt-get install bash-completion myelin completion bash > /etc/bash_completion.d/myelin
Test first Axon:
Create Axon:
myelin submit https://raw.githubusercontent.com/myelinio/myelin-examples/master/recommender_rf_demo/recommender-demo.yaml --namespace=$NAMESPACE
Watch Axon execution:
myelin watch axon ml-rec-rf --namespace=$NAMESPACE
Get Axon public REST endpoints:
REST_URL=$(myelin endpoint ml-rec-rf --namespace=$NAMESPACE -o json | jq -r '.[0].modelStable.url') curl -XPOST ${REST_URL}predict --data '{"data":{"ndarray":[5411, 5439]}}'