Browse Source

add docs

master
zeus 4 years ago
parent
commit
b41665faeb
  1. BIN
      docs/hybrid-1.png
  2. BIN
      docs/hybrid.png
  3. 103
      docs/swarmlab-hybrid.adoc
  4. 18
      src/components/manageservices/join-service.vue
  5. 17
      src/components/manageservices/manage-service.vue
  6. 17
      src/components/manageservices/view-service.vue
  7. 17
      src/components/mynetwork/availableservices.vue
  8. 17
      src/components/mynetwork/dockerservices.vue

BIN
docs/hybrid-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/hybrid.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

103
docs/swarmlab-hybrid.adoc

@ -0,0 +1,103 @@
= SwarmlabHybrid !
Apostolos rootApostolos@swarmlab.io
// Metadata:
:description: Intro and Install
:keywords: ubuntu install
:data-uri:
:toc: right
:toc-title: Table of contents
:toclevels: 4
:source-highlighter: highlight
:icons: font
:sectnums:
{empty} +
image:./hybrid.png[alt="SwarmlabHybrid"]
== Install
=== Prerequisites Hardware
[NOTE]
.Remember
====
Before you create and configure a hybrid deployment using the swarmlab-agent client, your Local Machines need to meet certain requirements.
If you don't meet those requirements, you won't be able to complete the steps within the swarmlab-agent client
and you won't be able to configure a hybrid deployment between your Local Enviroment and Swarmlab Online Enviroment.
====
* A Linux Server (Virtual or Physical)
** You must have super user privileges (sudo)
* Docker Engine- Community version 18 or later is required.
** Docker Engine is supported on x86_64 (or amd64), armhf, and arm64 architectures.
* RAM
** Absolute minimum to run the daemon and some very light containers - 512MB
** Minimum for “comfortable” usage – 2GB
* CPU
** Minimum: 2; Recommended 4+.
* Disk Space
** 10 GB for internal requirements.
** The amount of additional disk space required for load file staging, persistence, or backups depends on the size of the data to be loaded.
TIP: Docker uses a hypervisor with a VM, and the host server must support virtualization.
=== Prerequisites Keys
* Create an Hybrid Swarmlab Key
** Connect to https://api-client.swarmlab.io:8088/ and click on the Dashboard->Profile Menou
* After creating Keys for your project, you will be informed with an email and it will also become visible in the Swarmlab-agent clients corresponding menu.
=== Download and install
* Download the swarmlab-agent client
** git clone https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git
* Run sudo ./install.sh
** See also ./install directory
== Start/Stop Agent
=== Start Agent
* Navigate to the dir you have installed the agent
** run ./start.sh
=== Stop Agent
* Navigate to the dir you have installed the agent
** run ./stop.sh
=== Login
Connect to https://api-client.swarmlab.io:8088/ and click on "Hybrid->OpenSwarmlab Hybrid" Menou
TIP: This is the way to have a fully functional Swarmlab Cloud. You HAVE to connect this way to be Authorized for the session.
== Config
* Use the "Profile->Settings” menu on swarmlab-agent client to configure a hybrid agent
** add also a zone for your agent
** Connect to https://api-client.swarmlab.io:8088/ and click on the Dashboard->Profile Menou
== Deploy
=== Local
=== Hybrid
== Join
== Connect to Container

18
src/components/manageservices/join-service.vue

@ -210,6 +210,7 @@
detail-row-id="id" detail-row-id="id"
@vuetable:pagination-data="onPaginationData" @vuetable:pagination-data="onPaginationData"
@vuetable:load-success="loadsuccess" @vuetable:load-success="loadsuccess"
@vuetable:load-error="onLoadError"
:css="css.table" :css="css.table"
> >
<div slot="actionslocal" slot-scope="props"> <div slot="actionslocal" slot-scope="props">
@ -675,7 +676,24 @@ export default {
this.fielddata=data this.fielddata=data
var n = data.length var n = data.length
n=n-1 n=n-1
//console.log('data1 '+JSON.stringify(response))
}, },
onLoadError(payload) {
/*
//error2 "invalid_token" join-service.vue:684
//error2 "The access token provided has expired" join-service.vue:685
//error2 "Unauthorized" join-service.vue:686
//error2 401
console.log('error2 '+JSON.stringify(payload.response.data.error))
console.log('error2 '+JSON.stringify(payload.response.data.error_description))
console.log('error2 '+JSON.stringify(payload.response.statusText))
console.log('error2 '+JSON.stringify(payload.response.status))
*/
if(payload.response.status == '401'){
window.location.href = 'https://api-login.swarmlab.io:8089';
Vue.nextTick( () => window.location.href = 'https://api-login.swarmlab.io:8089')
}
}
}, },

17
src/components/manageservices/manage-service.vue

@ -202,6 +202,7 @@
detail-row-id="id" detail-row-id="id"
@vuetable:pagination-data="onPaginationData" @vuetable:pagination-data="onPaginationData"
@vuetable:load-success="loadsuccess" @vuetable:load-success="loadsuccess"
@vuetable:load-error="onLoadError"
:css="css.table" :css="css.table"
> >
<template slot="actions" slot-scope="props"> <template slot="actions" slot-scope="props">
@ -620,6 +621,22 @@ export default {
var n = data.length var n = data.length
n=n-1 n=n-1
}, },
onLoadError(payload) {
/*
//error2 "invalid_token" join-service.vue:684
//error2 "The access token provided has expired" join-service.vue:685
//error2 "Unauthorized" join-service.vue:686
//error2 401
console.log('error2 '+JSON.stringify(payload.response.data.error))
console.log('error2 '+JSON.stringify(payload.response.data.error_description))
console.log('error2 '+JSON.stringify(payload.response.statusText))
console.log('error2 '+JSON.stringify(payload.response.status))
*/
if(payload.response.status == '401'){
window.location.href = 'https://api-login.swarmlab.io:8089';
Vue.nextTick( () => window.location.href = 'https://api-login.swarmlab.io:8089')
}
}
}, },

17
src/components/manageservices/view-service.vue

@ -208,6 +208,7 @@
detail-row-id="id" detail-row-id="id"
@vuetable:pagination-data="onPaginationData" @vuetable:pagination-data="onPaginationData"
@vuetable:load-success="loadsuccess" @vuetable:load-success="loadsuccess"
@vuetable:load-error="onLoadError"
:css="css.table" :css="css.table"
> >
@ -545,6 +546,22 @@ export default {
var n = data.length var n = data.length
n=n-1 n=n-1
}, },
onLoadError(payload) {
/*
//error2 "invalid_token" join-service.vue:684
//error2 "The access token provided has expired" join-service.vue:685
//error2 "Unauthorized" join-service.vue:686
//error2 401
console.log('error2 '+JSON.stringify(payload.response.data.error))
console.log('error2 '+JSON.stringify(payload.response.data.error_description))
console.log('error2 '+JSON.stringify(payload.response.statusText))
console.log('error2 '+JSON.stringify(payload.response.status))
*/
if(payload.response.status == '401'){
window.location.href = 'https://api-login.swarmlab.io:8089';
Vue.nextTick( () => window.location.href = 'https://api-login.swarmlab.io:8089')
}
}
}, },

17
src/components/mynetwork/availableservices.vue

@ -116,6 +116,7 @@
detail-row-id="id" detail-row-id="id"
@vuetable:pagination-data="onPaginationData" @vuetable:pagination-data="onPaginationData"
@vuetable:load-success="loadsuccess" @vuetable:load-success="loadsuccess"
@vuetable:load-error="onLoadError"
:css="css.table" :css="css.table"
> >
@ -572,6 +573,22 @@ export default {
var n = data.length var n = data.length
n=n-1 n=n-1
}, },
onLoadError(payload) {
/*
//error2 "invalid_token" join-service.vue:684
//error2 "The access token provided has expired" join-service.vue:685
//error2 "Unauthorized" join-service.vue:686
//error2 401
console.log('error2 '+JSON.stringify(payload.response.data.error))
console.log('error2 '+JSON.stringify(payload.response.data.error_description))
console.log('error2 '+JSON.stringify(payload.response.statusText))
console.log('error2 '+JSON.stringify(payload.response.status))
*/
if(payload.response.status == '401'){
window.location.href = 'https://api-login.swarmlab.io:8089';
Vue.nextTick( () => window.location.href = 'https://api-login.swarmlab.io:8089')
}
}
}, },

17
src/components/mynetwork/dockerservices.vue

@ -61,6 +61,7 @@
detail-row-id="id" detail-row-id="id"
@vuetable:pagination-data="onPaginationData" @vuetable:pagination-data="onPaginationData"
@vuetable:load-success="loadsuccess" @vuetable:load-success="loadsuccess"
@vuetable:load-error="onLoadError"
:css="css.table" :css="css.table"
> >
@ -343,6 +344,22 @@ export default {
var n = data.length var n = data.length
n=n-1 n=n-1
}, },
onLoadError(payload) {
/*
//error2 "invalid_token" join-service.vue:684
//error2 "The access token provided has expired" join-service.vue:685
//error2 "Unauthorized" join-service.vue:686
//error2 401
console.log('error2 '+JSON.stringify(payload.response.data.error))
console.log('error2 '+JSON.stringify(payload.response.data.error_description))
console.log('error2 '+JSON.stringify(payload.response.statusText))
console.log('error2 '+JSON.stringify(payload.response.status))
*/
if(payload.response.status == '401'){
window.location.href = 'https://api-login.swarmlab.io:8089';
Vue.nextTick( () => window.location.href = 'https://api-login.swarmlab.io:8089')
}
}
}, },

Loading…
Cancel
Save