├── HEAD
├── .idea
├── .gitignore
├── misc.xml
├── vcs.xml
├── inspectionProfiles
│ └── profiles_settings.xml
├── modules.xml
└── panos-docs.iml
├── site
├── assets
│ ├── javascripts
│ │ └── lunr
│ │ │ └── min
│ │ │ ├── lunr.jp.min.js
│ │ │ ├── lunr.vi.min.js
│ │ │ ├── lunr.multi.min.js
│ │ │ ├── lunr.th.min.js
│ │ │ ├── lunr.zh.min.js
│ │ │ ├── lunr.ja.min.js
│ │ │ ├── lunr.hi.min.js
│ │ │ ├── lunr.stemmer.support.min.js
│ │ │ └── lunr.sv.min.js
│ ├── images
│ │ └── favicon.png
│ └── stylesheets
│ │ └── palette.e6a45f82.min.css.map
└── sitemap.xml.gz
├── config
├── description
├── hooks
├── post-update.sample
├── pre-merge-commit.sample
├── pre-applypatch.sample
├── applypatch-msg.sample
├── pre-receive.sample
├── commit-msg.sample
├── pre-push.sample
├── prepare-commit-msg.sample
├── pre-commit.sample
├── fsmonitor-watchman.sample
└── update.sample
├── info
└── exclude
└── docs
├── user
├── dashboard
│ ├── users.md
│ └── README.md
├── README.md
├── login.md
├── projects
│ ├── kubernetes.md
│ └── README.md
└── my-profile.md
├── partner
├── dashboard
│ ├── select-organization.md
│ ├── users.md
│ └── README.md
├── project-quotas.md
├── standalone-vms.md
├── servers.md
├── taikun-requests.md
├── audit-log.md
├── showback-summary.md
├── slack-configuration.md
├── chargeback.md
├── usage-reports.md
├── flavor-info.md
├── README.md
├── billing-credentials.md
├── standalone-profiles.md
├── showback-credentials.md
├── organizations.md
├── access-profiles.md
├── login.md
├── kubernetes-profiles.md
├── projects
│ ├── creating-a-new-project.md
│ ├── kubernetes.md
│ └── project-details-vms.md
├── images.md
├── showback-rules.md
├── backup-credentials.md
├── policy-profiles.md
├── billing-rules.md
├── alerting-profiles.md
├── users.md
├── ticketing.md
└── cloud-credentials.md
├── manager
├── dashboard
│ ├── users.md
│ ├── README.md
│ └── tables.md
├── project-quotas.md
├── standalone-vms.md
├── taikun-requests.md
├── servers.md
├── showback-summary.md
├── audit-log.md
├── chargeback.md
├── README.md
├── slack-configuration.md
├── usage-reports.md
├── flavor-info.md
├── showback-credentials.md
├── standalone-profiles.md
├── access-profiles.md
├── access-profiles.md.save
├── login.md
├── kubernetes-profiles.md
├── projects
│ ├── creating-a-new-project.md
│ ├── kubernetes.md
│ └── project-details-vms.md
├── showback-rules.md
├── images.md
├── users.md
├── backup-credentials.md
├── policy-profiles.md
├── alerting-profiles.md
├── ticketing.md
└── cloud-credentials.md
├── stylesheets
└── extra.css
├── index.md
├── guidelines
├── change-mail-password.md
├── taikun-cli.md
├── login.md
└── creating-profiles.md
└── tech-book
└── loadbalancers.md
/HEAD:
--------------------------------------------------------------------------------
1 | ref: refs/heads/master
2 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.jp.min.js:
--------------------------------------------------------------------------------
1 | module.exports=require("./lunr.ja");
--------------------------------------------------------------------------------
/config:
--------------------------------------------------------------------------------
1 | [core]
2 | repositoryformatversion = 0
3 | filemode = true
4 | bare = true
5 |
--------------------------------------------------------------------------------
/description:
--------------------------------------------------------------------------------
1 | Unnamed repository; edit this file 'description' to name the repository.
2 |
--------------------------------------------------------------------------------
/site/sitemap.xml.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itera-io/taikun-documentation/HEAD/site/sitemap.xml.gz
--------------------------------------------------------------------------------
/site/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/itera-io/taikun-documentation/HEAD/site/assets/images/favicon.png
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/hooks/post-update.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to prepare a packed repository for use over
4 | # dumb transports.
5 | #
6 | # To enable this hook, rename this file to "post-update".
7 |
8 | exec git update-server-info
9 |
--------------------------------------------------------------------------------
/info/exclude:
--------------------------------------------------------------------------------
1 | # git ls-files --others --exclude-from=.git/info/exclude
2 | # Lines that start with '#' are comments.
3 | # For a project mostly in C, the following would be a good set of
4 | # exclude patterns (uncomment them if you want to use them):
5 | # *.[oa]
6 | # *~
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/panos-docs.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/docs/user/dashboard/users.md:
--------------------------------------------------------------------------------
1 | # **Users**
2 |
3 | Shows how many **Users** are involved in your organization.
4 |
5 | 
6 |
7 |
8 | To find the information about your profile visit [**My Profile**](../my-profile.md).
9 |
--------------------------------------------------------------------------------
/docs/partner/dashboard/select-organization.md:
--------------------------------------------------------------------------------
1 | # **Select Organization**
2 |
3 | Choose Organization with drop-down button and the Dashboard will be updated (can take up to tens of seconds).
4 |
5 |
6 | 
7 | Figure.1: Organization selection
8 |
9 |
--------------------------------------------------------------------------------
/docs/partner/dashboard/users.md:
--------------------------------------------------------------------------------
1 | # **Users**
2 |
3 | Shows how many **Users** are involved in selected organization. Number of users changes automatically with selecting different organizations.
4 |
5 | 
6 |
7 | For more information, see [**Users**](../users).
8 |
9 | To find the information about your profile visit [**My Profile**](../../my-profile).
10 |
--------------------------------------------------------------------------------
/docs/manager/dashboard/users.md:
--------------------------------------------------------------------------------
1 | # **Users**
2 |
3 | Shows how many **Users** are involved in your organization.
4 |
5 |
6 | 
7 | Figure.1: Users
8 |
9 |
10 | For more information, see [**Users**](../../users/).
11 |
12 | To find the information about your profile visit [**My Profile**](../../my-profile).
13 |
--------------------------------------------------------------------------------
/hooks/pre-merge-commit.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to verify what is about to be committed.
4 | # Called by "git merge" with no arguments. The hook should
5 | # exit with non-zero status after issuing an appropriate message to
6 | # stderr if it wants to stop the merge commit.
7 | #
8 | # To enable this hook, rename this file to "pre-merge-commit".
9 |
10 | . git-sh-setup
11 | test -x "$GIT_DIR/hooks/pre-commit" &&
12 | exec "$GIT_DIR/hooks/pre-commit"
13 | :
14 |
--------------------------------------------------------------------------------
/hooks/pre-applypatch.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to verify what is about to be committed
4 | # by applypatch from an e-mail message.
5 | #
6 | # The hook should exit with non-zero status after issuing an
7 | # appropriate message if it wants to stop the commit.
8 | #
9 | # To enable this hook, rename this file to "pre-applypatch".
10 |
11 | . git-sh-setup
12 | precommit="$(git rev-parse --git-path hooks/pre-commit)"
13 | test -x "$precommit" && exec "$precommit" ${1+"$@"}
14 | :
15 |
--------------------------------------------------------------------------------
/hooks/applypatch-msg.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to check the commit log message taken by
4 | # applypatch from an e-mail message.
5 | #
6 | # The hook should exit with non-zero status after issuing an
7 | # appropriate message if it wants to stop the commit. The hook is
8 | # allowed to edit the commit message file.
9 | #
10 | # To enable this hook, rename this file to "applypatch-msg".
11 |
12 | . git-sh-setup
13 | commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
14 | test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
15 | :
16 |
--------------------------------------------------------------------------------
/docs/user/README.md:
--------------------------------------------------------------------------------
1 | # **Brief Introduction**
2 |
3 | ## :fontawesome-solid-user: **User**
4 |
5 | With user role you don't have that much privileges and option like *manager* or* partner* role, but you can create clusters and manage them, see the overview of projects, servers or cloud credentials for your organization, manage your account and more.
6 |
7 | In this guideline you can see how to login, use the dashboard or create a cluster.
8 |
9 | Visit [**Login**](login/), [**Dashboard**](dashboard/), [**Projects**](projects/) or [**My Profile**](my-profile/) to see more.
10 |
--------------------------------------------------------------------------------
/docs/stylesheets/extra.css:
--------------------------------------------------------------------------------
1 | img.a {
2 | vertical-align: baseline;
3 | }
4 |
5 | img.b {
6 | vertical-align: text-top;
7 | }
8 |
9 | img.c {
10 | vertical-align: text-bottom;
11 | }
12 |
13 | img.d {
14 | vertical-align: sub;
15 | }
16 |
17 | img.e {
18 | vertical-align: super;
19 | }
20 | .center {
21 | display: block;
22 | margin: 0 auto;
23 | }
24 | .middle {
25 | vertical-align: middle;
26 | display: inline;
27 | margin: 0 auto;
28 | }
29 | .center {
30 | display: block;
31 | margin-left: auto;
32 | margin-right: auto;
33 | }
34 |
35 | .md-content__button {
36 | display: none;
37 | }
--------------------------------------------------------------------------------
/hooks/pre-receive.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to make use of push options.
4 | # The example simply echoes all push options that start with 'echoback='
5 | # and rejects all pushes when the "reject" push option is used.
6 | #
7 | # To enable this hook, rename this file to "pre-receive".
8 |
9 | if test -n "$GIT_PUSH_OPTION_COUNT"
10 | then
11 | i=0
12 | while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
13 | do
14 | eval "value=\$GIT_PUSH_OPTION_$i"
15 | case "$value" in
16 | echoback=*)
17 | echo "echo from the pre-receive-hook: ${value#*=}" >&2
18 | ;;
19 | reject)
20 | exit 1
21 | esac
22 | i=$((i + 1))
23 | done
24 | fi
25 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.vi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.multi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p
6 | 
7 | Figure.1: Project quotas
8 |
9 |
10 | ## **Edit resources**
11 |
12 | Change the usage limits to your Projects. You can edit the limits for *CPU/Disk Size/RAM* for each project with pencil button :pencil2: .
13 |
14 |
15 | 
16 | Figure.2: Edit quotas
17 |
18 |
19 | ???+ info
20 | To enter values, *Unlimited* has to be unchecked.
21 |
22 | Keep in mind that the quotas are for the whole project, not for server.
23 |
--------------------------------------------------------------------------------
/hooks/commit-msg.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to check the commit log message.
4 | # Called by "git commit" with one argument, the name of the file
5 | # that has the commit message. The hook should exit with non-zero
6 | # status after issuing an appropriate message if it wants to stop the
7 | # commit. The hook is allowed to edit the commit message file.
8 | #
9 | # To enable this hook, rename this file to "commit-msg".
10 |
11 | # Uncomment the below to add a Signed-off-by line to the message.
12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg
13 | # hook is more suited to it.
14 | #
15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17 |
18 | # This example catches duplicate Signed-off-by lines.
19 |
20 | test "" = "$(grep '^Signed-off-by: ' "$1" |
21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22 | echo >&2 Duplicate Signed-off-by lines.
23 | exit 1
24 | }
25 |
--------------------------------------------------------------------------------
/docs/partner/project-quotas.md:
--------------------------------------------------------------------------------
1 |
2 | # **Project Quotas**
3 |
4 | To filter projects use *Select Organization* drop-down field.
5 |
6 | See *CPU*, *Disk Size* and *RAM* usage limits for every Project.
7 |
8 |
9 | 
10 | Figure.1: Project Quotas
11 |
12 |
13 | Change the usage limits to your **Projects**. You can edit the limits for *CPU/Disk Size/RAM* for each project with pencil button :pencil2:.
14 |
15 |
16 | 
17 | Figure.2: Edit Quotas
18 |
19 |
20 |
21 | ???+ info
22 | To enter values, _Unlimited_ has to be unchecked.
23 |
24 | Keep in mind that the quotas are for the whole project, not for server.
25 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.th.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
--------------------------------------------------------------------------------
/docs/manager/standalone-vms.md:
--------------------------------------------------------------------------------
1 | # **Standalone VMs**
2 |
3 | **Sorting and Accessing Virtual Machine**
4 |
5 | You can find specific server with adjusting the *CPU*, *RAM* and *Volume Size* bars. Or the VMs can be sorted by *Name*, *Flavor ID*, *Volume Type*, *Project Name* or *Status* (Ready, Updating, Deleting, Failure). The search bar can help you find the specific server, too.
6 |
7 | To access server details, click *Name* or *Project Name*.
8 |
9 |
10 | 
11 | Figure.1: VM Servers
12 |
13 |
14 | **Show hidden columns**
15 |
16 |
17 | 
18 | Figure.2: Show hidden columns
19 |
20 |
21 | Extend columns to see more:
22 |
23 | * Image Name
24 | * IP Address
25 | * Public IP
26 | * Revision
27 | * Created By
28 | * Created At
29 | * Last Modified
30 |
31 | For more information see [**Projects**](../projects/project-details-vms/).
32 |
--------------------------------------------------------------------------------
/docs/partner/standalone-vms.md:
--------------------------------------------------------------------------------
1 | # **Standalone VMs**
2 |
3 | Select organization for a better overview of servers.
4 |
5 | **Sorting and Accessing Virtual Machine**
6 |
7 | You can find specific server with adjusting the CPU, RAM and Volume Size bars. Or the VMs can be sorted by Name, Flavor ID, Volume Type, Project Name or Status (Ready, Updating, Deleting, Failure). The search bar can help you find the specific server, too.
8 |
9 | To access server details, click Name or Project Name.
10 |
11 |
12 | 
13 | Figure.1: Servers
14 |
15 |
16 |
17 | **Show hidden columns**
18 |
19 |
20 | 
21 | Figure.2: Show hidden columns
22 |
23 |
24 |
25 |
26 | Extend columns to see more:
27 |
28 | * Image Name
29 | * IP Address
30 | * Public IP
31 | * Revision
32 | * Created By
33 | * Created At
34 | * Last Modified
35 |
36 |
37 | For more information see [**Projects**](../projects/project-details-vms/).
38 |
--------------------------------------------------------------------------------
/docs/manager/taikun-requests.md:
--------------------------------------------------------------------------------
1 | # **Taikun Requests**
2 |
3 | On this tab you can see all request made for Taikun. In the table you can see *Organization Name*, *User Name*, *User role*, *Request Type*, *End Point*, *Ip*, *Status*, *Created* *At* and *Message*.
4 |
5 |
6 | 
7 | Figure.1: Taikun requests
8 |
9 |
10 | Request Type:
11 |
12 | * failed
13 | * post
14 | * put
15 | * delete
16 | * get
17 |
18 | Status:
19 |
20 | * 200 - ok
21 | * 400 - bad request
22 | * 403 - forbidden
23 | * 404 - not found
24 | * 500 - server error
25 |
26 | **Filter**
27 |
28 | Messages can be filtered by *Request Type* and/or by date.
29 |
30 |
31 | 
32 | Figure.2: Filtering
33 |
34 |
35 | ## **Export requests**
36 |
37 | The data displayed on the page are exported to .csv file, used filters are already applied.
38 |
39 | ## **Send requests to e-mail**
40 |
41 | Use the button to send selected data to your mail provided in [**My profile**](../my-profile).
42 |
--------------------------------------------------------------------------------
/docs/manager/servers.md:
--------------------------------------------------------------------------------
1 | # **Servers**
2 |
3 | ## **Sorting and Accessing Server**
4 |
5 | You can find specific server with adjusting the *CPU*, *RAM* and *Disk* *Size* bars. Or the servers can be sorted by *Project Name*, *Server Name*, *Organization Name*, *Role* (Bastion, Kubemaster, Kubeworker), *Status* (Ready, Updating, Failure), *Kubernetes Health* or *Creation Time*. The search bar can help you find the specific server, too.
6 |
7 | To access server details, click *Project Name.*
8 |
9 |
10 | 
11 | Figure.1: Servers
12 |
13 |
14 | Clicking *Organization Name* you will be redirected to [**Dashboard**](../dashboard), clicking the *Project Name* you will be redirected to [**Project's details**](../projects/project-details-k8s/).
15 |
16 | ## **Show hidden columns**
17 |
18 |
19 | 
20 | Figure.2: Show hidden columns
21 |
22 |
23 | Extend columns to see more:
24 |
25 | * IP Address
26 | * Flavor
27 | * Created By
28 | * Last Modified
29 | * Last Modified By
30 |
31 | For more information see [**Projects**](../projects).
32 |
--------------------------------------------------------------------------------
/docs/partner/servers.md:
--------------------------------------------------------------------------------
1 | # **Servers**
2 |
3 | *Select organization* for a better overview of servers.
4 |
5 | ## **Sorting and Accessing Server**
6 |
7 | You can find specific server with adjusting the *CPU*, *RAM* and *Disk Size* bars. Or the servers can be sorted by *Project Name*, *Server Name*, *Organization Name*, *Role* (Bastion, Kubemaster, Kubeworker), *Status*, *Kubernetes Health* or *Creation Time*. The search bar can help you find the specific server, too.
8 |
9 | To access server details, click *Project Name*.
10 |
11 |
12 | 
13 | Figure.1: Servers
14 |
15 |
16 | Clicking *Organization Name* you will be redirected to **Dashboard**, clicking the *Project Name* you will be redirected to **Project's details**.
17 |
18 | ## **Show hidden columns**
19 |
20 |
21 | 
22 | Figure.2: Show hidden columns
23 |
24 |
25 | Extend columns to see more:
26 |
27 | * IP Address
28 | * Flavor
29 | * Created By
30 | * Last Modified
31 | * Last Modified By
32 |
33 | For more information see [**Projects**](../projects).
34 |
--------------------------------------------------------------------------------
/docs/partner/taikun-requests.md:
--------------------------------------------------------------------------------
1 |
2 | # **Taikun Requests**
3 |
4 | *Select organization* for a better overview of Requests.
5 |
6 | On this tab you can see all request made for Taikun. In the table you can see *Organization Name*, *User Name*, *User role*, *Request Type*, *End Point*, *Ip*, *Status*, *Created At* and *Message*.
7 |
8 |
9 | 
10 | Figure.1: Taikun Requests
11 |
12 |
13 | Request Type:
14 |
15 | * failed
16 | * post
17 | * put
18 | * delete
19 | * get
20 |
21 | Status:
22 |
23 | * 200 - ok
24 | * 400 - bad request
25 | * 403 - forbidden
26 | * 404 - not found
27 | * 500 - server error
28 |
29 | **Filter**
30 |
31 | Messages can be filtered by *Organization*, *Request Type* and/or by date.
32 |
33 |
34 | 
35 | Figure.2: Filtering
36 |
37 |
38 | ## **Export requests**
39 |
40 | The data displayed on the page are exported to .csv file, used filters are already applied.
41 |
42 |
43 | ## **Send requests to e-mail**
44 |
45 | Use the button to send selected data to your mail provided in [**My profile**](../my-profile).
46 |
--------------------------------------------------------------------------------
/docs/guidelines/change-mail-password.md:
--------------------------------------------------------------------------------
1 | # **Change e-mail address or password**
2 | [:fontawesome-solid-user:](../../user/login) **User**
3 | [:fontawesome-solid-user-tie:](../../manager/login/) **Manager**
4 | [:fontawesome-regular-handshake:](../../partner/login/) **Partner**
5 |
6 | ## **Change E-mail**
7 |
8 | ???+ warning
9 | You can change e-mail only if your mail is verified (confirmed).
10 |
11 | If you want to change your mail for login or e-mail notifications, use *Change E-mail* button and insert new e-mail address. Your new mail address is now working for your login and keep in mind it is not confirmed.
12 |
13 |
14 | 
15 | Figure.1: Change e-mail
16 |
17 |
18 | ## **Change password**
19 |
20 | Use *Change Password* button and create new password.
21 |
22 | ???+ warning
23 | After clicking *Update* button you will be logged out and you must login with new password.
24 |
25 |
26 | 
27 | Figure.2: Change password
28 |
29 |
30 | For more info, see:
31 |
32 | * [**User**](../../user/login/)
33 | * [**Manager**](../../manager/login/)
34 | * [**Partnr**](../../partner/login/)
35 |
--------------------------------------------------------------------------------
/docs/partner/audit-log.md:
--------------------------------------------------------------------------------
1 | # **Audit Log**
2 |
3 | You get real-time notification via [**Bell**](../dashboard/tables#recent-events) :bell: but you can also preview all the changes made in **Audit Log**.
4 |
5 | See who (*User Name*) made a change (*Category*, *Message*), where (*Project*) and what time (*When*). Choose *Start date* and *End date*, *Hours* and *Minutes* for filtering if needed.
6 |
7 |
8 | 
9 | Figure.1: Audit Log
10 |
11 |
12 | Clicking *Project Name* you get redirected to the project, where the change was made.
13 |
14 | **Filters**
15 |
16 |
17 | 
18 | Figure.2: Filters
19 |
20 |
21 | Events also can be filtered by:
22 |
23 | * Organization
24 | * Project
25 | * User (with user role only)
26 | * Action
27 | * Added
28 | * Backup
29 | * Backup policy
30 | * Created
31 | * Deleted
32 | * Failed
33 | * Kubernetes
34 | * Purged
35 | * Rebooted
36 | * Option
37 | * Available
38 | * Deleted
39 |
40 | ### Download{: .middle}
41 |
42 | You can download the report from Audit log with filters applied.
43 |
--------------------------------------------------------------------------------
/docs/manager/showback-summary.md:
--------------------------------------------------------------------------------
1 | # **Showback Summary**
2 |
3 | Showback Summary includes overview of [**Showback Rules**](../showback-rules) with price. Rules calculate the price from time the rule is added but the page is updated at the beginning of every hour. Is you want to stop the price, you have to delete the rule (cannot be paused).
4 |
5 | Table contains *ID*, *Name* and *Price*. Bold *Name* is rule and its *Price* is sum of all projects with this rule bound.
6 |
7 |
8 | 
9 | Figure.1: Showback summary
10 |
11 |
12 | ## **Export**
13 |
14 | The data displayed on the page are exported to .csv file - with name of your organization and time period (if selected).
15 |
16 |
17 | ## **Send To E-mail**
18 |
19 | Use the button to send selected data to your mail (provided in [**My Profile**](../my-profile)).
20 |
21 |
22 | ## **Charts**
23 |
24 | Data is also plotted in doughnut and line charts. You can switch between them with toggle switch.
25 |
26 |
27 | 
28 | Figure.2: Charts
29 |
30 |
31 | Line chart can be filtered by *Available* or *Deleted*, Monthly and Yearly graphs are plotted only if there is enough data.
32 |
--------------------------------------------------------------------------------
/docs/manager/audit-log.md:
--------------------------------------------------------------------------------
1 | # **Audit Log**
2 |
3 | You get real-time notification via [**Bell**](../dashboard/tables/#recent-events):bell:but you can also preview all the changes made in **Audit Log**.
4 |
5 | See who (*User Name*) made a change (*Category*, *Message*), where (*Project*) and what time (*When*). Choose *Start date* and *End date*, *Hours* and *Minutes* for filtering if needed.
6 |
7 |
8 | 
9 | Figure.1: Audit log
10 |
11 |
12 | Clicking *Project Name* you get redirected to the project, where the change was made (if not deleted).
13 |
14 | ### **Filters**
15 |
16 |
17 | 
18 | Figure.2: Filters
19 |
20 |
21 | Events also can be filtered by:
22 |
23 | * Project
24 | * User
25 | * Filter By
26 | * Added
27 | * Backup
28 | * Backup policy
29 | * Created
30 | * Deleted
31 | * Failed
32 | * Kubernetes
33 | * Purged
34 | * Rebooted
35 | * Availability
36 | * Available
37 | * Deleted
38 |
39 | ## **Download** {: .middle}
40 |
41 | You can download the report from Audit log with filters applied.
42 |
--------------------------------------------------------------------------------
/docs/manager/chargeback.md:
--------------------------------------------------------------------------------
1 | # **Chargeback**
2 |
3 | The **Chargeback** tab is the overview of prices for every billing rule. Change *Start date* and *End date* to adjust the measured time period (for example from the beginning to the end of the month).
4 |
5 | In the table there are presented:
6 |
7 | * Rule Name
8 | * Price
9 | * Start Date
10 | * End Date
11 |
12 |
13 | 
14 | Figure.1: Chargeback
15 |
16 |
17 | For a better overview the table can be sorted by *Rule Name* or *Price*.
18 |
19 | ### **Export Chargeback data**
20 |
21 | The data displayed on the page are exported to .csv file - with name of your organization and time period (if selected).
22 |
23 | ### **Send Chargeback Data To E-mail**
24 |
25 | Use the button to send selected data to your mail (provided in [**My Profile**](../my-profile).
26 |
27 | ## **Price Development**
28 |
29 | Graph for **Price Development** shows decrease and increase of prices for every rule. You can change the timeline - *Daily*, *Monthly* and *Yearly*.
30 |
31 |
32 | 
33 | Figure.2: Price development
34 |
35 |
36 | ???+ warning
37 | *Monthly* and *Yearly* graphs are plotted if there is enough data.
38 |
--------------------------------------------------------------------------------
/docs/manager/README.md:
--------------------------------------------------------------------------------
1 | # **Brief Introduction**
2 | ## :fontawesome-solid-user-tie: **Manager**
3 |
4 | Manager role has all privileges and option as user and more. Add cloud or backup credentials, create a project with cluster and access it with access profile, create new users etc.
5 |
6 |
7 | Use this guide chronologically or visit specific page clicking the links below.
8 |
9 | Visit [**Login**](login/) when using Taikun for the first time.
10 |
11 | Below *User* tab you switch between [**Dashboard**](dashboard/) and [**Projects**](projects/) by clicking each.
12 |
13 | Under *Manager* you find [**Flavor Info**](flavor-info/), [**Images**](images/), [**Audit Log**](audit-log/), [**Users**](users/), [**Project Quotas**](project-quotas/), [**Servers**](servers/), [**Taikun Requests**](taikun-requests/), [**Showback Rules**](showback-rules/), [**Showback Summary**](showback-summary/), [**Ticketing**](ticketing/) and [**Standalone VMs**](standalone-vms/).
14 |
15 | Billing is consisted of [**Chargeback**](chargeback/) and [**Usage Reports**](usage-reports/).
16 |
17 | Next - *Credentials*: there are [**Cloud Credentials**](cloud-credentials/), [**Backup Credentials**](backup-credentials/) and [**Showback Credentials**](showback-credentials/).
18 |
19 | In *Profiles* you can visit [**Kubernetes Profiles**](kubernetes-profiles/), [**Access Profiles**](access-profiles/), [**Alerting Profiles**](alerting-profiles/) [**Policy Profiles**](policy-profiles/) and [**Standalone Profiles**](policy-profiles/).
20 |
21 | In the last section *Configurations*, see [**Slack**](slack-configuration/).
22 |
--------------------------------------------------------------------------------
/hooks/pre-push.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # An example hook script to verify what is about to be pushed. Called by "git
4 | # push" after it has checked the remote status, but before anything has been
5 | # pushed. If this script exits with a non-zero status nothing will be pushed.
6 | #
7 | # This hook is called with the following parameters:
8 | #
9 | # $1 -- Name of the remote to which the push is being done
10 | # $2 -- URL to which the push is being done
11 | #
12 | # If pushing without using a named remote those arguments will be equal.
13 | #
14 | # Information about the commits which are being pushed is supplied as lines to
15 | # the standard input in the form:
16 | #
17 | #
18 | #
19 | # This sample shows how to prevent push of commits where the log message starts
20 | # with "WIP" (work in progress).
21 |
22 | remote="$1"
23 | url="$2"
24 |
25 | z40=0000000000000000000000000000000000000000
26 |
27 | while read local_ref local_sha remote_ref remote_sha
28 | do
29 | if [ "$local_sha" = $z40 ]
30 | then
31 | # Handle delete
32 | :
33 | else
34 | if [ "$remote_sha" = $z40 ]
35 | then
36 | # New branch, examine all commits
37 | range="$local_sha"
38 | else
39 | # Update to existing branch, examine new commits
40 | range="$remote_sha..$local_sha"
41 | fi
42 |
43 | # Check for WIP commit
44 | commit=`git rev-list -n 1 --grep '^WIP' "$range"`
45 | if [ -n "$commit" ]
46 | then
47 | echo >&2 "Found WIP commit in $local_ref, not pushing"
48 | exit 1
49 | fi
50 | fi
51 | done
52 |
53 | exit 0
54 |
--------------------------------------------------------------------------------
/docs/manager/slack-configuration.md:
--------------------------------------------------------------------------------
1 | # **Slack Configurations**
2 |
3 | You can receive all the changes made from your Taikun organization into Slack channel you choose.
4 |
5 |
6 | 
7 | Figure.1: Slack configuration
8 |
9 |
10 | ## **Add Slack Config**
11 |
12 | First you need to set your [**webhooks**](https://slack.com/intl/en-cz/help/articles/115005265063-Incoming-webhooks-for-Slack) for Slack and create channel in Slack, where you want to receive notifications.
13 |
14 |
15 | 
16 | Figure.2: Add slack config
17 |
18 |
19 | *Name* - choose name for your config
20 |
21 | *URL* - insert ***webhook*** URL from Slack app
22 |
23 | *Channel* - Slack channel for notifications
24 |
25 | *Type* - Alert (receive only alert-type of notification) or General (receive all notifications)
26 |
27 |
28 | **Successful installation**
29 |
30 | Now you will receive notifications in Slack channel for the projects.
31 |
32 |
33 | 
34 | Figure.3: Slack
35 |
36 |
37 | ???+ info
38 | The project name in message has link, which will redirect you right to Taikun to the project.
39 |
--------------------------------------------------------------------------------
/docs/partner/showback-summary.md:
--------------------------------------------------------------------------------
1 |
2 | # **Showback Summary**
3 |
4 | *Select organization* for a better overview of Access Profiles.
5 |
6 | Showback Summary includes overview of [**Showback Rules**](../showback-rules) with price. Rules calculate the price from time the rule is added but the page is updated at the beginning of every hour. Is you want to stop the price, you have to delete the rule (cannot be paused).
7 |
8 | Table contains *ID*, *Name* and *Price*.Bold *Name* is rule and its *Price* is sum of all projects with this rule bound.
9 |
10 |
11 | 
12 | Figure.1: Showback Summary
13 |
14 |
15 | ## **Export**
16 |
17 | The data displayed on the page are exported to .csv file - with name of your organization and time period (if selected).
18 |
19 |
20 | ## **Send To Email**
21 |
22 | Use the button to send selected data to your mail (provided in [**My Profile**](../my-profile)).
23 |
24 | ## **Charts**
25 |
26 | Data is also plotted in doughnut and line charts. You can switch between them with toggle switch.
27 |
28 |
29 | 
30 | Figure.2: Charts
31 |
32 |
33 |
34 | Line chart can be filtered by *Available* or *Deleted*, Monthly and Yearly graphs are plotted only if there is enough data.
35 |
--------------------------------------------------------------------------------
/docs/manager/usage-reports.md:
--------------------------------------------------------------------------------
1 | # **Usage Reports**
2 |
3 | For every *Project* you can see its *TCU* for time period limited by *Start Date* and *End Date*.
4 |
5 | Sort data by *Project* or *TCU* and filter them by choosing available or deleted projects.
6 |
7 | ## **TCU**
8 |
9 | * Taikun Compute Unit
10 | * total CPUs and GB of RAM used in Project (TCU = CPU + RAM (in GB))
11 |
12 |
13 | 
14 | Figure.1: Usage reports
15 |
16 |
17 | As you can see, the *Total TCU* changes immediately.
18 |
19 | Clicking the project will redirects you to project's info (naturally works only for available projects).
20 |
21 | **Export Reports**
22 |
23 | The data displayed on the page are exported to .csv file - with name of your organization and time period (if selected).
24 |
25 | **Send Reports to E-mail**
26 |
27 | Use the button to send selected data to your mail (provided in [**My Profile**](../my-profile)).
28 |
29 | ## **Price Development**
30 |
31 | Graph for **Price Development** shows decrease and increase of prices for every project. You can change the timeline - *Daily*, *Monthly* and *Yearly*.
32 |
33 |
34 | 
35 | Figure.2: Price develoopment
36 |
37 |
38 | ???+ info
39 | *Monthly* and *Yearly* graphs are plotted if there is enough data.
40 |
--------------------------------------------------------------------------------
/hooks/prepare-commit-msg.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to prepare the commit log message.
4 | # Called by "git commit" with the name of the file that has the
5 | # commit message, followed by the description of the commit
6 | # message's source. The hook's purpose is to edit the commit
7 | # message file. If the hook fails with a non-zero status,
8 | # the commit is aborted.
9 | #
10 | # To enable this hook, rename this file to "prepare-commit-msg".
11 |
12 | # This hook includes three examples. The first one removes the
13 | # "# Please enter the commit message..." help message.
14 | #
15 | # The second includes the output of "git diff --name-status -r"
16 | # into the message, just before the "git status" output. It is
17 | # commented because it doesn't cope with --amend or with squashed
18 | # commits.
19 | #
20 | # The third example adds a Signed-off-by line to the message, that can
21 | # still be edited. This is rarely a good idea.
22 |
23 | COMMIT_MSG_FILE=$1
24 | COMMIT_SOURCE=$2
25 | SHA1=$3
26 |
27 | /usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
28 |
29 | # case "$COMMIT_SOURCE,$SHA1" in
30 | # ,|template,)
31 | # /usr/bin/perl -i.bak -pe '
32 | # print "\n" . `git diff --cached --name-status -r`
33 | # if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
34 | # *) ;;
35 | # esac
36 |
37 | # SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
38 | # git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
39 | # if test -z "$COMMIT_SOURCE"
40 | # then
41 | # /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
42 | # fi
43 |
--------------------------------------------------------------------------------
/docs/partner/slack-configuration.md:
--------------------------------------------------------------------------------
1 |
2 | # **Slack Configurations**
3 |
4 | You can receive all the changes made from your Taikun organization into Slack channel you choose.
5 |
6 |
7 | 
8 | Figure.1: Slack configuration
9 |
10 |
11 | ### Add Slack Config
12 |
13 | First you need to set your [**webhooks**](https://slack.com/intl/en-cz/help/articles/115005265063-Incoming-webhooks-for-Slack) for Slack and create channel in Slack, where you want to receive notifications.
14 |
15 |
16 | 
17 | Figure.2: Add Slack Config
18 |
19 |
20 | *Organization* - choose organization to which you want to add slack
21 |
22 | *Name* - choose name for your config
23 |
24 | *URL* - insert **webhook** URL from Slack app
25 |
26 | *Channel* - Slack channel for notifications
27 |
28 | *Type* - Alert (receive only alert-type of notification) or General (receive all notifications)
29 |
30 | **Successful installation**
31 |
32 | Now you will receive notifications in Slack channel for the projects.
33 |
34 |
35 | 
36 | Figure.3: Slack
37 |
38 |
39 | ???+ info
40 | The project name in message has link, which will redirect you right to Taikun to the project.
41 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.zh.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
--------------------------------------------------------------------------------
/docs/partner/chargeback.md:
--------------------------------------------------------------------------------
1 |
2 | # **Chargeback**
3 |
4 | *Select organization* for a better overview of Rules.
5 |
6 | The **Chargeback** tab is the overview of prices for every billing rule. The [**Billing rules**](../billing-rules) calculate the price from the moment they were assigned to the organization. Here you can set a real billing period. Change the *Start date* and *End date*, you can adjust the measured time period (for example from the beginning to the end of the month).
7 |
8 | In the table there are presented:
9 |
10 | * Rule Name
11 | * Price
12 | * Start Date
13 | * End Date
14 |
15 |
16 |
17 | 
18 | Figure.1: Chargeback
19 |
20 |
21 |
22 | For a better overview the table can be sorted by *Rule Name* or *Price*.
23 |
24 | ### **Export Chargeback data**
25 |
26 | The data displayed on the page are exported to .csv file - with name of your organization and time period (if selected).
27 |
28 | ### **Send Chargeback Data To Email**
29 |
30 | Use the button to send selected data to your mail (provided in [**My Profile**](../my-profile)).
31 |
32 | ## **Price Development**
33 |
34 | Graph for **Price Development** shows decrease and increase of prices for every rule. You can change the timeline - *Daily*, *Monthly* and *Yearly*.
35 |
36 |
37 | 
38 | Figure.2: Price development
39 |
40 |
41 | ???+ warning
42 | *Monthly* and *Yearly* graphs are plotted if there is enough data.
43 |
--------------------------------------------------------------------------------
/docs/partner/usage-reports.md:
--------------------------------------------------------------------------------
1 |
2 | # **Usage Reports**
3 |
4 | *Select organization* for a better overview of Projects.
5 |
6 | For every *Project* you can see its *TCU* for time period limited by *Start Date* and *End Date*.
7 |
8 | Sort data by *Project* or *TCU* and filter them by choosing available or deleted projects.
9 |
10 |
11 | **TCU**
12 |
13 | * Taikun Compute Unit
14 | * total CPUs and GB of RAM used in Project (TCU = CPU + RAM (in GB))
15 |
16 |
17 |
18 | 
19 | Figure.1: Usage Reports
20 |
21 |
22 |
23 | As you can see, the *Total TCU* changes immediately.
24 |
25 | Clicking the project will redirects you to project's info (naturally works only for available projects).
26 |
27 |
28 | ## **Export Reports**
29 |
30 | The data displayed on the page are exported to .csv file - with name of your organization and time period (if selected).
31 |
32 |
33 | ## **Send Reports to E-mail**
34 |
35 | Use the button to send selected data to your mail (provided in [**My Profile**](../my-profile)).
36 |
37 |
38 | ## **Price Development**
39 |
40 | Graph for **Price Development** shows decrease and increase of prices for every project. You can change the timeline - *Daily*, *Monthly* and *Yearly*.
41 |
42 |
43 |
44 | 
45 | Figure.2: Price Development
46 |
47 |
48 |
49 | ???+ warning
50 | *Monthly* and *Yearly* graphs are plotted if there is enough data.
51 |
--------------------------------------------------------------------------------
/docs/manager/flavor-info.md:
--------------------------------------------------------------------------------
1 | # **Flavor Info**
2 |
3 | Sort flavors by size of CPU and RAM or use search bar.
4 |
5 | ???+ warning
6 | To use a flavor for Server in Project, you have to assign the flavor to the project first. You can do so during [project creation](../projects/creating-a-new-project) or in *Flavor Info* tab.
7 |
8 | ## **Bind To Project**
9 |
10 | Choose the *Cloud Type* and *Credentials* where your project is stored. After selecting flavor's you can bind it/them to the project.
11 |
12 |
13 | 
14 | Figure.1: Bind to project
15 |
16 |
17 | An error message is displayed, if the flavor is already bound to the project.
18 |
19 | 
20 |
21 | ## **Flavor Project Bounds/Unbind Flavor**
22 |
23 | To overview all Flavors used in Projects usebutton. Flavors for each *Cloud* (Amazon, Azure, OpenStack) can be sorted by *Name*, *Project Name*, *CPU* and *RAM*.
24 |
25 | To unbind a flavor from a specific project, choose a Cloud, select the project-flavor bound and use{: .middle} button.
26 |
27 |
28 | 
29 | Figure.2: Unbind flavor
30 |
31 |
32 |
--------------------------------------------------------------------------------
/hooks/pre-commit.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to verify what is about to be committed.
4 | # Called by "git commit" with no arguments. The hook should
5 | # exit with non-zero status after issuing an appropriate message if
6 | # it wants to stop the commit.
7 | #
8 | # To enable this hook, rename this file to "pre-commit".
9 |
10 | if git rev-parse --verify HEAD >/dev/null 2>&1
11 | then
12 | against=HEAD
13 | else
14 | # Initial commit: diff against an empty tree object
15 | against=$(git hash-object -t tree /dev/null)
16 | fi
17 |
18 | # If you want to allow non-ASCII filenames set this variable to true.
19 | allownonascii=$(git config --bool hooks.allownonascii)
20 |
21 | # Redirect output to stderr.
22 | exec 1>&2
23 |
24 | # Cross platform projects tend to avoid non-ASCII filenames; prevent
25 | # them from being added to the repository. We exploit the fact that the
26 | # printable range starts at the space character and ends with tilde.
27 | if [ "$allownonascii" != "true" ] &&
28 | # Note that the use of brackets around a tr range is ok here, (it's
29 | # even required, for portability to Solaris 10's /usr/bin/tr), since
30 | # the square bracket bytes happen to fall in the designated range.
31 | test $(git diff --cached --name-only --diff-filter=A -z $against |
32 | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
33 | then
34 | cat <<\EOF
35 | Error: Attempt to add a non-ASCII file name.
36 |
37 | This can cause problems if you want to work with people on other platforms.
38 |
39 | To be portable it is advisable to rename the file.
40 |
41 | If you know what you are doing you can disable this check using:
42 |
43 | git config hooks.allownonascii true
44 | EOF
45 | exit 1
46 | fi
47 |
48 | # If there are whitespace errors, print the offending file names and fail.
49 | exec git diff-index --check --cached $against --
50 |
--------------------------------------------------------------------------------
/docs/partner/flavor-info.md:
--------------------------------------------------------------------------------
1 | # **Flavor Info**
2 |
3 | Sort flavors by size of CPU and RAM or use search bar.
4 |
5 | ???+ warning
6 | To use a flavor for Server in Project, you have to assign the flavor to the project first. You can do so during [project creation](../projects/creating-a-new-project) or in Flavor Info tab.
7 |
8 | ## **Bind To Project**
9 |
10 | Choose *Organization*, *Cloud Type* and *Credentials* where your project is stored. After selecting flavor's you can bind it/them to the project.
11 |
12 |
13 | 
14 | Figure.1: Bind a Flavor to a Project
15 |
16 |
17 | An error message is displayed, if the flavor is already bound to the project.
18 |
19 | 
20 |
21 | ## **Flavor Project Bounds/Unbind Flavor**
22 |
23 | To overview all Flavors used in Projects use {: .middle} button. Flavors for each *Cloud* (Amazon, Azure, OpenStack) can be sorted by *Name*, *Project Name*, *CPU* and *RAM*.
24 |
25 | To unbind a flavor from a specific project, choose a Cloud, select the project-flavor bound and use{: .middle} button.
26 |
27 |
28 | 
29 | Figure.2: Unbind Flavor
30 |
31 |
--------------------------------------------------------------------------------
/docs/manager/showback-credentials.md:
--------------------------------------------------------------------------------
1 | # **Showback Credentials**
2 |
3 | If you want to use external source for your [**Showback rules**](../showback-rules), add Showback Credentials you then will want to use.
4 |
5 | See table of added Showback credentials.
6 |
7 |
8 | 
9 | Figure.1: Overview of showback credentials
10 |
11 |
12 | Table consist of *ID*, *Name*, *Organization*, *URL*, bound *Rules*, date and time *Created* and *Actions*.
13 |
14 | **Actions**
15 |
16 | {: .middle}/{: .middle} Un/lock credentials - if you lock the credentials, you can't use them for new rule or delete them
17 |
18 | {: .middle} Delete credentials - if no longer needed
19 |
20 | ## **Add New Credentials**
21 |
22 | With *Add Credentials* you can create a new showback credentials.
23 |
24 |
25 | 
26 | Figure.2: Add showback credentials
27 |
28 |
29 | *Name* - choose name for your Showback Credentials (3-30 characters)
30 |
31 | *URL* - add URL of the source
32 |
33 | *Username* and *Password* - use your *Prometheus* or other credentials
34 |
35 | ???+ info
36 | After you successfully added the credentials, you can see them in overview.
37 |
--------------------------------------------------------------------------------
/docs/partner/README.md:
--------------------------------------------------------------------------------
1 | # **Brief Introduction**
2 |
3 | ## :fontawesome-solid-user-tie: **Partner**
4 |
5 | Partner role has has the greatest privileges, options and access. Partner can have a several organizations under his control,
6 | which he has access to and takes care of - which is the main difference between partner and manager role. Partner can do everything as manager,
7 | also for different organizations and more - e.g. add organization or add billing rules to specific billing credentials.
8 |
9 | Use this guide chronologically or visit specific page clicking the links below.
10 |
11 | Below *User* tab you switch between [**Dashboard**](dashboard/) and [**Projects**](projects/) by clicking each.
12 |
13 | Under *Manager* you find [**Flavor Info**](flavor-info/), [**Images**](images/), [**Audit Log**](audit-log/), [**Users**](users/), [**Project Quotas**](project-quotas/), [**Servers**](servers/), [**Taikun Requests**](taikun-requests/), [**Showback rules**](showback-rules/), [**Showback summary**](showback-summary/), [**Ticketing**](ticketing/) and [**Standalone VMs**](standalone-vms/).
14 |
15 | Billing is consisted of [**Chargeback**](chargeback/) and [**Usage Reports**](usage-reports/).
16 |
17 | The next section, *Credentials*, there are [**Cloud Credentials**](cloud-credentials/), [**Backup Credentials**](backup-credentials/), [**Billing Credentials**](billing-credentials/) and [**Showback Credentials**](showback-credentials/).
18 |
19 | *In Profiles* you can visit [**Kubernetes Profiles**](kubernetes-profiles/), [**Access Profile**](access-profiles/), [**Alerting Profiles**](alerting-profiles/), [**Policy Profiles**](policy-profiles/) and [**Standalone Profiles**](standalone-profiles/).
20 |
21 | *Partner* has two sections: [**Organizations**](organizations/) and [**Billing Rules**](billing-rules/).
22 |
23 | In the last section *Configurations*, see [**Slack**](slack-configuration/).
24 |
--------------------------------------------------------------------------------
/docs/partner/billing-credentials.md:
--------------------------------------------------------------------------------
1 |
2 | # **Billing Credentials**
3 |
4 | *Select organization* for a better overview of Billing Credentials.
5 |
6 | In this tab you can find all sources from Prometheus for the Billing. Use *Select Organization* to sort the credentials.
7 |
8 |
9 | 
10 | Figure.1: Billing Credentials
11 |
12 |
13 |
14 | By expanding the table, you can display *Prometheus Password* and the last modification (*Last Modified* and *Last Modified By*).
15 |
16 | #### Actions
17 |
18 | {: .middle} Delete - you can delete only empty credentials
19 |
20 | Make default - choose credentials which will be then filled during project creation, lighter color indicates selected credentials
21 |
22 |
23 | #### Add New Credentials
24 |
25 | To create a new credentials, use{: .middle} button. You can add credentials only for your organization.
26 |
27 |
28 | 
29 | Fig 2: Add Credentials
30 |
31 |
32 |
33 | *Organization* - choose which organization you want to set the billing
34 |
35 | *Name* - choose name for your billing credentials (3-30 characters)
36 |
37 | *Username* and *Password* - use your Prometheus credentials
38 |
39 | *Url* - insert URL where is the source
40 |
--------------------------------------------------------------------------------
/docs/manager/standalone-profiles.md:
--------------------------------------------------------------------------------
1 | # **Standalone Profiles**
2 |
3 | ???+ warning
4 | You **cannot** add a new *VM* without any *standalone profile*, please create a new one first.
5 |
6 | See all profiles created for your organization. Each profile is described by its *ID*, *Name*, *Public Key*, *Security Group* (redirects to another page) and to which VM *the profile is associated*.
7 |
8 |
9 | 
10 | Figure.1: Standalone Profiles
11 |
12 |
13 | **Actions**
14 |
15 | {: .middle}/{: .middle} Un/lock profile - if you lock your profile, you can't use it for VM, edit or delete it
16 |
17 | {: .middle} Update profile - edit *Name*
18 |
19 | {: .middle} Delete - delete non-used and unlocked profiles
20 |
21 |
22 | ## **Add Standalone Profile**
23 |
24 | Create a new profile to access your virtual machine.
25 |
26 |
27 | 
28 | Figure.2: Add Standalone Profiles
29 |
30 |
31 |
32 | *Name* - choose name for your profile
33 |
34 | *Public Key* - insert your SSH public key to access the *VM**
35 |
36 | *Security Groups* - optional, protocols **ICMP**, **TCP** and **UDP** are supported
37 |
38 | ???+ warning
39 | Once the *profile* is created *SSH key* **cannot** be edited.
40 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.ja.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n
9 | 
10 | Figure.1: Access profiles
11 |
12 |
13 | You can extend the table to see the last modification (*Last Modified* and *Last Modified By*).
14 |
15 | **Actions**
16 |
17 | {: .middle} Edit Http Proxy - update access profile
18 |
19 | {: .middle} Delete access profile, you cannot delete default profile
20 |
21 | ## **Add Access Profile**
22 |
23 | Create a new profile to access a specific project.
24 |
25 |
26 | 
27 | Figure.2: Add Access profile
28 |
29 |
30 | *Name* - choose name for a new profile, 3-30 characters
31 |
32 | *Http Proxy* - enter http proxy
33 |
34 | *SSH Users* - fill user (3-30 characters) and it's public SSH key
35 |
36 | * type of key must be RSA, ECDSA or Ed25519
37 |
38 | *DNS* - for access you can also use DNS
39 |
40 | ???+ warning
41 | DNS will be ignored, if you choose import network in new [*Cloud Credentials*](../../guidelines/add-cloud-credentials).
42 |
43 | *NTP* - or use NTP for accessing
44 |
45 | If you want to change any of these parameters, you can do it with *Show* button and update the fields.
46 |
--------------------------------------------------------------------------------
/docs/manager/access-profiles.md.save:
--------------------------------------------------------------------------------
1 | # **Access Profiles**
2 |
3 | ???+ warning
4 | When using ssh to connect to the servers, please **DO NOT** use user **ubuntu**. It is already in use by Taikun for the management of the cluster.
5 |
6 | Without internet access and to keep your security, you can download the packages, docker images, etc. using a proxy server.
7 |
8 |
9 | 
10 | Figure.1: Access profiles
11 |
12 |
13 | You can extend the table to see the last modification (*Last Modified* and *Last Modified By*).
14 |
15 | **Actions**
16 |
17 | {: .middle} Edit Http Proxy - update access profile
18 |
19 | {: .middle} Delete access profile, you cannot delete default profile
20 |
21 | ## **Add Access Profile**
22 |
23 | Create a new profile to access a specific project.
24 |
25 |
26 |
27 | 
28 | Figure.2: Add Access profile
29 |
30 |
31 | *Name* - choose name for a new profile, 3-30 characters
32 |
33 | *Http Proxy* - enter http proxy
34 |
35 | *SSH Users* - fill user (3-30 characters) and it's public SSH key
36 |
37 | * type of key must be RSA, ECDSA or Ed25519
38 |
39 | *DNS* - for access you can also use DNS
40 |
41 | ???+ warning
42 | DNS will be ignored, if you choose import network in new [*Cloud Credentials*](../../guidelines/add-cloud-credentials).
43 |
44 | *NTP* - or use NTP for accessing
45 |
46 | If you want to change any of these parameters, you can do it with *Show* button and update the fields.
47 |
--------------------------------------------------------------------------------
/docs/partner/standalone-profiles.md:
--------------------------------------------------------------------------------
1 | # **Standalone Profiles**
2 |
3 | Select organization for a better overview of Standalone Profiles.
4 |
5 | ???+ warning
6 | You cannot add a new VM without any standalone profile, please create a new one first.
7 |
8 | See all profiles created for your organization. Each profile is described by its ID, Name, Public Key, Security Group (redirects to another page) and to which VM the profile is associated.
9 |
10 |
11 | 
12 | Figure.1: Standalone Profiles
13 |
14 |
15 |
16 | **Actions**
17 |
18 |
19 | {: .middle}/{: .middle} Un/lock profile - if you lock your profile, you can't use it for VM, edit or delete it
20 |
21 | {: .middle} Delete - delete non-used and unlocked profiles
22 |
23 | {: .middle} Update profile - update policy profile
24 |
25 |
26 | ## **Add Standalone Profile**
27 |
28 | Create a new profile to access your virtual machine.
29 |
30 |
31 | 
32 | Figure.2: Add Standalone Profiles
33 |
34 |
35 | *Name* - choose name for your profile
36 |
37 | *Public Key* - insert your SSH public key to access the **VM**
38 |
39 | *Security Groups* - optional, protocols **ICMP**, **TCP** and **UDP** are supported
40 |
41 | ???+ warning
42 | Once the profile is created SSH key cannot be edited.
43 |
--------------------------------------------------------------------------------
/docs/guidelines/taikun-cli.md:
--------------------------------------------------------------------------------
1 | ## **Taikun Cli Go**
2 |
3 | [:fontawesome-solid-user:](../../user/projects/project-details-k8s/) **User**
4 | [:fontawesome-solid-user-tie:](../../manager/projects/project-details-k8s/) **Manager**
5 | [:fontawesome-regular-handshake:](../../partner/projects/project-details-k8s/) **Partner**
6 |
7 | Manage resources in Taikun from the command line.
8 |
9 | Getting started
10 | Downloading the binary
11 | To download the CLI, head to the [latest release page](https://github.com/itera-io/taikun-cli/releases/latest)
12 |
13 | Scroll down to the Assets section and select the binary for your architecture.
14 |
15 | Signing in to Taikun
16 | The Taikun CLI reads environment variables to authenticate to Taikun.
17 |
18 | To authenticate with your Taikun account, set the following environment variables:
19 |
20 | ```
21 | TAIKUN_EMAIL
22 | TAIKUN_PASSWORD
23 | ```
24 |
25 | To authenticate with Keycloak, set the following environment variables:
26 |
27 | ```
28 | TAIKUN_KEYCLOAK_EMAIL
29 | TAIKUN_KEYCLOAK_PASSWORD
30 | ```
31 |
32 | The default API host is api.taikun.cloud. To override it, set the following environment variable:
33 |
34 | ```
35 | TAIKUN_API_HOST (default value is: api.taikun.cloud)
36 | ```
37 |
38 | Run the following command to check whether you are properly authenticated.
39 |
40 | taikun whoami
41 | Setting up autocompletion
42 | Autocompletion is available for the following shells.
43 |
44 | ```
45 | Bash
46 | Zsh
47 | Fish
48 | PowerShell
49 | ```
50 |
51 | The command taikun completion generates an autocompletion script for the specified shell. For instructions on how to use the generated script, see the help command of the corresponding shell.
52 |
53 | For example, taikun completion bash -h provides instructions on how to set up autocompletion for the Bash shell.
54 |
55 | Command overview
56 | To have an overview of all the commands available, see the [generated command tree](https://github.com/itera-io/taikun-cli/blob/dev/COMMAND_TREE.md)
57 |
58 | Help
59 | To get information on how to use a command, type taikun [command] --help or taikun [command] -h for short.
60 |
--------------------------------------------------------------------------------
/docs/partner/showback-credentials.md:
--------------------------------------------------------------------------------
1 |
2 | # **Showback Credentials**
3 |
4 | If you want to use external source for your [**Showback rules**](../showback-rules), add Showback Credentials you then will want to use.
5 |
6 | *Select organization* for a better overview of Rules.
7 |
8 | See table of added Showback credentials.
9 |
10 |
11 | 
12 | Figure.1: Kubernetes profiles
13 |
14 |
15 | Table consist of *ID*, *Name*, *Organization*, *URL*, bound *Rules*, date and time *Created* and *Actions*.
16 |
17 |
18 | **Actions**
19 |
20 | {: .middle} Lock the credentials - then credentials cannot be used in Showback rules and cannot be deleted
21 |
22 | {: .middle} Unlock credentials - then credentials are unlocked and you can use them again
23 |
24 | {: .middle} Delete credentials - if no longer needed
25 |
26 |
27 | ## **Add New Credentials**
28 |
29 | With *Add Credential* you can create a new showback credentials.
30 |
31 |
32 | 
33 | Figure.2: Add Kubernetes Profile
34 |
35 |
36 |
37 | *Organization* - choose organization from drop-down selection
38 |
39 | *Name* - choose name for your Showback Credentials (3-30 characters)
40 |
41 | *URL* - add URL of the source
42 |
43 | *Username* and *Password* - use your *Prometheus* or other credentials
44 |
45 | ???+ info
46 | After you successfully added the credentials, you can see them in overview.
47 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.hi.min.js:
--------------------------------------------------------------------------------
1 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
--------------------------------------------------------------------------------
/docs/guidelines/login.md:
--------------------------------------------------------------------------------
1 | # **Login**
2 | [:fontawesome-solid-user:](../../user/login) **User**
3 | [:fontawesome-solid-user-tie:](../../manager/login/) **Manager**
4 | [:fontawesome-regular-handshake:](../../partner/login/) **Partner**
5 |
6 | ## **Reset Password**
7 |
8 | After you receive the token in your mail, it will redirected you to the new page to create a new password.
9 | ???+ warning
10 | Remember: Password should contain at least 1 uppercase, 1 lowercase, 1 number, 1 non alphanumeric and minimum length is 6 signs.
11 |
12 |
13 | After you fill in your mail and new password, you will see login page to Taikun.
14 |
15 |
16 | 
17 | Figure.1: Reset password
18 |
19 |
20 | ## **Login**
21 |
22 | When you visit Taikun page you are redirected to *login_ page*. When you fill in the correct credentials and click login, you will see the Dashboard.
23 |
24 |
25 | 
26 | Figure.2: Login
27 |
28 |
29 | ## **Forgotten Password**
30 |
31 | If you insert wrong password, you are alerted with *Bad credentials* error message. Use *Forgot your password?* button which will redirects you to another page where you fill in e-mail.
32 |
33 |
34 | 
35 | Figure.3: Forgotten password
36 |
37 |
38 | You will receive Token to your mail, which will redirect you to new page, where you can reset your password.
39 |
40 |
41 | 
42 | Figure.4: Forgotten password token
43 |
44 |
--------------------------------------------------------------------------------
/docs/partner/organizations.md:
--------------------------------------------------------------------------------
1 | # **Organizations**
2 |
3 | Organize your structure with organizations - which can be then connected with users, projects, etc. The organizations will also help you for a better overview at each site (by drop-down selector).
4 |
5 |
6 | 
7 | Figure.1: Organizations
8 |
9 |
10 | Show hidden columns will expose *Billing E-mail*, *Phone*, *VAT Number*, *Country*, *City*, *Address*, *Read Only* and *Discount Rate*.
11 |
12 | #### Actions
13 |
14 | {: .middle} Edit Assigned Rule
15 |
16 | Add new rules in [Billing rules](../billing-rules) and then you can assign it to organization with *Edit Assigned Rule* option.
17 |
18 | :pencil2: Edit Organization
19 |
20 | Update organization info.
21 |
22 | {: .middle} Delete Organization
23 |
24 | You can delete only unlocked empty organization (no Users, Projects, Servers or Cloud credential).
25 |
26 | ### Add Organization
27 |
28 | Fill in *Name* and *Full Name* for your new organization and add it.
29 |
30 |
31 | 
32 | Figure.2: Add Organization
33 |
34 |
35 | Compulsory fields:
36 |
37 | *Name* and *Full Name* - is chosen by you (alphanumeric, 3-30 characters; dot, dash and underscore are allowed)
38 |
39 | *Discount Rate* - is in percents and values can be between 0 - 1000, where 100 is default value. If you set the value to 70, it means 30% discount, value 130 means 30% charge. This is only for external billing.
40 |
41 | All these can be changed after adding a new organization when editing it.
42 |
--------------------------------------------------------------------------------
/docs/partner/access-profiles.md:
--------------------------------------------------------------------------------
1 | # **Access Profiles**
2 |
3 | *Select organization* for a better overview of Access Profiles.
4 |
5 | ???+ info
6 | When using ssh to connect to the servers, please **DO NOT** use user **ubuntu**. It is already in use by Taikun for the management of the cluster.
7 |
8 | Without internet access and to keep your security, you can download the packages, docker images, etc. using a proxy server.
9 |
10 |
11 | 
12 | Figure.1: Access Profiles
13 |
14 |
15 | You can extend the table to see the last modification (*Last Modified* and *Last Modified By*).
16 |
17 | **Actions**
18 |
19 | {: .middle} Edit Http Proxy - update address
20 |
21 | {: .middle} Delete access profile, you cannot delete default profile
22 |
23 | ## **Add Access Profile**
24 |
25 | Create a new profile to access a specific project.
26 |
27 |
28 | 
29 | Figure.2: Add Access Profile
30 |
31 |
32 | *Organization* - choose organization form drop down section
33 |
34 | *Name* - choose name for a new profile
35 |
36 | *Http Proxy* - enter http proxy
37 |
38 | *SSH Users* - fill user (3-30 characters) and it's public SSH key
39 |
40 | * type of key must be RSA, ECDSA or Ed25519
41 |
42 | *DNS* - for access you can also use DNS
43 |
44 | ???+ danger
45 | DNS will be ignored, if you choose import network in new [*Cloud Credentials*](../guidelines/add-cloud-credentials).
46 |
47 | *NTP* - or use NTP for accessing
48 |
49 | If you want to change any of these parameters, you can do it with *Show* button and update the fields.
50 |
--------------------------------------------------------------------------------
/docs/manager/login.md:
--------------------------------------------------------------------------------
1 | # **Login to Taikun**
2 |
3 | ## **First-time login**
4 |
5 | After you receive the token in your mail, it will redirected you to the new page to create a new password.
6 |
7 | ???+ warning
8 | The password should meets its conditions: 1 uppercase, 1 lowercase, 1 number, 1 non-alphanumeric and at least 6 signs long (e.g. *Test@123*)!
9 |
10 |
11 | 
12 | Figure.1: Reset/new password
13 |
14 |
15 | If you did not manage to use the token in time (3 hours), click *Resend Token* button and use the new token in your e-mail.
16 |
17 |
18 | 
19 | Figure.2: Resend token
20 |
21 |
22 | ## **Login**
23 |
24 | Enter your *E-mail* and the created *Password* then click **LOGIN** button. The LOGIN button is disabled until you fill in both fields.
25 |
26 |
27 | 
28 | Figure.3: Login
29 |
30 |
31 | You are immediately redirected to the Dashboard.
32 |
33 | ## **Wrong Credentials**
34 |
35 | If you enter the wrong password, you receive the error message *Bad credentials*.
36 |
37 |
38 | 
39 | Figure.4: Bad credentials
40 |
41 |
42 | ## **Forgotten password**
43 |
44 | If you don't remember your password, use *Forget your password?* button.
45 |
46 |
47 | 
48 | Figure.5: Forgotten password
49 |
50 |
51 | A token is sent to your e-mail, clicking the link you will be redirected to the page where you can reset your password like when you want to login for the first time.
52 |
--------------------------------------------------------------------------------
/docs/user/login.md:
--------------------------------------------------------------------------------
1 | # **Login to Taikun**
2 |
3 | ## **First-time login**
4 |
5 | After you receive the token in your mail, it will redirected you to the new page to create a new password.
6 |
7 | ???+ warning
8 | The password should meets its conditions: 1 uppercase, 1 lowercase, 1 number, 1 non-alphanumeric and at least 6 signs long (e.g. *Test@123*)!
9 |
10 |
11 | 
12 | Figure.1: Reset new password
13 |
14 |
15 | If you did not manage to use the token in time (3 hours), click *Resend Token* button and use the new token in your e-mail.
16 |
17 |
18 | 
19 | Figure.2: Resend token
20 |
21 |
22 | ## **Login**
23 |
24 | Enter your *E-mail* and the created *Password* then click **LOGIN** button. The LOGIN button is disabled until you fill in both fields.
25 |
26 |
27 | 
28 | Figure.3: Login process
29 |
30 |
31 | You are immediately redirected to the *Dashboard*.
32 |
33 |
34 | ## **Wrong Credentials**
35 |
36 | If you enter the wrong password, you receive the error message *Bad credentials*.
37 |
38 |
39 | 
40 | Figure.4: Bad credentials
41 |
42 |
43 | ## **Forgotten password**
44 |
45 | If you don't remember your password, use *Forget your password?* button.
46 |
47 |
48 | 
49 | Figure.5: Forgotten password
50 |
51 |
52 | A token is sent to your e-mail, clicking the link you will be redirected to the page where you can reset your password like when you want to login for the first time.
53 |
--------------------------------------------------------------------------------
/docs/partner/login.md:
--------------------------------------------------------------------------------
1 | # **Login to Taikun**
2 |
3 | ## **First-time login**
4 |
5 | After you receive the token in your mail, it will redirected you to the new page to create a new password.
6 |
7 | ???+ warning
8 | The password should meets its conditions: 1 uppercase, 1 lowercase, 1 number, 1 non-alphanumeric and at least 6 signs long (e.g. *Test@123*)!
9 |
10 |
11 | 
12 | Figure.1: Reset/new password
13 |
14 |
15 | If you did not manage to use the token in time (3 hours), click *Resend Token* button and use the new token in your e-mail.
16 |
17 |
18 | 
19 | Figure.2: Reset token
20 |
21 |
22 | ## **Login**
23 |
24 | Enter your *E-mail* and the created *Password* then click **LOGIN** button. The LOGIN button is disabled until you fill in both fields.
25 |
26 |
27 | 
28 | Figure.3: Login
29 |
30 |
31 | You are immediately redirected to the Dashboard.
32 |
33 | ## **Wrong Credentials**
34 |
35 | If you enter the wrong password, you receive the error message *Bad credentials*.
36 |
37 |
38 | 
39 | Figure.4: Bad credentials
40 |
41 |
42 | ## **Forgotten password**
43 |
44 | If you don't remember your password, use _Forget your password?_ button.
45 |
46 |
47 | 
48 | Figure.5: Forgotten password
49 |
50 |
51 | A token is sent to your e-mail, clicking the link you will be redirected to the page where you can reset your password.
52 |
53 |
54 | 
55 | Figure.6: Reset password
56 |
57 |
--------------------------------------------------------------------------------
/docs/partner/kubernetes-profiles.md:
--------------------------------------------------------------------------------
1 |
2 | # **Kubernetes Profiles**
3 |
4 | *Select organization* for a better overview of Kubernetes Profiles.
5 |
6 | Each Profile is characterized by *ID*, *Name*, *Organization Name*, *CNI (Container Network Interface)*, *Octavia*, *Proxy on Bastion*, *Projects and Actions*.
7 |
8 |
9 | 
10 | Figure.1: Kubernetes profiles
11 |
12 |
13 | Expand the table to see the last modification (*Last Modified* and *Last Modified By*).
14 |
15 |
16 | ## **Add Kubernetes Profile**
17 |
18 | You can create a new profile where you can enable a few features, which you can customize with CNI plugin.
19 |
20 |
21 | 
22 | Figure.2: Add Kubernetes Profile
23 |
24 |
25 | *Organization* - choose organization for your profile
26 |
27 | *Profile Name* - name for your kubernetes profile (3-30 characters)
28 |
29 | #### Octavia
30 |
31 | Exposes the Service externally using the load balancers from OpenStack.
32 |
33 | **Enable Taikun Load Balancer**
34 |
35 | Manage your traffic, only available for OpenStack and Octavia disabled.
36 |
37 | #### Proxy on bastion
38 |
39 | Exposes the Service on each Node's IP at a static port, the NodePort. You'll be able to contact the NodePort Service, from outside the cluster, by requesting NodeIP:NodePort.
40 |
41 | ???+ info
42 | Choose this profile with enabled features during [project creation](../projects/creating-a-new-project).
43 |
44 | **Enable Unique Cluster Name**
45 |
46 | If not enabled, the cluster name will be cluster.local
47 |
48 | ### Actions
49 |
50 | {: .middle}/{: .middle} Un/Lock the profile to dis-/enable it from drop-down selection when a new project is created, you cannot lock default profile.
51 |
52 | {: .middle} Delete the profile if it is no longer needed. Only profiles with no associated projects can be deleted. You cannot delete default profile.
53 |
--------------------------------------------------------------------------------
/docs/manager/kubernetes-profiles.md:
--------------------------------------------------------------------------------
1 | # **Kubernetes Profiles**
2 |
3 | Each Profile is characterized by *ID*, *Name*, *Organization Name*, *CNI* (Container Network Interface), *Octavia*, *Proxy on Bastion*, *Projects* and *Actions*.
4 |
5 |
6 | 
7 | Figure.1: Kubernetes profiles
8 |
9 |
10 | Expand the table to see the last modification (*Last Modified* and *Last Modified By*).
11 |
12 | ## **Add Kubernetes Profile**
13 |
14 | You can create a new profile where you can enable a few features, which you can customize with CNI plugin.
15 |
16 |
17 | 
18 | Figure.2: Add kubernetes profile
19 |
20 |
21 | *Profile Name* - name for your kubernetes profile (3-30 characters)
22 |
23 | **Enable Octavia**
24 |
25 | Exposes the Service externally using the load balancers from OpenStack.
26 |
27 | **Enable Taikun Load Balancer**
28 |
29 | Manage your traffic, only available for OpenStack and Octavia disabled.
30 |
31 | **Enable proxy on bastion**
32 |
33 | Exposes the Service on each Node's IP at a static port, the NodePort. You'll be able to contact the NodePort Service, from outside the cluster, by requesting :.
34 |
35 | **Allow Scheduling on Master**
36 |
37 | Schedule Pods on control-plane node to maximize resource usage, but we do not recommend it.
38 |
39 | ???+ note
40 | If Allow Scheduling On Master is equal to false then the kube worker should have more than 2 CPU
41 |
42 | ???+ info
43 | Choose this profile with enabled features during [project creation](../projects/creating-a-new-project).
44 |
45 | **Enable Unique Cluster Name**
46 |
47 | If not enabled, the cluster name will be cluster.local
48 |
49 | **Actions**
50 |
51 | {: .middle}/{: .middle} Un/Lock the profile to dis-/enable it from drop-down selection when a new project is created, you cannot lock default profile.
52 |
53 | {: .middle} Delete the profile if it is no longer needed. Only profiles with no associated projects can be deleted. You cannot delete default profile.
54 |
--------------------------------------------------------------------------------
/docs/guidelines/creating-profiles.md:
--------------------------------------------------------------------------------
1 | # **Creating Profiles**
2 |
3 | [:fontawesome-solid-user-tie:](../../manager/kubernetes-profiles/) **Manager**
4 | [:fontawesome-regular-handshake:](../../partner/kubernetes-profiles/) **Partner**
5 |
6 |
7 | If you want to use one of these profiles in your project, you have to add them first, then select them from selection during project creation.
8 |
9 | ???+ warning
10 | Keep in mind you have to add profiles (*kubernetes*, *access* and *standalone* profiles) during project creation otherwise you cannot do it later.
11 |
12 |
13 | ## **Kubernetes Profiles**
14 |
15 | Set parameters for your kubernetes profile and choose it from drop-down selection during project creation.
16 |
17 |
18 | 
19 | Figure.1: Kubernetes profiles
20 |
21 |
22 | ## **Access Profiles**
23 |
24 | Set parameters for your access profile and choose it from drop-down selection during project creation.
25 |
26 |
27 | 
28 | Figure.2: Access profiles
29 |
30 |
31 | ## **Alerting Profiles**
32 |
33 | ???+ info
34 | Alerting profile can be attached after project is created
35 |
36 | Set parameters for your alerting profile and choose it from drop-down selection during project creation.
37 |
38 |
39 | 
40 | Figure.3: Aletring profiles
41 |
42 |
43 | ## **Policy Profiles**
44 |
45 | ???+ info
46 | Policy profile can be attached after project is created
47 |
48 | Set parameters for your policy profile and choose it from drop-down selection during project creation.
49 |
50 |
51 | 
52 | Figure.4: Policy profiles
53 |
54 |
55 | ## **Standalone Profiles**
56 |
57 | Set parameters for your standalone profile and choose it from drop-down selection during project creation.
58 |
59 |
60 | 
61 | Figure.5: Standalone profiles
62 |
63 |
--------------------------------------------------------------------------------
/docs/manager/projects/creating-a-new-project.md:
--------------------------------------------------------------------------------
1 | # **Create a New Project**
2 |
3 | If you want to add a new project, use the upper right button{: .middle}in **Projects** tab.
4 |
5 |
6 | 
7 | Figure.1: Add project
8 |
9 |
10 | **Project Name** - fill in your project name (only alphanumeric lowercase characters and dash are allowed, 3-30 characters; **not** underscore; e.g. my-project1)
11 |
12 | **Cloud** - choose where you want to store your Project, create a new Cloud in [**Cloud Credentials**](../../cloud-credentials)
13 |
14 | **Access Profile** - choose profile which can access the project, create a new profile in [**Access Profiles**](../../access-profiles)
15 |
16 | **Alerting Profile** - if you have created profile in [**Alerting Profiles**](../../alerting-profiles), you can choose it from the drop-down selection
17 |
18 | **Kubernetes Profile** - first create a new profile in [**Kubernetes Profiles**](../../kubernetes-profiles) and than choose from drop down selection
19 |
20 | * for openstack: if you choose profile with enabled Taikun Load Balancer, you also have to fill in *Taikun Load Balancer Flavor*, *Router Id Start Range* and *Router Id End Range*
21 |
22 | **Enable Auto Upgrade** - Kubespray version will be automatically upgraded if new version is available
23 |
24 | **Enable Monitoring** - monitoring a Kubernetes cluster allows easy management of containerized infrastructure by tracking utilization of cluster resources including memory, CPU, and storage
25 |
26 | **Enable Backup** - choose credentials, you can create a new one in [**Backup Credentials**](../../backup-credentials)**.** If you choose not to enable it, you can change it later, see [**Projects - Project details - Backup**](../project-details#enable-disable-backup)
27 |
28 | **Add Policy Profile** - select a policy profile for the project
29 |
30 | **Add Expiration Date** - set project durability, by default it is set to infinity. After the expiration date, your project is **NOT** affected, deleted or lock. It will stays the same.
31 |
32 | **Enable Spot** - enable spots
33 |
34 | * **Allow Spot VM’s** - allow spots in standalone VMs
35 | * **Allow Full Spot Kubernetes** - allow full spot on kubernetes
36 | * **Allow Spot Workers** - allow spot on workers
37 | * **No Spot for Kubernetes**
38 |
39 | **Specify Kubernetes Version** - select the kubernetes version for the project
40 |
41 | **Add Flavor** - bind the flavor to the project, you can bind more than one flavor and un/bind them later in [**Flavor Info**](../flavor-info)
42 |
--------------------------------------------------------------------------------
/docs/partner/projects/creating-a-new-project.md:
--------------------------------------------------------------------------------
1 | # **Create a New Project**
2 |
3 | If you want to add a new project, use the upper right button{: .middle} in **Projects** tab.
4 |
5 |
6 | 
7 | Figure.1: Projects
8 |
9 |
10 | **Project Name** - fill in your project name (only alphanumeric lowercase characters and dash are allowed, 3-30 characters; **not** underscore; e.g. my-project1)
11 |
12 | **Cloud** - choose where you want to store your Project, create a new Cloud in [**Cloud Credentials**](../../cloud-credentials)
13 |
14 | **Access Profile** - choose profile which can access the project, create a new profile in [**Access Profiles**](../../access-profiles)
15 |
16 | **Alerting Profile** - if you have created profile in [**Alerting Profiles**](../../alerting-profiles), you can choose it from the drop-down selection
17 |
18 | **Kubernetes Profile** - first create a new profile in [**Kubernetes Profiles**](../../kubernetes-profiles) and than choose from drop down selection
19 |
20 | * for openstack: if you choose profile with enabled Taikun Load Balancer, you also have to fill in *Taikun Load Balancer Flavor*, *Router Id Start Range* and *Router Id End Range*
21 |
22 | **Enable Auto Upgrade** - Kubespray version will be automatically upgraded if new version is available
23 |
24 | **Enable Monitoring** - monitoring a Kubernetes cluster allows easy management of containerized infrastructure by tracking utilization of cluster resources including memory, CPU, and storage
25 |
26 | **Enable Backup** - choose credentials, you can create a new one in [**Backup Credentials**](../../backup-credentials)**.** If you choose not to enable it, you can change it later, see [**Projects - Project details - Backup**](../project-details#enable-disable-backup)
27 |
28 | **Add Policy Profile** - select a policy profile for the project
29 |
30 | **Add Expiration Date** - set project durability, by default it is set to infinity. After the expiration date, your project is **NOT** affected, deleted or lock. It will stays the same.
31 |
32 | **Enable Spot** - enable spots
33 |
34 | * **Allow Spot VM’s** - allow spots in standalone VMs
35 | * **Allow Full Spot Kubernetes** - allow full spot on kubernetes
36 | * **Allow Spot Workers** - allow spot on workers
37 | * **No Spot for Kubernetes**
38 |
39 | **Specify Kubernetes Version** - select the kubernetes version for the project
40 |
41 | **Add Flavor** - bind the flavor to the project, you can bind more than one flavor and un/bind them later in [**Flavor Info**](../../flavor-info)
42 |
--------------------------------------------------------------------------------
/docs/user/dashboard/README.md:
--------------------------------------------------------------------------------
1 | # Dashboard
2 |
3 | You can access the Dashboard by clicking upper left Taikun logo or the *Dashboard* in the tabs:
4 |
5 |
6 | 
7 | Figure.1: Dashboard and project tabs
8 |
9 |
10 | On Dashboard you can find:
11 |
12 | * [**Users**](users/)
13 | * [**Pie charts**](charts/) (Projects, Server Statuses, Servers, Cloud Credential, Nodes Overview, Pod overview, Project with Alerts and Kubernetes Health)
14 | * [**Tables**](tables/) (Kubernetes, Project Resource Allocation and Recent Events)
15 |
16 | ## **Header**
17 |
18 | On every page in the upper right corner you can see:
19 |
20 |
21 | 
22 | Figure.2: Header icons
23 |
24 |
25 | 
26 |
27 | * logo of your organization
28 |
29 | 
30 |
31 | * link to this documentation, variable for every page
32 |
33 | 
34 |
35 | * global search - search for projects or servers, case insensitive, can be open with *double shift* at every page
36 | * Taikun search - search through projects
37 | * Kubernetes Search - have to be checked (as searching kubernetes takes longer time) and search through all active kubernetes
38 |
39 | 
40 |
41 | * real-time notifications
42 | * General - notifications about changes made in projects (e.g. created project, enable monitoring, change of status), for details see [**Dashboard - Recent Events**](tables#recent-events)
43 | * Alerts - new/persisting (red) or resolved (green) alerts, see [**Projects - Alerts**](../projects/project-details-k8s#alerts)
44 |
45 | 
46 |
47 | * your information and setting, see [**My Profile**](../my-profile)
48 | * if your display name is changed, the name can be seen in the corner{: .middle}
49 |
--------------------------------------------------------------------------------
/docs/manager/showback-rules.md:
--------------------------------------------------------------------------------
1 | # **Showback Rules**
2 |
3 | When visiting the tab first you see overview of Showback Rules.
4 |
5 |
6 | 
7 | Figure.1: Showback rules overviews
8 |
9 |
10 | Every showback rule is described by *ID*, *Name*, *Metric Name*, *Organization*, *Labels* (if there is any), *Kind*, *Type*, *Global alert limit*, *Project alert limit*, *Price*, *Showback credentials* (if there is any), date and time *Created* and *Actions*.
11 |
12 | ## **Add Rule**
13 |
14 | Create a new showback rule for your organization.
15 |
16 |
17 | 
18 | Figure.2: Add showback rule
19 |
20 |
21 | *Name* - choose name for your rule
22 |
23 | *Metric Name* - use valid metric, you can use [**Metrics**](../projects/project-details-k8s/#metrics) for examples
24 |
25 | *Kind* - choose kind for the rule
26 |
27 | * General - data source is taikun
28 | * External - data source is external - you need to change Showback Credentials
29 |
30 | *Type* - drop-down: Count (calculate package as unit - e.g. flavors) or Sum (calculate per quantity - e.g. GBs)
31 |
32 | *Price* - billing in CZK per selected unit
33 |
34 | *Project Alert Limit* - set limit of alerts for one project
35 |
36 | *Global Alert Limit* - set limit of alerts for all projects
37 |
38 | *Showback Credentials* - drop-down of operation credentials
39 |
40 | *Labels* - the label indicates the variable name (*Label*) and value of the label (*Label Value*), see examples in the **Table 1** below
41 |
42 | **Table 1: Labels in Showback Rules**
43 |
44 | | Label | Label Value |
45 | | ----------------- | ----------- |
46 | | Flavor | n0.xmedium |
47 | | taikun\_org\_name | itera |
48 | | taikun\_org\_id | 2 |
49 |
50 | ???+ warning
51 | Once you add the rule the cron job starts to calculate. The price for showback summary starts at the beginning of every hour and it can't be paused. Rule is stopped by deleting it.
52 |
53 | **Actions**
54 |
55 | {: .middle} Edit Showback Rule - change parameters of your rule
56 |
57 | {: .middle} Copy Showback Rule - if you want to create similar rule, you can copy existing one, don't forget to change rule name
58 |
59 | {: .middle} Delete Rule - if you want to stop the rule, simply delete it
60 |
--------------------------------------------------------------------------------
/docs/manager/images.md:
--------------------------------------------------------------------------------
1 | # **Images**
2 |
3 | ???+ warning
4 | To use a *images* for VMs in the project, you have to **bind the image to the project first**.
5 |
6 | ## **Quickstart Images - Bind to Project**
7 |
8 | Choose *Organization*, *Cloud Type* and *Credentials* from drop down selection. After selecting image's you can bind them to the project by clicking on the
9 | {: .middle} button
10 |
11 |
12 | 
13 | Figure.1: Bind to project
14 |
15 |
16 | A success message is displayed for the successful image bound
17 |
18 |
19 | 
20 | Figure.2: Successful image binding
21 |
22 |
23 | An error message is displayed, if the image is already bound to the project.
24 |
25 |
26 | 
27 | Figure.3: Image already bound
28 |
29 |
30 | With the same way images can be bound from the tabs **My Images** and **Public Images**
31 |
32 | ## **My Images - Bind to Project**
33 |
34 |
35 | 
36 | Figure.4: My Images
37 |
38 |
39 | ## **Public Images - Bind to Project**
40 |
41 |
42 | 
43 | Figure.5: Public Images
44 |
45 |
46 | ## **Image-Project Bounds | Unbind Image**
47 |
48 | To overview all *images* used in Projects use{: .middle} button. Flavors for each *Cloud* (Amazon, Azure, OpenStack) can be sorted by *Name*, *Project Name* and *Size*.
49 |
50 | To unbind a flavor from a specific project, choose a Cloud, select the project-image bound and use{: .middle} button.
51 |
52 |
53 | 
54 | Figure.6: Unbind image
55 |
56 |
--------------------------------------------------------------------------------
/docs/partner/images.md:
--------------------------------------------------------------------------------
1 | # **Images**
2 |
3 | ???+ warning
4 | To use a *images* for VMs in the project, you have to **bind the image to the project first**.
5 |
6 | ## **Quickstart Images - Bind to Project**
7 |
8 | Choose *Organization*, *Cloud Type* and *Credentials* from drop down selection. After selecting image's you can bind them to the project by clicking on the
9 | {: .middle} button
10 |
11 |
12 | 
13 | Figure.1: Bind to project
14 |
15 |
16 | A success message is displayed for the successful image bound
17 |
18 |
19 | 
20 | Figure.2: Successful image binding
21 |
22 |
23 | An error message is displayed, if the image is already bound to the project.
24 |
25 |
26 | 
27 | Figure.3: Image already bound
28 |
29 |
30 | With the same way images can be bound from the tabs **My Images** and **Public Images**
31 |
32 | ## **My Images - Bind to Project**
33 |
34 |
35 | 
36 | Figure.4: My Images
37 |
38 |
39 | ## **Public Images - Bind to Project**
40 |
41 |
42 | 
43 | Figure.5: Public Images
44 |
45 |
46 | ## **Image-Project Bounds | Unbind Image**
47 |
48 | To overview all *images* used in Projects use{: .middle} button. Flavors for each *Cloud* (Amazon, Azure, OpenStack) can be sorted by *Name*, *Project Name* and *Size*.
49 |
50 | To unbind a flavor from a specific project, choose a Cloud, select the project-image bound and use{: .middle} button.
51 |
52 |
53 | 
54 | Figure.6: Unbind image
55 |
56 |
--------------------------------------------------------------------------------
/docs/manager/users.md:
--------------------------------------------------------------------------------
1 | # **Users**
2 |
3 | In **Users** tab is list of users for your organization. If you want change your settings, visit [**My Profile**](../my-profile).
4 |
5 | For each user you can preview following:
6 |
7 | * Id
8 | * User Name
9 | * Display Name
10 | * E-mail
11 | * Role
12 | * Approved
13 | * Partner
14 | * Creation Name
15 | * Projects
16 | * Actions
17 |
18 |
19 | 
20 | Figure.1: Users
21 |
22 |
23 | **Find User**
24 |
25 | To find user easier you can sort the list by *User Name*, *Display Name*, *Role*, *Approved*, *Partner* and *Creation Date* or use the *Search* bar above the list.
26 |
27 | ## **Add User**
28 |
29 | If you want to add a new user usebutton in the upper right corner.
30 |
31 | ???+ warning
32 | You can create a new user with **User** or **Manager** role.
33 |
34 |
35 | 
36 | Figure.2: Add User
37 |
38 |
39 | *User Name* - only alphanumeric characters and dash allowed
40 |
41 | *Display Name* - name displayed in upper right corner (upper/lowecase and spaces allowed), optional
42 |
43 | *E-mail* - new user's e-mail address
44 |
45 | ???+ warning
46 | Token will be sent to the provided e-mail address and it expires in **3 hours**.
47 |
48 | Token redirects the user to the page, where a [new password will be set](../login).
49 |
50 | *Role* - choose between *Manager* and *User* role
51 |
52 |
53 | ## **Edit assigned Projects**
54 |
55 | Use pencil :pencil2: in *Projects* column to assign user a project and update your changes.
56 |
57 | ???+ warning
58 | You can assign a project to user with **User** role only.
59 |
60 | ???+ info
61 | You can also assign the project to the user in [**Projects**](../projects/#assigned-users).
62 |
63 | ## **Actions**
64 |
65 | ### **Edit User**
66 |
67 | *User Name* - change user's name
68 |
69 | *Display Name* - change name displayed in upper right corner (upper/lowecase and spaces allowed)
70 |
71 | *E-mail* - change user's e-mail address. User will then use this e-mail to login and can [confirm the e-mail](../my-profile#change-e-mail) in *My Profile*
72 |
73 | *Role* - change role from *user* to *manager*. The change cannot be undone because you can't change manager's role
74 |
75 | *Force User to Reset Password* - user will be automatically logged out and receive e-mail with reset password request
76 |
77 | *User Disabled* - logout and lock the user
78 |
79 | ### **Delete User**
80 |
81 | If you want to delete some user, use the bin icon{: .middle}.
82 |
83 | ???+ warning
84 | You can delete a user only with **User** role only.
85 |
--------------------------------------------------------------------------------
/docs/partner/showback-rules.md:
--------------------------------------------------------------------------------
1 | # **Showback Rules**
2 |
3 | *Select organization* for a better overview of Access Profiles.
4 |
5 | When visiting the tab first you see overview of Showback Rules.
6 |
7 |
8 | 
9 | Figure.1: Showback Rules overviews
10 |
11 |
12 | Every showback rule is described by *ID*, *Name*, *Metric Name*, *Organization*, *Labels* (if there is any), *Kind*, *Type*, *Global alert limit*, *Project alert limit*, *Price*, *Showback credentials* (if there is any), date and time *Created* and *Actions*.
13 |
14 |
15 | **Actions**
16 |
17 | {: .middle} Edit Showback Rule - change parameters of your rule
18 |
19 | {: .middle} Copy Showback Rule - if you want to create similar rule, you can copy existing one, don't forget to change rule name
20 |
21 | {: .middle} Delete Rule - if you want to stop the rule, simply delete it
22 |
23 |
24 | ## **Add Rule**
25 |
26 | Create a new showback rule for your organization.
27 |
28 |
29 | 
30 | Figure.2: Add Showback Rule
31 |
32 |
33 | *Organization* - choose organization
34 |
35 | *Name* - choose name for your rule
36 |
37 | *Metric Name* - use valid metric, you can use [**Metrics**](../projects/project-details-k8s/#metrics) for examples
38 |
39 | *Kind* - choose kind for the rule
40 |
41 | * General - data source is taikun
42 | * External - data source is external - you need to change Showback Credentials
43 |
44 | *Type* - drop-down: Count (calculate package as unit - e.g. flavors) or Sum (calculate per quantity - e.g. GBs)
45 |
46 | *Price* - billing in CZK per selected unit
47 |
48 | *Project Alert Limit* - set limit of alerts for one project
49 |
50 | *Global Alert Limit* - set limit of alerts for all projects
51 |
52 | *Showback Credentials* - drop-down of operation credentials
53 |
54 | *Labels* - the label indicates the variable name (*Label*) and value of the label (*Label Value*), see examples in the **Table 1** below
55 |
56 | **Table 1: Labels in Showback Rules**
57 |
58 | | Label | Label Value |
59 | | ----------------- | ----------- |
60 | | Flavor | n0.xmedium |
61 | | taikun\_org\_name | itera |
62 | | taikun\_org\_id | 2 |
63 |
64 | ???+ warning
65 | Once you add the rule the cron job starts to calculate. The price for showback summary starts at the beginning of every hour and it can't be paused. Rule is stopped by deleting it.
66 |
--------------------------------------------------------------------------------
/site/assets/stylesheets/palette.e6a45f82.min.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["src/assets/stylesheets/palette/_accent.scss","../../../src/assets/stylesheets/palette.scss","src/assets/stylesheets/palette/_primary.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/palette/_scheme.scss"],"names":[],"mappings":"AA8CE,2BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCnDN,CDyCE,4BACE,4BAAA,CACA,mDAAA,CAOE,yBAAA,CACA,8CC5CN,CDkCE,8BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CCrCN,CD2BE,mCACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CC9BN,CDoBE,8BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CCvBN,CDaE,4BACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CChBN,CDME,kCACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCTN,CDDE,4BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCFN,CDRE,4BACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCKN,CDfE,6BACE,4BAAA,CACA,mDAAA,CAOE,yBAAA,CACA,8CCYN,CDtBE,mCACE,4BAAA,CACA,oDAAA,CAOE,yBAAA,CACA,8CCmBN,CD7BE,4BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CC6BN,CDpCE,8BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CCoCN,CD3CE,6BACE,yBAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CC2CN,CDlDE,8BACE,4BAAA,CACA,oDAAA,CAIE,oCAAA,CACA,2CCkDN,CDzDE,mCACE,4BAAA,CACA,qDAAA,CAOE,yBAAA,CACA,8CCsDN,CC3DE,4BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwDN,CCnEE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgEN,CC3EE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwEN,CCnFE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgFN,CC3FE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwFN,CCnGE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgGN,CC3GE,mCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwGN,CCnHE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgHN,CC3HE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwHN,CCnIE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgIN,CC3IE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwIN,CCnJE,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CDmJN,CC3JE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CD2JN,CCnKE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CDmKN,CC3KE,+BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAIE,qCAAA,CACA,4CD2KN,CCnLE,oCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgLN,CC3LE,8BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwLN,CCnME,6BACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDgMN,CC3ME,kCACE,6BAAA,CACA,oCAAA,CACA,mCAAA,CAOE,0BAAA,CACA,+CDwMN,CC9LA,8BACE,0BAAA,CACA,+CAAA,CACA,2CAAA,CACA,qCAAA,CACA,4CAAA,CAGA,4BD+LF,CE9EI,mCD3GA,+CACE,gCD4LJ,CCzLI,qDACE,gCD2LN,CCtLE,iEACE,qBDwLJ,CACF,CEzFI,sCDxFA,uCACE,0CDoLJ,CACF,CC3KA,8BACE,0BAAA,CACA,4CAAA,CACA,gCAAA,CACA,0BAAA,CACA,+CAAA,CAGA,4BD4KF,CCzKE,yCACE,qBD2KJ,CEvFI,wCD7EA,8CACE,gCDuKJ,CACF,CE/GI,mCDjDA,+CACE,oCDmKJ,CChKI,qDACE,mCDkKN,CACF,CEpGI,wCDtDA,iFACE,qBD6JJ,CACF,CE5HI,sCD1BA,uCACE,qBDyJJ,CACF,CGvSA,cAGE,6BAKE,YAAA,CAGA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CACA,mDAAA,CACA,6DAAA,CACA,+DAAA,CACA,gEAAA,CAGA,gDAAA,CACA,gDAAA,CAGA,uCAAA,CACA,iCAAA,CACA,kCAAA,CACA,mCAAA,CACA,mCAAA,CACA,kCAAA,CACA,iCAAA,CACA,+CAAA,CACA,6DAAA,CACA,gEAAA,CACA,4DAAA,CACA,4DAAA,CACA,6DAAA,CAGA,6CAAA,CAGA,+CAAA,CAGA,2CAAA,CAGA,uDAAA,CACA,6DAAA,CACA,2DAAA,CAGA,yDAAA,CAGA,0DAAA,CAGA,qDAAA,CACA,wDHgRF,CG7QE,oHAIE,4BH4QJ,CGxQE,qDACE,YH0QJ,CGtQE,oDACE,eHwQJ,CACF","file":"palette.css"}
--------------------------------------------------------------------------------
/docs/manager/backup-credentials.md:
--------------------------------------------------------------------------------
1 | # **Backup Credentials**
2 |
3 | ## **Create new credentials**
4 |
5 |
6 | 
7 | Figure.1: Add credentials
8 |
9 |
10 | *S3 Name* - name for backup credentials (3-30 characters)
11 |
12 | Fill the remaining S3 data from Amazon and add new backup credentials. See [**endpoints**](https://docs.aws.amazon.com/general/latest/gr/s3.html) from AWS.
13 |
14 | **Invalid S3 credentials** error can pop up if you fill in wrong/non-existent credentials.
15 |
16 | After you add the credentials, you can backup the project by [**Enable Backup**](../projects/project-details-k8s/#enabledisable-backup) and add [**Backup Policy**](../projects/project-details-k8s/#backup-policy).
17 |
18 | ## **Backup Credentials**
19 |
20 | Use the search field for finding the credentials needed.
21 |
22 | Every Credential has its:
23 |
24 | * ID
25 | * Organization
26 | * S3 Access Key ID
27 | * S3 Endpoint
28 | * S3 Name
29 | * Associated Projects
30 | * Actions
31 |
32 |
33 | 
34 | Figure.2: Backup credentials
35 |
36 |
37 | *ID* and *Organization* are immutable.
38 |
39 | *S3 Access Key ID*, *S3 Endpoint* and *S3 Name* are security credentials.
40 |
41 | In *Associated Projects* are listed all projects using these backup credentials.
42 |
43 | *Created By* informs you who has made the last change.
44 |
45 | Look [**here**](../../guidelines/create-credentials/where-to-find-credentials#aws), if you don't know where to find your AWS credentials.
46 |
47 | By expanding the table, you can see the last modification made (*Last Modified*, *Last Modified By*).
48 |
49 | ### **Actions**
50 |
51 | {: .middle} Make default - choose credentials which will be then filled during project creation, lighter color indicates selected credentials
52 |
53 | {: .middle}/{: .middle} Lock/Unlock Credential - if you lock the Credentials, you disable it for Backup. Unlock it to enable it again
54 |
55 | {: .middle} Update Credentials - update *S3 Name*, *S3 Access Key* and *S3 Secret Key*
56 |
57 | {: .middle} Delete - you can delete only empty and unlocked Backup Credentials
58 |
59 | For some example see [**Guidelines - Backup**](../../guidelines/backup-monitoring-lock-reboot/#enabledisable-backup).
60 |
--------------------------------------------------------------------------------
/docs/partner/backup-credentials.md:
--------------------------------------------------------------------------------
1 |
2 | # **Backup Credentials**
3 |
4 | *Select organization* for a better overview of servers for individual projects.
5 |
6 | ## **Create new credentials**
7 |
8 |
9 | 
10 | Figure.1: Add Credentials
11 |
12 |
13 |
14 | *Organization* - choose organization from drop-down selection
15 |
16 | *S3 Name* - name for backup credentials (3-30 characters)
17 |
18 | Fill the remaining S3 data from Amazon and add new backup credentials. See [**endpoints**](https://docs.aws.amazon.com/general/latest/gr/s3.html) from AWS.
19 |
20 | **Invalid S3 credentials** error can pop up if you fill in wrong/non-existent credentials.
21 |
22 | After you add the credentials, you can backup the project by [**Enable Backup**](../projects/project-details-k8s#enabledisable-backup) and add [**Backup** **Policy**](../projects/project-details-k8s#backup-policy)**.**
23 |
24 | ## **Backup credentials**
25 |
26 | Use the search field for finding the credentials needed.
27 |
28 | Every Credential has its:
29 |
30 | * ID
31 | * Organization
32 | * S3 Access Key ID
33 | * S3 Endpoint
34 | * S3 Name
35 | * Associated Projects
36 | * Actions
37 |
38 |
39 | 
40 | Figure.2: Backup credentials
41 |
42 |
43 |
44 | *ID* and *Organization* are immutable.
45 |
46 | *S3 Access Key ID*, *S3 Endpoint* and *S3 Name* are security credentials.
47 |
48 | In *Associated Projects* are listed all projects using these backup credentials.
49 |
50 | *Created By* informs you who has made the last change.
51 |
52 | Look [**here**](../../guidelines/create-credentials/where-to-find-credentials#aws), if you don't know where to find your AWS credentials.
53 |
54 | By expanding the table, you can see the last modification made (*Last Modified*, *Last Modified By*).
55 |
56 | ### **Actions**
57 |
58 | {: .middle} Make default - choose credentials which will be then filled during project creation, lighter color indicates selected credentials
59 |
60 | {: .middle}/{: .middle} Lock/Unlock Credential - if you lock the Credentials, you disable it for Backup and cannot be deleted. Unlock it to enable it again.
61 |
62 | {: .middle} Delete - you can delete only empty Backup Credentials
63 |
64 |
65 | For some example see [Guidelines - **Backup**](../../guidelines/backup-monitoring-lock-reboot/#enabledisable-backup).
66 |
--------------------------------------------------------------------------------
/docs/partner/policy-profiles.md:
--------------------------------------------------------------------------------
1 | # **Policy Profiles**
2 |
3 | Profile uses [**OPA**](https://www.openpolicyagent.org) (Open Policy Agent) to centralize operational, security, and compliance.
4 |
5 | *Select organization* for a better overview of Alerting Profiles.
6 |
7 | Accessing the page you can see the overview of all created profiles with selected rules and associated projects.
8 |
9 |
10 | 
11 | Figure.1: Policy Profiles
12 |
13 |
14 |
15 | Each profile can be:
16 |
17 | {: .middle}/{: .middle} Un/lock profile - if you lock the profiles, you can't use them for new Project, edit or delete them
18 |
19 | {: .middle} Delete - delete non-used and unlocked profiles
20 |
21 | {: .middle} Update Profile - update policy profile
22 |
23 | {: .middle} Make default - choose profile which will be then filled during project creation, lighter color indicates selected credentials
24 |
25 |
26 | ## **Add Policy Profile**
27 |
28 |
29 | 
30 | Figure.2: Add Policy Profile
31 |
32 |
33 | *Name* - choose name for the profile
34 |
35 | **Features:**
36 |
37 | *Forbid NodePort*
38 |
39 | *Forbid http ingresses*
40 |
41 | *Require Probe*
42 |
43 | **Add:**
44 |
45 | *Allowed Repositories*
46 |
47 | *Forbid Specific Tags*
48 |
49 | *Ingress Whitelist*
50 |
51 |
52 | ## **Add Profile to the Project**
53 |
54 | You can add the profile during project creation - choosing from drop down selection.
55 |
56 |
57 | 
58 | Figure.3: Add Policy during Project creation
59 |
60 |
61 | Enforce Policies after the project is created. You can disable it the same way.
62 |
63 |
64 | 
65 | Figure.4: Add Policy after Project is created
66 |
67 |
68 |
69 | ???+ warning
70 | Please keep in mind that namespaces *monitoring*, *velero* and *kube-system* **violate** these policies.
71 |
--------------------------------------------------------------------------------
/docs/manager/policy-profiles.md:
--------------------------------------------------------------------------------
1 | # **Policy Profiles**
2 |
3 | Profile uses [**OPA**](https://www.openpolicyagent.org) (Open Policy Agent) to centralize operational, security, and compliance.
4 |
5 |
6 | Accessing the page you can see the overview of all created profiles with selected rules and associated projects.
7 |
8 |
9 | 
10 | Figure.1: Policy Profiles
11 |
12 |
13 |
14 | Each profile can be:
15 |
16 | {: .middle}/{: .middle} Un/lock profile - if you lock the profiles, you can't use them for new Project, edit or delete them
17 |
18 | {: .middle} Delete - delete non-used and unlocked profiles
19 |
20 | {: .middle} Update Profile - update policy profile
21 |
22 | {: .middle} Make default - choose profile which will be then filled during project creation, lighter color indicates selected credentials
23 |
24 |
25 | ## **Add Policy Profile**
26 |
27 |
28 | 
29 | Figure.2: Add Policy Profile
30 |
31 |
32 |
33 | *Name* - choose name for the profile
34 |
35 | **Features:**
36 |
37 | - *Forbid NodePort*
38 |
39 | - *Forbid http ingresses*
40 |
41 | - *Require Probe*
42 |
43 | **Add:**
44 |
45 | - *Allowed Repositories*
46 |
47 | - *Forbid Specific Tags*
48 |
49 | - *Ingress Whitelist*
50 |
51 |
52 | ## **Add Profile to the Project**
53 |
54 | You can add the profile during project creation - choosing from drop down selection.
55 |
56 |
57 | 
58 | Figure.3: Add Policy during Project creation
59 |
60 |
61 | Enforce Policies after the project is created. You can disable it the same way.
62 |
63 |
64 | 
65 | Figure.4: Add Policy after Project is created
66 |
67 |
68 |
69 |
70 | ???+ warning
71 | Please keep in mind that namespaces *monitoring*, *velero* and *kube-system* **violate** these policies.
72 |
--------------------------------------------------------------------------------
/docs/partner/billing-rules.md:
--------------------------------------------------------------------------------
1 |
2 | # **Billing Rules**
3 |
4 | Create a Rule, [assign](../organizations#actions) it to the organization and see the result in [**Chargeback**](../chargeback).
5 |
6 |
7 | 
8 | Figure.1: Billing Rules
9 |
10 |
11 | **Rules** can be sorted by *Name*, *Metric Name*, *Created* and *Type*.
12 |
13 | By clicking arrow > you can expand the table to see *Created By*, *Last Modified* and *Last Modified By*.
14 |
15 | ### New Rule
16 |
17 | To create Rule use {: .middle} button.
18 |
19 |
20 | 
21 | Figure.2: Add Rule
22 |
23 |
24 | *Name* - Rule name
25 |
26 | *Metric Name* - exact metric name from Prometheus (e.g. volumes, flavor, networks) you want to bill, if you select *Billing credentials* first, you can choose from drop-down selection (wit autocomplete)
27 |
28 | *Bind rule to organization* - assign rule to selected organization or choose none and bind it later
29 |
30 | *Billing Credentials* - drop-down of operation credentials
31 |
32 | *Type* - drop-down: Count (calculate package as unit - e.g. flavors) or Sum (calculate per quantity - e.g. GBs)
33 |
34 | *Price* - billing in CZK per selected unit
35 |
36 | *Price Rate* - in percents (0-1000 %), 100 equals one
37 |
38 | *Add Label* - The label indicates the variable name (*Label*) and value of the label (*Label Value*), see the **Table 1** below
39 |
40 | **Table 1: Labels in Billing Rules**
41 |
42 | | Label | Label Value |
43 | | ----------------- | ----------- |
44 | | Flavor | n0.xmedium |
45 | | taikun\_org\_name | itera |
46 | | taikun\_org\_id | 2 |
47 |
48 | ???+ warning
49 | Once you bind the organization the cron job starts to calculate. The billing starts at the beginning of every hour and once it's bound to organization, it can't be paused.
50 |
51 |
52 | ### Actions
53 |
54 | Change the properties of the rule.
55 |
56 | #### {: .middle} Bound Organizations
57 |
58 | Select the organization you want to assign the rule and then click the assign button. If you choose a new organization the billing starts from the beginning of next hour.
59 |
60 |
61 | #### :pencil2: Edit Prometheus Info
62 |
63 | Update the rule and change the parameters.
64 |
65 |
66 | #### {: .middle} Copy Rule
67 |
68 | When creating similar rule, when you want to change just one or few parameters, you can use copy button - window with copied parameters will pop-up.
69 |
70 |
71 | #### {: .middle} Delete
72 |
73 | Delete the rule if no longer needed.
74 |
--------------------------------------------------------------------------------
/docs/partner/alerting-profiles.md:
--------------------------------------------------------------------------------
1 |
2 | # **Alerting Profiles**
3 |
4 | *Select organization* for a better overview of Alerting Profiles.
5 |
6 | If you want to receive notifications when there is some alert in you project, just set the alerting profile and attach it to the project.
7 |
8 |
9 | ## **Add Alerting Profile**
10 |
11 | If you want a new alerting profile, use{: .middle} button.
12 |
13 |
14 | 
15 | Figure.1: Add Alerting Profile
16 |
17 |
18 | *Organization* - choose from drop-down selection of organizations
19 |
20 | *Name* - choose name for your alerting profile
21 |
22 | *Slack Configuration* - if you have created a [slack configuration](../slack-configuration), you can use it in profile
23 |
24 | *Reminder* - set the reminder for *None*, *HalfHour*, *Hourly*, *Daily*
25 |
26 | *E-mails* - receive notifications with e-mail
27 |
28 | *Webhooks* - use webhooks for application alert
29 |
30 | *Integrations* - set notifications for different apps (Opsgenie, Pagerduty, Splunk and MicrosoftTeams)
31 |
32 | ## **Alerting Profile overview**
33 |
34 |
35 | 
36 | Figure.2: Alerting Profiles
37 |
38 |
39 |
40 | Each Profile is described by *ID*, *Name*, *Organization Name*, *Slack Configuration Name*, *Associated Projects*, *E-mail*, *Webhooks*, *Created By and Actions*.
41 |
42 | You can change or add more *E-mails* and *Webhooks*. To each webhooks you can add multiple headers (*Key*, *Value*).
43 |
44 | You can extend the table to see the last modification (*Last Modified* and *Last Modified By*).
45 |
46 | ## **Actions**
47 |
48 | {: .middle} Un/Lock the profile to dis-/enable it from drop-down selection in project, you cannot lock default profile
49 |
50 | :pencil2: Update *Name* or *Slack Configuration*
51 |
52 | {: .middle} Delete the profile if it is no longer needed, only profiles with no associated projects can be deleted, you cannot delete default profile
53 |
54 |
55 | ## **Attaching the Profile to the Project**
56 |
57 | There are 2 ways to attach your alerting profile to the project:
58 |
59 | * [when project is created](../projects/creating-a-new-project) - just check *Add Alerting Profile* during project creation
60 | * [after project is created](../projects/project-details-k8s/#attachdetach-alerting-profile) - use drop-down selection *Actions* in project, click *Attach Alerting Profile* and choose which profile you want to attach to the project
61 |
62 |
63 | ## **Detach Alerting Profile**
64 |
65 | Use drop-down selection *Actions* in project, click *Detach Alerting Profile* and choose which profile you want to detach to the project.
66 |
--------------------------------------------------------------------------------
/docs/manager/alerting-profiles.md:
--------------------------------------------------------------------------------
1 | # **Alerting Profiles**
2 |
3 | If you want to receive notifications when there is some alert in you project, just set the alerting profile and attach it to the project.
4 |
5 |
6 | ## **Add Alerting Profile**
7 |
8 | If you want a new alerting profile, use{: .middle}button.
9 |
10 |
11 | 
12 | Figure.1: Add alerting profile
13 |
14 |
15 | *Name* - choose name for your alerting profile
16 |
17 | *Slack Configuration* - if you have created a [slack configuration](../slack-configuration), you can use it in profile
18 |
19 | *Reminder* - set the reminder for *None*, *HalfHour*, *Hourly*, *Daily*
20 |
21 | *E-mails* - receive notifications with e-mail
22 |
23 | *Webhooks* - use webhooks for application alert
24 |
25 | *Integrations* - set notifications for different apps (Opsgenie, Pagerduty, Splunk and MicrosoftTeams)
26 |
27 | ## **Alerting Profile overview**
28 |
29 |
30 | 
31 | Figure.2: Alerting profiles
32 |
33 |
34 | Each Profile is described by *ID*, *Name*, *Organization* *Name*, *Slack* *Configuration* *Name*, *Associated* *Projects*, *E-mail*, *Webhooks*, *Created* *By* and *Actions*.
35 |
36 | You can change or add more *E-mails* and *Webhooks*. To each webhooks you can add multiple headers (*Key, Value*).
37 |
38 | You can extend the table to see the last modification (*Last Modified* and *Last Modified By*).
39 |
40 | **Actions**
41 |
42 | {: .middle}/{: .middle} Un/Lock the profile to dis-/enable it from drop-down selection in project, you cannot lock default profile
43 |
44 | {: .middle} Update *Name*, *Slack Configuration* or *Reminder*
45 |
46 | {: .middle} Delete the profile if it is no longer needed, only profiles with no associated projects can be deleted, you **cannot delete default profile**
47 |
48 | ## **Attaching the Profile to the Project**
49 |
50 | There are 2 ways to attach your alerting profile to the project:
51 |
52 | * [when project is created](../projects/creating-a-new-project) - just check *Add Alerting Profile* during project creation
53 | * [after project is created](../projects/project-details-k8s/#attachdetach-alerting-profile) - use drop-down selection *Actions* in project, click *Attach Alerting Profile* and choose which profile you want to attach to the project
54 |
55 |
56 |
57 | ## **Detach Alerting Profile**
58 |
59 | Use drop-down selection *Actions* in project, click *Detach Alerting Profile* and choose which profile you want to detach to the project.
60 |
--------------------------------------------------------------------------------
/docs/manager/projects/kubernetes.md:
--------------------------------------------------------------------------------
1 | # **Kubernetes**
2 |
3 | To access **Kubernetes** go to Projects - Servers - *K8s Info* or use the K8s button in *Projects*.
4 |
5 |
6 | 
7 | Figure.1: Access Kubernetes
8 |
9 |
10 | In **Kubernetes** tab can be found:
11 |
12 | * **Nodes**
13 | * *Message*, *Reason*, *Status* and *Type*
14 | * **Deamon Set**
15 | * *Namespace*, *Name*, *Status* and *Age*
16 | * **Persistent Volume Claim**
17 | * *Namespace*, *Name*, *Phase*, *Size*, *Storage* *Class* *Name* and *Age*
18 | * **Deployment**
19 | * *Namespace*, *Name*, *Status* and *Age*
20 | * **Config Map**
21 | * *Namespace*, *Name* and *Age*
22 | * **Secret**
23 | * *Namespace*, *Name* and *Age*
24 | * **Sts**
25 | * *Namespace*, *Name*, *Status* and *Age*
26 | * __Service *__
27 | * *Namespace*, *Name*, *Type*, *External IP* and *Age*
28 | * **Pods**
29 | * *Namespace*, *Name*, *Node* *Name*, *Age*, *Status*, *Restart* *Count*, *Kill* *Pod*, *Terminal* and *Logs*
30 | * **Ingress**
31 | * *Namespace*, *Name*, *Hosts* and *Age*
32 | * **Ingress**
33 | * *Namespace*, *Name*, *Hosts* and *Age*
34 | * **CRD** (Custom Resource Definition)
35 | * *Name*, *Group*, *List Kind*, *Spec name kind*, *Labels* and *Age*
36 | * **PDB** (Pod Disruption Budgets)
37 | * *Namespace*, *Name* and *Created At*
38 |
39 | ???+ warning
40 | \*Please do NOT deploy any apps in monitoring **Service**, because Taikun uses the monitoring namespace heavily! And if you disable the monitoring, all pvc in monitoring will be deleted.
41 |
42 |
43 | 
44 | Figure.2: Kubernetes
45 |
46 |
47 | You can use sort buttons or search button in each section for easier searching.
48 |
49 | ???+ info
50 | Except **Pods** tab are all tabs for preview only.
51 |
52 | ### **Actions**
53 |
54 | {: .middle} Show description - for all tabs except *Nodes*
55 |
56 | ## **Pods**
57 |
58 | ### **Kill Pod**
59 |
60 | **Pod** can be killed with Kill Pod{: .middle} button.
61 |
62 | ### **Terminal**
63 |
64 | Open **Terminal** to control your container's.
65 |
66 |
67 | 
68 | Figure.3: Terminal
69 |
70 |
71 | ### **Logs**
72 |
73 | Logs record events happening in cluster. You can check the logs for more details. To search the logs visit [**Projects - Project Details - Logs**](../project-details-k8s/#logs).
74 |
75 |
76 | 
77 | Figure.4: Logs
78 |
79 |
--------------------------------------------------------------------------------
/docs/user/projects/kubernetes.md:
--------------------------------------------------------------------------------
1 | # **Kubernetes**
2 |
3 | To access **Kubernetes** go to Projects - Servers - *K8s Info* or use the K8s buttonin *Projects*.
4 |
5 |
6 | 
7 | Figure.1: Access kubernetes
8 |
9 |
10 | In **Kubernetes** tab can be found:
11 |
12 | * **Nodes**
13 | * *Message*, *Reason*, *Status* and *Type*
14 | * **Deamon Set**
15 | * *Namespace*, *Name*, *Status* and *Age*
16 | * **Persistent Volume Claim**
17 | * *Namespace*, *Name*, *Phase*, *Size*, *Storage* *Class* *Name* and *Age*
18 | * **Deployment**
19 | * *Namespace*, *Name*, *Status* and *Age*
20 | * **Config Map**
21 | * *Namespace*, *Name* and *Age*
22 | * **Secret**
23 | * *Namespace*, *Name* and *Age*
24 | * **Sts**
25 | * *Namespace*, *Name*, *Status* and *Age*
26 | * **Service**
27 | * *Namespace*, *Name*, *Type*, *External IP* and *Age*
28 | * **Pods**
29 | * *Namespace*, *Name*, *Node* *Name*, *Age*, *Status*, *Restart* *Count*, *Kill* *Pod*, *Terminal* and *Logs*
30 | * **Ingress**
31 | * *Namespace*, *Name*, *Hosts* and *Age*
32 | * **Ingress**
33 | * *Namespace*, *Name*, *Hosts* and *Age*
34 | * **CRD** (Custom Resource Definition)
35 | * *Name*, *Group*, *List Kind*, *Spec name kind*, *Labels* and *Age*
36 | * **PDB** (Pod Disruption Budgets)
37 | * *Namespace*, *Name* and *Created At*
38 |
39 | ???+ warning
40 | Please do NOT deploy any apps in monitoring **Service**, because Taikun uses the monitoring namespace heavily! And if you disable the monitoring, all pvc in monitoring will be deleted.
41 |
42 |
43 | 
44 | Figure.2: Kubernetes
45 |
46 |
47 | You can use sort buttons or search button in each section for easier searching.
48 |
49 | ???+ info
50 | Except **Pods** tab are all tabs for preview only.
51 |
52 |
53 | ### **Actions**
54 |
55 | {: .middle} Show description - for all tabs except *Nodes*
56 |
57 | ## **Pods**
58 |
59 | ### **Kill Pod**
60 |
61 | **Pod** can be killed with Kill Podbutton.
62 |
63 | ### **Terminal**
64 |
65 | Open **Terminal** to control your container/s.
66 |
67 |
68 | 
69 | Figure.3: Terminal
70 |
71 |
72 | ### **Logs**
73 |
74 | Logs record events happening in cluster. You can check the logs for more details. To search the logs visit [**Projects - Project Details - Logs**](../project-details-k8s/#logs).
75 |
76 |
77 | 
78 | Figure.4: Logs
79 |
80 |
--------------------------------------------------------------------------------
/docs/partner/projects/kubernetes.md:
--------------------------------------------------------------------------------
1 | # **Kubernetes**
2 |
3 | To access **Kubernetes** go to Projects - Servers - *K8s Info* or use the K8s button {: .middle} in *Projects*.
4 |
5 |
6 | 
7 | Figure.1: Access Kubernetes
8 |
9 |
10 | In **Kubernetes** tab can be found:
11 |
12 | * **Nodes**
13 | * *Message*, *Reason*, *Status* and *Type*
14 | * **Deamon Set**
15 | * *Namespace*, *Name*, *Status* and *Age*
16 | * **Persistent Volume Claim**
17 | * *Namespace*, *Name*, *Phase*, *Size*, *Storage* *Class* *Name* and *Age*
18 | * **Deployment**
19 | * *Namespace*, *Name*, *Status* and *Age*
20 | * **Config Map**
21 | * *Namespace*, *Name* and *Age*
22 | * **Secret**
23 | * *Namespace*, *Name* and *Age*
24 | * **Sts**
25 | * *Namespace*, *Name*, *Status* and *Age*
26 | * __Service *__
27 | * *Namespace*, *Name*, *Type*, *External IP* and *Age*
28 | * **Pods**
29 | * *Namespace*, *Name*, *Node* *Name*, *Age*, *Status*, *Restart* *Count*, *Kill* *Pod*, *Terminal* and *Logs*
30 | * **Ingress**
31 | * *Namespace*, *Name*, *Hosts* and *Age*
32 | * **Ingress**
33 | * *Namespace*, *Name*, *Hosts* and *Age*
34 | * **CRD** (Custom Resource Definition)
35 | * *Name*, *Group*, *List Kind*, *Spec name kind*, *Labels* and *Age*
36 | * **PDB** (Pod Disruption Budgets)
37 | * *Namespace*, *Name* and *Created At*
38 |
39 | ???+ warning
40 | Please do NOT deploy any apps in monitoring **Service**, because Taikun uses the monitoring namespace heavily! And if you disable the monitoring, all pvc in monitoring will be deleted.
41 |
42 |
43 | 
44 | Figure.2: Kubernetes
45 |
46 |
47 | You can use sort buttons or search button in each section for easier searching.
48 |
49 | ???+ info
50 | Except **Pods** tab are all tabs for preview only.
51 |
52 | ### **Actions**
53 |
54 | {: .middle} Show description - for all tabs except *Nodes*
55 |
56 | ## **Pods**
57 |
58 | ### **Kill Pod**
59 |
60 | **Pod** can be killed with Kill Pod{: .middle} button.
61 |
62 | ### **Terminal**
63 |
64 | Open **Terminal** to control your container's.
65 |
66 |
67 | 
68 | Figure.3: Terminal
69 |
70 |
71 | ### **Logs**
72 |
73 | Logs record events happening in cluster. You can check the logs for more details. To search the logs visit [**Projects - Project Details - Logs**](../project-details-k8s/#logs).
74 |
75 |
76 | 
77 | Figure.4: Logs
78 |
79 |
--------------------------------------------------------------------------------
/docs/user/my-profile.md:
--------------------------------------------------------------------------------
1 | # **My Profile**
2 |
3 | You can access your profile and its settings by clicking {: .middle} in the right upper corner of the page.
4 |
5 | ## **My Information**
6 |
7 | Here you can see your *User Name*, *Organization Name*, *Subscription End Date*, *E-mail* and *Role*.
8 |
9 |
10 | 
11 | Figure.1: My Information
12 |
13 |
14 | ## **Settings**
15 |
16 |
17 | 
18 | Figure.2: Settings
19 |
20 |
21 | In **Settings** section you can:
22 |
23 | * Change your password
24 | * Change your e-mail
25 | * Enable e-mail notifications from Taikun
26 | * Delete Account
27 |
28 | ### **Change E-mail**
29 |
30 | You just need to type your new e-mail, which you want to use in the future.
31 |
32 |
33 | 
34 | Figure.3: Change email
35 |
36 |
37 | Your e-mail address is changed but not confirmed, which is indicated with red cross :heavy_multiplication_x: next to your e-mail in *My Information*.
38 |
39 |
40 | 
41 | Figure.4: Not confirmed e-mail
42 |
43 |
44 | Clicking the *Confirm E-Mail* button will send the confirmation token to the e-mail address provided by you. Use the link in the mail to confirm your mail. If the link redirects you to homepage of Taikun, please login first and click the link in the e-mail again.
45 |
46 | Token expires after 1 hour and then you need to send it with *Confirm E-mail* button again.
47 |
48 |
49 | 
50 | Figure.5: Confirmed email
51 |
52 |
53 | ???+ info
54 | You can't change e-mail address until your current one is confirmed.
55 |
56 | ### **Change Password**
57 |
58 | To change your password, you have to insert your current password (old) and new (different) one.
59 |
60 | Password should contain at least 1 uppercase, 1 lowercase, 1 number, 1 non alphanumeric and minimum length is 6 signs (e.g. _Test@123_).
61 |
62 | ???+ warning
63 | If you receive an error during changing the password, please check it meets the conditions.
64 |
65 |
66 | 
67 | Figure.6: Change password
68 |
69 |
70 | ???+ warning
71 | After confirming the password (by clicking the update button), you are logged off and need to log in with the new password.
72 |
73 | ### **Delete Account**
74 |
75 | If you no longer wish to use Taikun, permanently delete your account. You will lose all access to Taikun.
76 |
--------------------------------------------------------------------------------
/docs/partner/users.md:
--------------------------------------------------------------------------------
1 | # **Users**
2 |
3 | In **Users** tab is list of users for each organization. If you want change your settings, visit [**My Profile**](../my-profile).
4 |
5 | For each user you can preview following:
6 |
7 | * Id
8 | * User Name
9 | * Display Name
10 | * E-mail
11 | * Role
12 | * Approved
13 | * Partner
14 | * Creation Name
15 | * Projects
16 | * Actions
17 |
18 |
19 | 
20 | Figure.1: Users
21 |
22 |
23 | #### **Find User**
24 |
25 | To find user easier you can sort the list by *User Name*, *Role* and *Organization Name* or use the *Search* bar above the list. To preview users from one organization, use *Select organization* button above left.
26 |
27 |
28 | ## **Add User**
29 |
30 | If you want to add a new user use the{: .middle} in the upper right corner.
31 |
32 | ???+ warning
33 | You can create a new user with **User** or **Manager** role.
34 |
35 |
36 | 
37 | Figure.2: Add User
38 |
39 |
40 | *User Name* - only alphanumeric characters and dash allowed
41 |
42 | *Display Name* - name displayed in upper right corner (upper/lowecase and spaces allowed), optional
43 |
44 | *E-mail* - new user's e-mail address
45 |
46 | *Organization* - enable button if you want to specify user's organization
47 |
48 | *Role* - enable button if you want to specify user's role
49 |
50 | ???+ danger
51 | Token will be sent to the provided e-mail address and it expires in **3 hours**.
52 |
53 | Token redirects the user to the page, where [a new password will be set](../login).
54 |
55 | ## **Projects**
56 |
57 | ## **Edit assigned** Projects
58 |
59 | Use pencil :pencil2: in *Projects* column to assign user a project and update your changes.
60 |
61 |
62 | 
63 | Figure.3: Assign
64 |
65 |
66 | ???+ warning
67 | You can assign a project to a user with **User** role only**.**
68 |
69 | ???+ info
70 | You can also assign the project to the user in [Projects](../projects).
71 |
72 |
73 | ## **Actions**
74 |
75 | ### **Edit User**
76 |
77 | *User Name* - change user's name
78 |
79 | *Display Name* - change name displayed in upper right corner (upper/lowecase and spaces allowed)
80 |
81 | *E-mail* - change user's e-mail address. User will then use this e-mail to login and can [confirm the e-mail](../my-profile#settings) in *My Profile*
82 |
83 | *Role* - switch role between *user* and *manager*
84 |
85 | *Force User to Reset Password* - user will be automatically logged out and receive mail with reset password request
86 |
87 | *User Disabled* - logout and lock the user
88 |
89 | *Approved by Partner* - if new user is not approved by partner, he won't be able to login
90 |
91 | ### **Delete User**
92 |
93 | If you want to delete some user, use the bin icon{: .middle}.
94 |
95 | ???+ warning
96 | You can delete a user with **User** or **Manager** role.
97 |
--------------------------------------------------------------------------------
/docs/manager/ticketing.md:
--------------------------------------------------------------------------------
1 | # **Ticketing**
2 |
3 | Ticketing is Taikun's supporting system for your issues, problems and questions. The page is divided into 4 section. In each you have different options.
4 |
5 | **1) New**
6 |
7 | * create a new ticket
8 | * update the ticket - *Name* and *Description* (only if you are owner/creator of the ticket)
9 | * delete the ticket (only if you are owner/creator of the ticket)
10 | * transfer the ticket to another user (*Manager* or *Partner* role only)
11 |
12 | **2) Open**
13 |
14 | * update the ticket - *Name* and *Description* (only if you are owner of the ticket)
15 | * transfer the ticket to another user (*Manager* or *Partner* role only)
16 | * add a comment
17 | * delete the comment - only the last one and added by your user
18 | * transfer the ticket to *Closed* (only if you are owner of the ticket)
19 |
20 | **3) Closed**
21 |
22 | * transfer the ticket to another user (*Manager* or *Partner* role only)
23 |
24 | **4) Archived**
25 |
26 | * transfer the ticket to another user (*Manager* or *Partner* role only)
27 |
28 | ## **How to raise a ticket**
29 |
30 |
31 | 
32 | Figure.1: Create a ticket
33 |
34 |
35 | Use plus button{: .middle} to create a new ticket. Fill in *Name* and *Description* for ticket. Please describe the problem as detailed as possible.
36 |
37 | Now you have 3 options:
38 |
39 | 1) Update the ticket, if you have any new information.
40 |
41 |
42 | 
43 | Figure.2: Update the ticket
44 |
45 |
46 | Just click on the ticket and update the fields you want to change.
47 |
48 | 2) Delete the ticket.
49 |
50 |
51 | 
52 | Figure.3: Delete the ticket
53 |
54 |
55 | Ticket can be only deleted by ticket owner and only with status *New*.
56 |
57 | 3) Let our guys to take care of the ticket.
58 |
59 | If you have nothing more to add to ticket, leave it in *New* section and it will be soon taken care of from our support.
60 |
61 |
62 | ### **Transfer ticket**
63 |
64 | Transfer the ticket to another user e.g. if you think he's more reliable to take care of the ticket. Ticket can be transferred to to another user (Manager or Partner) from your organization in section:
65 |
66 | * New
67 | * Open
68 | * Closed
69 |
70 | ## **How to deal with ticket with *Open* status**
71 |
72 | Once a ticket is in *Open* section, it is already taken care of or is waiting for the problem to be solved. You can add a comment to the ticket and you can do so only in *Open* status.
73 |
74 | Once the problem is solved you can transfer it to *Closed*.
75 |
76 |
77 | 
78 | Figure.4: Add comment and close the ticket
79 |
80 |
81 | After the issue is solved CSM will transfer the ticket to *Archived*.
82 |
--------------------------------------------------------------------------------
/docs/partner/dashboard/README.md:
--------------------------------------------------------------------------------
1 | # Dashboard
2 |
3 | You can access the Dashboard by clicking upper left Taikun logo or the **Dashboard** in the tabs (under User):
4 |
5 |
6 | 
7 | Figure.1: Dashboard and other tabs
8 |
9 |
10 | On Dashboard you can find summary of following:
11 |
12 | * [**Select Organization**](select-organization/)
13 | * [**Users**](users/)
14 | * [**Charts**](charts/) (Projects, Server Statuses, Servers, Cloud Credential, Nodes Overview, Pod overview, Project with Alerts and Kubernetes Health)
15 | * [**Tables**](tables/) (Kubernetes, Project Resource Allocation and Recent Events)
16 |
17 | ## **Header**
18 |
19 | On every page in the upper right corner you can see:
20 |
21 |
22 | 
23 | Figure.2: Header icons
24 |
25 |
26 |
27 | 
28 |
29 | * logo of your organization
30 |
31 | 
32 |
33 | * link to this documentation, variable for every page
34 |
35 | 
36 |
37 | * global search - search for projects or servers, case insensitive, can be open with *double shift* at every page
38 | * Taikun search - search through projects, users, servers, credentials, profiles or organizations
39 | * Kubernetes Search - have to be checked (as searching kubernetes takes longer time) and search through all active kubernetes
40 |
41 | 
42 |
43 | * Real-time notifications
44 | * General - notifications about changes made in projects (e.g. created project, enable monitoring, change of status), for details see [**Dashboard - Recent Events**](tables#recent-events)
45 |
46 |
47 | 
48 | Figure.3: General events
49 |
50 |
51 | * Alerts - new/persisting (red) or resolved (green) alerts, see [**Projects - Alerts**](../projects/project-details#alerts)
52 |
53 |
54 | 
55 | Figure.4: Alerts
56 |
57 |
58 | 
59 |
60 | * your information and setting, see [**My Profile**](../my-profile)
61 | * if your display name is changed, the name can be seen in the corner{: .middle}
62 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js:
--------------------------------------------------------------------------------
1 | !function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
--------------------------------------------------------------------------------
/hooks/fsmonitor-watchman.sample:
--------------------------------------------------------------------------------
1 | #!/usr/bin/perl
2 |
3 | use strict;
4 | use warnings;
5 | use IPC::Open2;
6 |
7 | # An example hook script to integrate Watchman
8 | # (https://facebook.github.io/watchman/) with git to speed up detecting
9 | # new and modified files.
10 | #
11 | # The hook is passed a version (currently 1) and a time in nanoseconds
12 | # formatted as a string and outputs to stdout all files that have been
13 | # modified since the given time. Paths must be relative to the root of
14 | # the working tree and separated by a single NUL.
15 | #
16 | # To enable this hook, rename this file to "query-watchman" and set
17 | # 'git config core.fsmonitor .git/hooks/query-watchman'
18 | #
19 | my ($version, $time) = @ARGV;
20 |
21 | # Check the hook interface version
22 |
23 | if ($version == 1) {
24 | # convert nanoseconds to seconds
25 | # subtract one second to make sure watchman will return all changes
26 | $time = int ($time / 1000000000) - 1;
27 | } else {
28 | die "Unsupported query-fsmonitor hook version '$version'.\n" .
29 | "Falling back to scanning...\n";
30 | }
31 |
32 | my $git_work_tree;
33 | if ($^O =~ 'msys' || $^O =~ 'cygwin') {
34 | $git_work_tree = Win32::GetCwd();
35 | $git_work_tree =~ tr/\\/\//;
36 | } else {
37 | require Cwd;
38 | $git_work_tree = Cwd::cwd();
39 | }
40 |
41 | my $retry = 1;
42 |
43 | launch_watchman();
44 |
45 | sub launch_watchman {
46 |
47 | my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
48 | or die "open2() failed: $!\n" .
49 | "Falling back to scanning...\n";
50 |
51 | # In the query expression below we're asking for names of files that
52 | # changed since $time but were not transient (ie created after
53 | # $time but no longer exist).
54 | #
55 | # To accomplish this, we're using the "since" generator to use the
56 | # recency index to select candidate nodes and "fields" to limit the
57 | # output to file names only.
58 |
59 | my $query = <<" END";
60 | ["query", "$git_work_tree", {
61 | "since": $time,
62 | "fields": ["name"]
63 | }]
64 | END
65 |
66 | print CHLD_IN $query;
67 | close CHLD_IN;
68 | my $response = do {local $/; };
69 |
70 | die "Watchman: command returned no output.\n" .
71 | "Falling back to scanning...\n" if $response eq "";
72 | die "Watchman: command returned invalid output: $response\n" .
73 | "Falling back to scanning...\n" unless $response =~ /^\{/;
74 |
75 | my $json_pkg;
76 | eval {
77 | require JSON::XS;
78 | $json_pkg = "JSON::XS";
79 | 1;
80 | } or do {
81 | require JSON::PP;
82 | $json_pkg = "JSON::PP";
83 | };
84 |
85 | my $o = $json_pkg->new->utf8->decode($response);
86 |
87 | if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) {
88 | print STDERR "Adding '$git_work_tree' to watchman's watch list.\n";
89 | $retry--;
90 | qx/watchman watch "$git_work_tree"/;
91 | die "Failed to make watchman watch '$git_work_tree'.\n" .
92 | "Falling back to scanning...\n" if $? != 0;
93 |
94 | # Watchman will always return all files on the first query so
95 | # return the fast "everything is dirty" flag to git and do the
96 | # Watchman query just to get it over with now so we won't pay
97 | # the cost in git to look up each individual file.
98 | print "/\0";
99 | eval { launch_watchman() };
100 | exit 0;
101 | }
102 |
103 | die "Watchman: $o->{error}.\n" .
104 | "Falling back to scanning...\n" if $o->{error};
105 |
106 | binmode STDOUT, ":utf8";
107 | local $, = "\0";
108 | print @{$o->{files}};
109 | }
110 |
--------------------------------------------------------------------------------
/docs/user/projects/README.md:
--------------------------------------------------------------------------------
1 | # Projects
2 |
3 | On the **Projects** tab, you can preview all existing projects to which you are assigned.
4 |
5 |
6 | 
7 | Figure.1: Projects
8 |
9 |
10 | Each project is described by following information:
11 |
12 | ### **ID, Project Name, Organization Name**
13 |
14 | Changeless descriptions for each Project.
15 |
16 | ### **View**
17 | Link to your *Kubernetes* or *Virtual Machines* part of your project.
18 |
19 | ### **Status**
20 |
21 | Status shows the current status and actions of your servers in the project in real-time. Below are all possible statuses listed with their description.
22 |
23 | * *Ready*
24 | * all servers in the project are ready without any issues
25 | * *Deleting*
26 | * one or more servers in your current project are being deleted
27 | * *Failure*
28 | * one or more servers failed during the action for any reason (for instance during boot or creation)
29 | * *Pending*
30 | * one or more servers are in a pending state, which means that, for instance, they have not yet been created on the hosted platform
31 | * *Updating*
32 | * one or more servers in the project are being updated by Taikun during the creation process
33 | * *Upgrading*
34 | * one or more servers upgrade Kubernetes, cloud credentials or others
35 |
36 | ### **Health**
37 |
38 | This column describes a condition of the project cluster. Keep in mind that a good-working project should be always **Healthy**.
39 |
40 | * *Healthy*
41 | * cluster id without any further problems
42 | * *None*
43 | * cluster is probably empty, there is nothing to check
44 | * *Unhealthy*
45 | * problems with connection to Kubernetes or Monitoring API
46 | * *Unknown*
47 | * cannot connect Kubernetes API
48 | * *Warning*
49 | * minor issues
50 |
51 | ### **Creation Date**
52 |
53 | The exact time stamp when the project was created.
54 |
55 | ### **Kubernetes Version**
56 |
57 | Shows current Kubernetes version for each project.
58 |
59 | ### **Cloud Type**
60 |
61 | Shows which provider is hosting your project cluster
62 |
63 | * AWS
64 | * Azure
65 | * OpenStack
66 |
67 | ### **K8's**
68 |
69 | {: .middle} Kubernates active
70 |
71 | {: .middle} Kubernetes not active
72 |
73 | ### **Expiration Date**
74 |
75 | See durability of a project. By default, the expiration date of project is set to infinity.
76 |
77 | ???+ warning
78 | After the expiration date, your project is **NOT** affected, deleted or lock. It will stays the same.
79 |
80 | ### **Show hidden columns**
81 |
82 | Click small arrow on the right side of the table to see more details.
83 |
84 |
85 | 
86 | Figure.2: Expanded table
87 |
88 |
89 | Expand the table to see:
90 |
91 | * Alerts count - number of firing alerts in a project
92 | * Created By
93 | * Last Modified
94 | * Last Modified By
95 |
96 | ## **Sorting**
97 |
98 | Projects can be sorted by *Project Name*, *Status*, *Creation Date*, *K8s version*, *Cloud Type* and *Expiration Date*. Also the search bar can be used to find some specific project.
99 |
--------------------------------------------------------------------------------
/docs/partner/ticketing.md:
--------------------------------------------------------------------------------
1 | # **Ticketing**
2 |
3 | *Select organization* for a better overview of Ticketing.
4 |
5 | Ticketing is Taikun's supporting system for your issues, problems and questions. The page is divided into 4 section. In each you have different options.
6 |
7 | **1) ** **New**
8 |
9 | * create a new ticket
10 | * update the ticket - *Name* and *Description* (only if you are owner/creator of the ticket)
11 | * delete the ticket (only if you are owner/creator of the ticket)
12 | * **t**ransfer the ticket to another user (*Manager* or *Partner* role only)
13 |
14 | **2) ** **Open**
15 |
16 | * update the ticket - *Name* and *Description* (only if you are owner of the ticket)
17 | * transfer the ticket to another user (*Manager* or *Partner* role only)
18 | * add a comment
19 | * delete the comment - only the last one and added by your user
20 | * transfer the ticket to *Closed* (only if you are owner of the ticket)
21 |
22 | **3) ** **Closed**
23 |
24 | * transfer the ticket to another user (*Manager* or *Partner* role only)
25 |
26 | **4) ** **Archived**
27 |
28 | * transfer the ticket to another user (*Manager* or *Partner* role only)
29 |
30 |
31 | ## **How to raise a ticket**
32 |
33 |
34 |
35 | 
36 | Figure.1: Create a ticket
37 |
38 |
39 |
40 | Use plus button{: .middle} to create a new ticket. Fill in *Name* and *Description* for ticket. Please describe the problem as detailed as possible.
41 |
42 | Now you have 3 options:
43 |
44 | 1\) Update the ticket, if you have any new information.
45 |
46 |
47 |
48 | 
49 | Figure.2: Update the ticket
50 |
51 |
52 |
53 | Just click on the ticket and update the fields you want to change.
54 |
55 | 2\) Delete the ticket.
56 |
57 |
58 |
59 | 
60 | Figure.3: Delete the ticket
61 |
62 |
63 |
64 | Ticket can be only deleted by ticket owner and only with status *New*.
65 |
66 | 3\) Let our guys to take care of the ticket.
67 |
68 | If you have nothing more to add to ticket, leave it in *New* section and it will be soon taken care of from our support.
69 |
70 | ## **Transfer ticket**
71 |
72 | Transfer the ticket to another user e.g. if you think he's more reliable to take care of the ticket. Ticket can be transferred to to another user (Manager or Partner) from your organization in section:
73 |
74 | * New
75 | * Open
76 | * Closed
77 |
78 | ## **How to deal with ticket with _Open_ status**
79 |
80 | Once a ticket is in *Open* section, it is already taken care of or is waiting for the problem to be solved. You can add a comment to the ticket and you can do so only in *Open* status.
81 |
82 | Once the problem is solved you can transfer it to *Closed*.
83 |
84 |
85 | 
86 | Figure.4: Add comment and close the ticket
87 |
88 |
89 | After the issue is solved CSM will transfer the ticket to *Archived*.
90 |
--------------------------------------------------------------------------------
/docs/tech-book/loadbalancers.md:
--------------------------------------------------------------------------------
1 | # **LoadBalancers**
2 |
3 | ???+ warning
4 | LoadBalancing Flavor should have at least:
5 |
6 | * 1GB RAM
7 | * 1 vCPU
8 |
9 | ### Prepare the configuration file _prod.yaml_
10 |
11 | ``` yaml
12 | yaml:
13 | tenantName: "kubernetes"
14 | clusterName: ""
15 | subnetId: ""
16 | flavorId: ""
17 | publicKey: ""
18 | floatingNetworkId: ""
19 | identityEndpoint: ""
20 | userName: ">"
21 | password: ""
22 | domainName: "default"
23 | keepalivedRouterIdRange: "1-255"
24 | ssh_key: |
25 | SSH_PRIVATE_KEY
26 | ```
27 |
28 | ### Add Itera Helm Chart Repository
29 |
30 | `helm repo add itera https://repo.itera.io/repository/itera --kubeconfig=admin.conf`
31 |
32 | ``` bash
33 | WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: admin.conf
34 | WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: admin.conf
35 | "itera" has been added to your repositories
36 | ```
37 | ### Install *taikun-lb* using *helm*
38 |
39 | ???+ danger
40 | *taikun-lb* is only available for **OpenStack** with **Octavia disabled**. You need to add image [https://repo.itera.io/repository/images/taikun-lb.qcow2](https://repo.itera.io/repository/images/taikun-lb.qcow2) to OpenStack with **tag** "taikun-lb".
41 |
42 | Command to add an image to OpenStack:
43 |
44 | `openstack image create --disk-format qcow2 --container-format bare --private --file taikun-lb.qcow2 --tag taikun-lb --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi taikun-lb`
45 |
46 | `helm upgrade --install itera-lb -f prod.yaml --namespace=kube-system itera/taikun-lb --kubeconfig=admin.conf`
47 |
48 | ``` bash
49 | WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: admin.conf
50 | WARNING: Kubernetes configuration file is world-readable. This is insecure. Location: admin.conf
51 | Release "itera-lb" has been upgraded. Happy Helming!
52 | NAME: itera-lb
53 | LAST DEPLOYED: Thu Mar 4 11:28:31 2021
54 | NAMESPACE: default
55 | STATUS: deployedInfrastructure removal
56 |
57 | REVISION: 4
58 | TEST SUITE: None
59 | ```
60 |
61 | ### Check *taikun-lb* is installed
62 |
63 | `export KUBECONFIG=admin.conf; kubectl get pod`
64 |
65 | ```
66 | NAME READY STATUS RESTARTS AGE
67 | itera-lb-deployment-69c44bb45c-wtwgm 1/1 Running 0 38m
68 | ```
69 | ### Install a test application (in this case *wordpress* from bitnami)
70 |
71 | `helm install test-lb bitnami/wordpress --kubeconfig=admin.conf`
72 |
73 | ### Wait for the service to get a floating IP assigned
74 |
75 | `kubectl get svc test-lb-wordpress`
76 |
77 | ```
78 | NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
79 | test-lb-wordpress LoadBalancer 10.233.55.232 10.3.228.10 80:30634/TCP,443:31760/TCP 2m27s
80 | ```
81 |
82 | To enable proxy service for the service, add the following annotation to the service:
83 |
84 | ```
85 | loadbalancer.taikun.cloud/proxy-protocol: "true"
86 | ```
87 |
88 | This is the way to restrict which IP has access to the service (https://www.haproxy.com/blog/haproxy/proxy-protocol/) for example:
89 |
90 | ``` yaml
91 | apiVersion: v1
92 | kind: Service
93 | metadata:
94 | annotations:
95 | loadbalancer.taikun.cloud/proxy-protocol: "true"
96 | meta.helm.sh/release-name: test-lb
97 | meta.helm.sh/release-namespace: default
98 | ...
99 | ```
100 |
--------------------------------------------------------------------------------
/docs/manager/cloud-credentials.md:
--------------------------------------------------------------------------------
1 | # **Cloud Credentials**
2 |
3 | See all projects for each hosting provider:
4 |
5 | * AWS
6 | * Azure
7 | * OpenStack
8 |
9 |
10 | 
11 | Figure.1: Cloud credentials
12 |
13 |
14 | Cloud can be empty but also may include multiple projects. Each Cloud has different specifics, can be sorted differently and some columns can be expanded.
15 |
16 | You can expand all tables to see the last modification made (*Created By*, *Last Modified*, *Last Modified By*).
17 |
18 |
19 | 
20 | Figure.2: Detailed CC for openstack
21 |
22 |
23 | ## **Actions**
24 |
25 | {: .middle} Make default - choose credentials which will be then filled during project creation, lighter color indicates selected credentials
26 |
27 | {: .middle} Update Cloud Credentials - change the credentials which are not locked
28 |
29 | {: .middle} Navigate to OpenStack/Azure Quota Charts - Preview the quotas from your cloud
30 |
31 | * you can also filter Azure usage quotas by *cpu*, *storage*, *gallery* or *general*
32 |
33 |
34 | 
35 | Figure.3: OpenStack/Azure Quotas
36 |
37 |
38 | {: .middle}/{: .middle} Un/lock credentials - if you lock the credentials, you can't use them for new Project, edit or delete them
39 |
40 | {: .middle} Delete - delete empty and unlocked credentials
41 |
42 | ## **New Cloud Credentials**
43 |
44 | Use{: .middle} button to add Cloud Credentials. Choose which Cloud you want to add and fill in the required data. After you add new Cloud Credentials, you can use the Cloud as storage for your new projects.
45 |
46 | ### **Requirements for OpenStack**
47 |
48 | ???+ warning
49 |
50 | For a good working OpenStack in Taikun, you have to create image in OpenStack. Requirement is an Ubuntu 20 image and we recommend using a recent kernel, e.g. a base Ubuntu image with hwe kernel here: [https://repo.itera.io/repository/images/taikun-image.qcow2](https://repo.itera.io/repository/images/taikun-image.qcow2)
51 |
52 | To use the image in Taikun you have to use two **tags** "taikun" and "ubuntu{number}”. By default Taikun will take image with the latest {number}.
53 |
54 | Command to add an image to openstack:
55 |
56 | `openstack image create --disk-format qcow2 --container-format bare --public --tag taikun --tag ubuntu20.04 --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi taikun-focal-image --file taikun-image.qcow2`
57 |
58 | See [**Projects - Create A New Project**](../projects/creating-a-new-project) or [**Guidelines - Add Cloud Credentials**](../../guidelines/create-credentials).
59 |
--------------------------------------------------------------------------------
/docs/manager/dashboard/README.md:
--------------------------------------------------------------------------------
1 | # Dashboard
2 |
3 | You can access the Dashboard by clicking upper left Taikun logo or the **Dashboard** in the tabs (under User):
4 |
5 |
6 | 
7 | Figure.1: Dashboard
8 |
9 |
10 | On Dashboard you can find:
11 |
12 | * [**Users**](users/)
13 | * [**Pie charts**](charts/) (Projects, Server Statuses, Servers, Cloud Credential, Nodes Overview, Pod overview, Project with Alerts and Kubernetes Health)
14 | * [**Tables**](tables/) (Kubernetes, Project Resource Allocation and Recent Events)
15 |
16 | ## **Header**
17 |
18 | On every page in the upper right corner you can see:
19 |
20 |
21 | 
22 | Figure.2: Header icons
23 |
24 |
25 | 
26 |
27 | * logo of your organization
28 |
29 | 
30 |
31 | * link to this documentation, variable for every page
32 |
33 | 
34 |
35 | * global search - search for projects or servers, case insensitive, can be open with *double shift* at every page
36 | * Taikun search - search through projects, users, servers, credentials or profiles
37 | * Kubernetes Search - have to be checked (as searching kubernetes takes longer time) and search through all active kubernetes
38 |
39 | 
40 |
41 | * real-time notifications
42 | * General - notifications about changes made in projects (e.g. created project, enable monitoring, change of status), for details see [**Dashboard - Recent Events**](tables#recent-events)
43 |
44 |
45 | 
46 | Figure.3: General notifications
47 |
48 |
49 | * Alerts - new/persisting (red) or resolved (green) alerts, see [**Projects - Alerts**](../projects/project-details#alerts)
50 |
51 |
52 | 
53 | Figure.4: Notifications alerts
54 |
55 |
56 | * Tickets - you will be notified when your ticket has been commented or change the status, for details see [**Ticketing**](../ticketing/)
57 |
58 |
59 | 
60 | Figure.5: Notifications tickets
61 |
62 |
63 | 
64 |
65 | * your information and setting, see [**My Profile**](../my-profile/)
66 | * if your display name is changed, the name can be seen in the corner{: .middle}
67 |
--------------------------------------------------------------------------------
/docs/manager/dashboard/tables.md:
--------------------------------------------------------------------------------
1 | # **Tables**
2 |
3 | ## **Kubernetes**
4 |
5 | The **Kubernetes** chart consists of 3 main sections:
6 |
7 | * Project
8 | * Nodes
9 | * Pods
10 |
11 |
12 | 
13 | Figure.1: Kubernetes
14 |
15 |
16 | **Projects**
17 |
18 | In the right corner you can switch between **Projects** with Kubernetes (for your organization).
19 |
20 | **Nodes**
21 |
22 | Lists Nodes by *Name* and shows status of *Disk*, *Memory*, *PIDs* and *Ready* (Status of the Node).
23 |
24 | {: .middle} Status: working
25 |
26 | {: .middle} Status: not wokring
27 |
28 | **Pods**
29 |
30 | For every **Pod** (characterized by *Pod Name*) is listed its *Namespace*, *Node*, *Restart* *Count*, *Age* and *Status*.
31 |
32 | If the status is failed, you can check the pod in Kubernetes section - use the link in *Nodes - Metadata Name* or *Pods - Pod Name*.
33 |
34 |
35 | 
36 | Figure.2: Node/Pod failure
37 |
38 |
39 | For more information see [**Projects - Kubernetes**](../../projects/kubernetes).
40 |
41 | ## **Project Resource Allocation**
42 |
43 | In this section you can see how the usage of *CPUs*, *RAM* and *Disk* *Size* are divided between the individual projects. The last column *Total* shows the sum of all projects for *CPU*, *RAM* or *Disk Size*. You can also sort *CPU*, *RAM* and *Disk Size* by *Usage* or *Limit* (if there is any).
44 |
45 |
46 | 
47 | Figure.3: Project resource allocation
48 |
49 |
50 | The pie charts shows percentage of usage of each project:
51 |
52 | {: .middle} Green - small usage
53 |
54 | {: .middle} Yellow - normal usage
55 |
56 | {: .middle} Orange - higher usage
57 |
58 | {: .middle} Red - full usage
59 |
60 | Limits can be changed in [**Project Quotas**](../../project-quotas).
61 |
62 | ## **Recent Events**
63 |
64 | Lists 10 events from the latest. Green ones are successful events, red ones are failed. The update button is in the right corner.
65 |
66 |
67 | 
68 | Figure.4: Recent events
69 |
70 |
71 | By clicking *Show all* you are redirected to [**Audit Log**](../../audit-log).
72 |
73 | ???+ warning
74 | If there is a real-time change, you are notified through **Notifications** :bell:.
75 |
--------------------------------------------------------------------------------
/docs/partner/cloud-credentials.md:
--------------------------------------------------------------------------------
1 | # **Cloud Credentials**
2 |
3 | *Select organization* for a better overview of Cloud Credentials.
4 |
5 | See all projects for each hosting provider:
6 |
7 | * AWS
8 | * Azure
9 | * OpenStack
10 |
11 |
12 | 
13 | Figure.1: Cloud Credentials
14 |
15 |
16 | Cloud can be empty but also may include multiple projects. Each Cloud has different specifics, can be sorted differently and some columns can be expanded.
17 |
18 | You can expand all tables to see the last modification made (*Created By*, *Last Modified*, *Last Modified By*).
19 |
20 |
21 | 
22 | Figure.2: Detailed CC for OpenStack
23 |
24 |
25 | ## **Actions**
26 |
27 | {: .middle} Make default - choose credentials which will be then filled during project creation, lighter color indicates selected credentials
28 |
29 | :pencil2: Update Cloud Credentials - change the credentials which are not locked
30 |
31 | Navigate to OpenStack/Azure Quota Charts - Preview the quotas from your cloud
32 |
33 | * you can also filter Azure usage quotas by *cpu*, *storage*, *gallery* or *general*
34 |
35 |
36 |
37 | 
38 | Figure.3: OpenStack Quotas
39 |
40 |
41 |
42 | {: .middle}/{: .middle} Un/lock credentials - if you lock the credentials, you can't use them in new Project, edit or delete them
43 |
44 | {: .middle} Delete - delete empty and unlocked credentials
45 |
46 |
47 | ## **New Cloud Credentials**
48 |
49 | Use {: .middle} button to Add Cloud Credentials. Choose which Cloud you want to add and fill in the required data. After you add new Cloud Credentials, you can use the Cloud as storage for your new projects.
50 |
51 |
52 | ## **Requirements for Openstack**
53 |
54 | ???+ danger
55 | For a good working OpenStack in Taikun, you have to create image in OpenStack. Requirement is an Ubuntu 20 image and we recommend using a recent kernel, e.g. a base Ubuntu image with hwe kernel here: [https://repo.itera.io/repository/images/taikun-image.qcow2](https://repo.itera.io/repository/images/taikun-image.qcow2)
56 |
57 | To use the image in Taikun you have to use the tags "taikun" and "ubuntu{number}”. By default Taikun will take image with the latest {number}.
58 |
59 | Command to add an image to openstack:`openstack image create --disk-format qcow2 --container-format bare --public --tag taikun --tag ubuntu20.04 --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi taikun-focal-image --file taikun-image.qcow2`
60 |
61 |
62 | See [Projects - **Create A New Project**](../projects/creating-a-new-project) or [Guidelines - **Add Cloud Credentials**](../../guidelines/add-cloud-credentials).
63 |
--------------------------------------------------------------------------------
/hooks/update.sample:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # An example hook script to block unannotated tags from entering.
4 | # Called by "git receive-pack" with arguments: refname sha1-old sha1-new
5 | #
6 | # To enable this hook, rename this file to "update".
7 | #
8 | # Config
9 | # ------
10 | # hooks.allowunannotated
11 | # This boolean sets whether unannotated tags will be allowed into the
12 | # repository. By default they won't be.
13 | # hooks.allowdeletetag
14 | # This boolean sets whether deleting tags will be allowed in the
15 | # repository. By default they won't be.
16 | # hooks.allowmodifytag
17 | # This boolean sets whether a tag may be modified after creation. By default
18 | # it won't be.
19 | # hooks.allowdeletebranch
20 | # This boolean sets whether deleting branches will be allowed in the
21 | # repository. By default they won't be.
22 | # hooks.denycreatebranch
23 | # This boolean sets whether remotely creating branches will be denied
24 | # in the repository. By default this is allowed.
25 | #
26 |
27 | # --- Command line
28 | refname="$1"
29 | oldrev="$2"
30 | newrev="$3"
31 |
32 | # --- Safety check
33 | if [ -z "$GIT_DIR" ]; then
34 | echo "Don't run this script from the command line." >&2
35 | echo " (if you want, you could supply GIT_DIR then run" >&2
36 | echo " $0 )" >&2
37 | exit 1
38 | fi
39 |
40 | if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
41 | echo "usage: $0 " >&2
42 | exit 1
43 | fi
44 |
45 | # --- Config
46 | allowunannotated=$(git config --bool hooks.allowunannotated)
47 | allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
48 | denycreatebranch=$(git config --bool hooks.denycreatebranch)
49 | allowdeletetag=$(git config --bool hooks.allowdeletetag)
50 | allowmodifytag=$(git config --bool hooks.allowmodifytag)
51 |
52 | # check for no description
53 | projectdesc=$(sed -e '1q' "$GIT_DIR/description")
54 | case "$projectdesc" in
55 | "Unnamed repository"* | "")
56 | echo "*** Project description file hasn't been set" >&2
57 | exit 1
58 | ;;
59 | esac
60 |
61 | # --- Check types
62 | # if $newrev is 0000...0000, it's a commit to delete a ref.
63 | zero="0000000000000000000000000000000000000000"
64 | if [ "$newrev" = "$zero" ]; then
65 | newrev_type=delete
66 | else
67 | newrev_type=$(git cat-file -t $newrev)
68 | fi
69 |
70 | case "$refname","$newrev_type" in
71 | refs/tags/*,commit)
72 | # un-annotated tag
73 | short_refname=${refname##refs/tags/}
74 | if [ "$allowunannotated" != "true" ]; then
75 | echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
76 | echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
77 | exit 1
78 | fi
79 | ;;
80 | refs/tags/*,delete)
81 | # delete tag
82 | if [ "$allowdeletetag" != "true" ]; then
83 | echo "*** Deleting a tag is not allowed in this repository" >&2
84 | exit 1
85 | fi
86 | ;;
87 | refs/tags/*,tag)
88 | # annotated tag
89 | if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
90 | then
91 | echo "*** Tag '$refname' already exists." >&2
92 | echo "*** Modifying a tag is not allowed in this repository." >&2
93 | exit 1
94 | fi
95 | ;;
96 | refs/heads/*,commit)
97 | # branch
98 | if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
99 | echo "*** Creating a branch is not allowed in this repository" >&2
100 | exit 1
101 | fi
102 | ;;
103 | refs/heads/*,delete)
104 | # delete branch
105 | if [ "$allowdeletebranch" != "true" ]; then
106 | echo "*** Deleting a branch is not allowed in this repository" >&2
107 | exit 1
108 | fi
109 | ;;
110 | refs/remotes/*,commit)
111 | # tracking branch
112 | ;;
113 | refs/remotes/*,delete)
114 | # delete tracking branch
115 | if [ "$allowdeletebranch" != "true" ]; then
116 | echo "*** Deleting a tracking branch is not allowed in this repository" >&2
117 | exit 1
118 | fi
119 | ;;
120 | *)
121 | # Anything else (is there anything else?)
122 | echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
123 | exit 1
124 | ;;
125 | esac
126 |
127 | # --- Finished
128 | exit 0
129 |
--------------------------------------------------------------------------------
/site/assets/javascripts/lunr/min/lunr.sv.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Lunr languages, `Swedish` language
3 | * https://github.com/MihaiValentin/lunr-languages
4 | *
5 | * Copyright 2014, Mihai Valentin
6 | * http://www.mozilla.org/MPL/
7 | */
8 | /*!
9 | * based on
10 | * Snowball JavaScript Library v0.3
11 | * http://code.google.com/p/urim/
12 | * http://snowball.tartarus.org/
13 | *
14 | * Copyright 2010, Oleg Mazko
15 | * http://www.mozilla.org/MPL/
16 | */
17 |
18 | !function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
--------------------------------------------------------------------------------
/docs/manager/projects/project-details-vms.md:
--------------------------------------------------------------------------------
1 | # **Project Details - VMs**
2 |
3 | By clicking *VMs* button in Servers page or VMs *View* in Project page you are redirected to the **VMs Servers**. Here you can see all virtual machines for the project with their description.
4 |
5 |
6 | 
7 | Figure.1: Accessing project's details -VMs
8 |
9 |
10 | ## **Project Info**
11 |
12 | Under **Servers** title is a brief description of the project - such as *Project Name* (with locked/unlocked image), *Project Status*, *Cloud Type* or *Cloud Credentials*.
13 |
14 |
15 | 
16 | Figure.2: Project info
17 |
18 |
19 | When there is some operation going on, you can also see here ETC=Estimated Time to Complete. It is approx time (in minutes) until the cluster will be completed.
20 |
21 |
22 | 
23 | Figure.3: ETC
24 |
25 |
26 | ## **Servers**
27 |
28 | Every Server is described by *ID*, *Name*, *Flavor*, *IP Address*, *Public IP Address*, *Status*, *Profile*, *Image* and *Created*. If you expand the table, you can see the last modification made (*Created By*, *Last Modified*, *Last Modified By*).
29 |
30 |
31 | 
32 | Figure.4: Servers for project
33 |
34 |
35 | Server status can be:
36 |
37 | * Deleting
38 | * Failure
39 | * Pending
40 | * Pending Delete
41 | * Pending Upgrade
42 | * Ready
43 | * Updating
44 | * Upgrading
45 |
46 |
47 | ## **Actions**
48 |
49 | ### **Commit**
50 |
51 | Sends the changes to the repository.
52 |
53 | Once the cluster is committed you will see ETC in project info.
54 |
55 | ### **Repair**
56 |
57 | When the server/s are *Failed*, use repair button.
58 |
59 |
60 | 
61 | Figure.5: Repair
62 |
63 |
64 | ### **Add VM**
65 |
66 | To create a new server click{: .middle} button and fill all the fields. You, as user, can't delete servers - think twice which and how many servers you want to create.
67 |
68 | ???+ warning
69 | For creating the VM: ***Image*** has to be bound and ***Stanalone Profile*** has to be created.
70 |
71 |
72 | 
73 | Figure.6: Add VM
74 |
75 |
76 | *Server Name* - only alphanumeric characters and dash are allowed, 1-30 characters
77 |
78 | ???+ warning
79 | Letters must be lowercase!
80 |
81 | *Flavor* - choose from the list of offered flavors (e.g. n0.large)
82 |
83 | *Image* - choose from the list of offered images (e.g. ubuntu-20.04)
84 |
85 | *Volume Size* - minimal size is automatically filled in when you select image, you can only increase the volume size number
86 |
87 | *Volume Type* - optional, choose from drop down selection
88 |
89 | *Profile* - choose *Standalone profile*
90 |
91 | *Count* - how many VMs you want to create
92 |
93 | *Public IP* - check if you want to enable public IP
94 |
95 | *Cloud-init* - optional, if set it will override the ssh key from standalone profile
96 |
97 | *Tags* - enter *Key* and *Value*
98 |
99 | *Disk* - enter *Name*, choose *Size* and select *Volume Type*
100 |
101 |
102 | ???+ info
103 | If the project is locked:lock:, you **can't** use *Commit*, *Repair* or *Add VM*.
104 |
105 |
--------------------------------------------------------------------------------
/docs/partner/projects/project-details-vms.md:
--------------------------------------------------------------------------------
1 | # **Project Details - VMs**
2 |
3 | By clicking *VMs* button in Servers page or VMs *View* in Project page you are redirected to the **VMs Servers**. Here you can see all virtual machines for the project with their description.
4 |
5 |
6 | 
7 | Figure.1: Accessing Project's details - VMs
8 |
9 |
10 | ## **Project Info**
11 |
12 | Under **Servers** title is a brief description of the project - such as *Project Name* (with locked/unlocked image), *Project Status*, *Cloud Type* or *Cloud Credentials*.
13 |
14 |
15 | 
16 | Figure.2: Project Info
17 |
18 |
19 | When there is some operation going on, you can also see here ETC=Estimated Time to Complete. It is approx time (in minutes) until the cluster will be completed.
20 |
21 |
22 | 
23 | Figure.3: ETC
24 |
25 |
26 | ## **Servers**
27 |
28 | Every Server is described by *ID*, *Name*, *Flavor*, *IP Address*, *Public IP Address*, *Status*, *Profile*, *Image* and *Created*. If you expand the table, you can see the last modification made (*Created By*, *Last Modified*, *Last Modified By*).
29 |
30 |
31 | 
32 | Figure.4: Servers for Project
33 |
34 |
35 |
36 | Server status can be:
37 |
38 | * Deleting
39 | * Failure
40 | * Pending
41 | * Pending Delete
42 | * Pending Upgrade
43 | * Ready
44 | * Updating
45 | * Upgrading
46 |
47 |
48 | ## **Actions**
49 |
50 | ### **Commit**
51 |
52 | Sends the changes to the repository.
53 |
54 | Once the cluster is committed you will see ETC in project info.
55 |
56 | ### **Repair**
57 |
58 | When the server's are *Failed*, use repair button.
59 |
60 |
61 | 
62 | Figure.5: Repair
63 |
64 |
65 | ### **Add VM**
66 |
67 | To create a new server click{: .middle} button and fill all the fields. You, as user, can't delete servers - think twice which and how many servers you want to create.
68 |
69 | ???+ warning
70 | For creating the VM: ***Image*** has to be bound and ***Stanalone Profile*** has to be created.
71 |
72 |
73 | 
74 | Figure.6: Add VM
75 |
76 |
77 | *Server Name* - only alphanumeric characters and dash are allowed, 1-30 characters
78 |
79 | ???+ warning
80 | Letters must be lowercase!
81 |
82 | *Flavor* - choose from the list of offered flavors (e.g. n0.large)
83 |
84 | *Image* - choose from the list of offered images (e.g. ubuntu-20.04)
85 |
86 | *Volume Size* - minimal size is automatically filled in when you select image, you can only increase the volume size number
87 |
88 | *Volume Type* - optional, choose from drop down selection
89 |
90 | *Profile* - choose *Standalone profile*
91 |
92 | *Count* - how many VMs you want to create
93 |
94 | *Public IP* - check if you want to enable public IP
95 |
96 | *Cloud-init* - optional, if set it will override the ssh key from standalone profile
97 |
98 | *Tags* - enter *Key* and *Value*
99 |
100 | *Disk* - enter *Name*, choose *Size* and select *Volume Type*
101 |
102 |
103 | ???+ info
104 | If the project is locked:lock:, you **can't** use *Commit*, *Repair* or *Add VM*.
105 |
--------------------------------------------------------------------------------