diff --git a/.github/workflows/update_documentation.yml b/.github/workflows/update_documentation.yml index 4de95f2..9d1ef87 100644 --- a/.github/workflows/update_documentation.yml +++ b/.github/workflows/update_documentation.yml @@ -18,4 +18,4 @@ jobs: run: | git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.name "github-actions[bot]" - - run: cd Tutorial; mike deploy --push 0.0.1 + - run: cd Tutorial; mike deploy --push 5.0.0 diff --git a/Tutorial/docs/tutorials/pre-requisites/babylon.md b/Tutorial/docs/tutorials/pre-requisites/babylon.md index ec3b097..e90b01a 100644 --- a/Tutorial/docs/tutorials/pre-requisites/babylon.md +++ b/Tutorial/docs/tutorials/pre-requisites/babylon.md @@ -17,7 +17,7 @@ cd ~/Tooling git clone git@github.com:Cosmo-Tech/Babylon.git Babylon cd Babylon -git checkout 4.2.3 +git checkout 5.0.0 python3 -m venv .venv diff --git a/Tutorial/docs/tutorials/pre-requisites/coal.md b/Tutorial/docs/tutorials/pre-requisites/coal.md deleted file mode 100644 index 4983688..0000000 --- a/Tutorial/docs/tutorials/pre-requisites/coal.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -tags: - - Solution - - Bash - - Requirement ---- -# CoAL - -You will need a working installation of CoAL (CosmoTech Acceleration Library) further in the tutorials. - -One easy way to make a portable installation is to execute the following script: - -```bash title="Portable CoAL install" -cd ~/Tooling - -git clone https://github.com/Cosmo-Tech/CosmoTech-Acceleration-Library.git CoAL - -cd CoAL -python -m venv .venv - -source .venv/bin/activate -pip install . -deactivate - -cd ~/ToolingBins -ln -s ~/Tooling/CoAL/.venv/bin/csm-data csm-data -ln -s ~/Tooling/CoAL/.venv/bin/csm-orc csm-orc -``` - -This will make both `csm-data` and `csm-orc` CLIs available in your environment, isolated from other dependencies. - -To update CoAL, use: - -```bash title="Update CoAL" -cd ~/Tooling/CoAL -git fetch --all -git checkout -source .venv/bin/activate -pip install . -deactivate -``` - -## Dependencies - -CoAL depends on the csm-orc project for orchestration features. Make sure to install csm-orc as described in its documentation. - -## Requirements - -You can also use `CosmoTech-Acceleration-Library` in you python requirements to add a working installation of CoAl to any virtual environment using the official releases - -## References - -For more detailed information, refer to: - -* [CoAL Documentation](https://cosmo-tech.github.io/CosmoTech-Acceleration-Library/) -* [csm-orc Documentation](https://cosmo-tech.github.io/run-orchestrator/) -* [CoAL GitHub Repository](https://github.com/Cosmo-Tech/CosmoTech-Acceleration-Library) -* [csm-orc GitHub Repository](https://github.com/Cosmo-Tech/run-orchestrator) diff --git a/Tutorial/docs/tutorials/pre-requisites/cosmotech-sdk.md b/Tutorial/docs/tutorials/pre-requisites/cosmotech-sdk.md index 6d276df..166ee1e 100644 --- a/Tutorial/docs/tutorials/pre-requisites/cosmotech-sdk.md +++ b/Tutorial/docs/tutorials/pre-requisites/cosmotech-sdk.md @@ -24,5 +24,5 @@ The installer does not allow for inplace updates, to make version change of your Those references are locked behind an account having access to the Cosmo Tech documentation Portal -- [SDK User Guide](https://portal.cosmotech.com/docs//documentation/Studio_Guide_Portal/11.3/Content/WhatsNew.htm) -- [Official installation guide](https://portal.cosmotech.com/docs//documentation/Studio_Guide_Portal/11.3/Content/SDK_OK/Studio%20Installation%20Guide.htm) +- [SDK User Guide](https://portal.cosmotech.com/docs//documentation/Studio_Guide_Portal/12.0/Content/WhatsNew.htm) +- [Official installation guide](https://portal.cosmotech.com/docs//documentation/Studio_Guide_Portal/12.0/Content/SDK_OK/Studio%20Installation%20Guide.htm) diff --git a/Tutorial/docs/tutorials/pre-requisites/docker.md b/Tutorial/docs/tutorials/pre-requisites/docker.md index 9918846..d665ed6 100644 --- a/Tutorial/docs/tutorials/pre-requisites/docker.md +++ b/Tutorial/docs/tutorials/pre-requisites/docker.md @@ -11,15 +11,11 @@ Docker is required for containerized deployments and running many development en ## Install Docker on Debian -Docker can be installed using Debian's standard packages. For Debian 12 and earlier, install `docker.io`. For Debian 13 and onward, install both `docker.io` and `docker-cli`: +Docker can be installed using Debian's standard packages. ```bash title="Install Docker (Debian standard packages)" sudo apt-get update -# For Debian 12 and earlier: -sudo apt-get install docker.io - -# For Debian 13 and onward: sudo apt-get install docker.io docker-cli ``` @@ -39,10 +35,6 @@ To update Docker, run: ```bash title="Update Docker (Debian standard packages)" sudo apt-get update -# For Debian 12 and earlier: -sudo apt-get install --only-upgrade docker.io - -# For Debian 13 and onward: sudo apt-get install --only-upgrade docker.io docker-cli ``` diff --git a/Tutorial/docs/tutorials/pre-requisites/dotenv.md b/Tutorial/docs/tutorials/pre-requisites/dotenv.md deleted file mode 100644 index 26489cd..0000000 --- a/Tutorial/docs/tutorials/pre-requisites/dotenv.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -tags: - - Environment - - Configuration - - Bash - - Requirement ---- -# Dotenv - -Dotenv CLI is a command-line tool for loading environment variables from `.env` files. It's essential for managing configuration and environment variables in development and deployment workflows. - -## Install dotenv-cli - -The recommended way is to create a portable installation using a virtual environment: - -```bash title="Portable dotenv-cli install" -cd ~/Tooling - -# Create a dedicated directory for dotenv-cli -mkdir dotenv-cli -cd dotenv-cli - -# Create virtual environment -python3 -m venv .venv - -# Activate virtual environment and install dotenv-cli -source .venv/bin/activate -pip install dotenv-cli -deactivate -``` - -## Add dotenv to ToolingBins - -Create a symlink to make the `dotenv` command available across environments: - -```bash title="Symlink dotenv" -cd ~/ToolingBins -ln -s ~/Tooling/dotenv-cli/.venv/bin/dotenv dotenv -``` - -Now your `dotenv` installation is ready and will be available across multiple environments without interfering with other dependencies. - -## Update dotenv-cli - -To update dotenv-cli to the latest version: - -```bash title="Update dotenv-cli" -cd ~/Tooling/dotenv-cli -source .venv/bin/activate -pip install --upgrade dotenv-cli -deactivate -``` - -## Usage - -Once installed, you can use dotenv to load environment variables from `.env` files: - -```bash title="Basic dotenv usage" -# Load .env file and run a command -dotenv run -- your-command - -# Load specific .env file -dotenv -f path/to/your/.env run -- your-command - -# List variables from .env file -dotenv list -``` - -## References - -- [dotenv-cli on PyPI](https://pypi.org/project/dotenv-cli/) -- [dotenv-cli GitHub Repository](https://github.com/venthur/dotenv-cli) -- [Environment Variables Best Practices](https://12factor.net/config) diff --git a/Tutorial/docs/tutorials/pre-requisites/index.md b/Tutorial/docs/tutorials/pre-requisites/index.md index f077997..3c0fc12 100644 --- a/Tutorial/docs/tutorials/pre-requisites/index.md +++ b/Tutorial/docs/tutorials/pre-requisites/index.md @@ -6,7 +6,7 @@ hide: # Pre-requisites -First as some tools are required for some elements I recommend you do separate install of those. +First, assert that you are using an enviromnent under Debian 13. Then, as some tools are required for some elements I recommend you do separate install of those. ## System preparation diff --git a/Tutorial/docs/tutorials/pre-requisites/jq.md b/Tutorial/docs/tutorials/pre-requisites/jq.md deleted file mode 100644 index 3156a3b..0000000 --- a/Tutorial/docs/tutorials/pre-requisites/jq.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -tags: - - JSON - - Command Line - - Data Processing - - Requirement ---- -# jq - -jq is a lightweight and flexible command-line JSON processor. It's essential for parsing, filtering, and manipulating JSON data in shell scripts and command-line workflows. - -## Install jq on Debian - -Install using the package manager: - -```bash title="Install jq" -sudo apt-get update -sudo apt-get install -y jq -``` - -## Update jq - -To update jq, run: - -```bash title="Update jq" -sudo apt-get update -sudo apt-get install --only-upgrade jq -``` - -## Basic Usage - -Once installed, you can use jq to process JSON data: - -```bash title="Basic jq usage" -# Pretty-print JSON -echo '{"name":"John","age":30}' | jq . - -# Extract specific field -echo '{"name":"John","age":30}' | jq '.name' - -# Filter arrays -echo '[{"name":"John","age":30},{"name":"Jane","age":25}]' | jq '.[].name' - -# Process JSON from file -jq '.field' input.json -``` - -## References - -- [jq Official Documentation](https://jqlang.github.io/jq/) -- [jq Manual](https://jqlang.github.io/jq/manual/) -- [jq Tutorial](https://jqlang.github.io/jq/tutorial/) -- [jq GitHub Repository](https://github.com/jqlang/jq) diff --git a/Tutorial/docs/tutorials/pre-requisites/kubectl.md b/Tutorial/docs/tutorials/pre-requisites/kubectl.md new file mode 100644 index 0000000..835a273 --- /dev/null +++ b/Tutorial/docs/tutorials/pre-requisites/kubectl.md @@ -0,0 +1,71 @@ +--- +tags: + - Bash + - Kubernetes + - Requirement +--- +# kubectl + +kubectl is the command-line tool for interacting with Kubernetes clusters. It lets you deploy applications, inspect resources, and manage cluster operations. + +## Install kubectl on Debian + +Add the Kubernetes APT repository, then install kubectl: + +```bash title="Add Kubernetes repository" +cd ~/Tooling + +curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg +echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list +``` + +```bash title="Install kubectl" +sudo apt-get update +sudo apt-get install -y kubectl +``` + +Verify the installation: + +```bash title="Check kubectl version" +kubectl version --client +``` + +## Add kubectl to ToolingBins + +```bash title="Symlink kubectl" +cd ~/ToolingBins +ln -s /usr/bin/kubectl kubectl +``` + +## Configure kubectl + +kubectl uses a `kubeconfig` file (default: `~/.kube/config`) to locate and authenticate to Kubernetes clusters. + +To set a specific kubeconfig file for your session: + +```bash title="Set KUBECONFIG environment variable" +export KUBECONFIG=~/.kube/my-cluster-config +``` + +To merge multiple kubeconfig files and switch between contexts: + +```bash title="List available contexts" +kubectl config get-contexts +``` + +```bash title="Switch context" +kubectl config use-context +``` + +## Update kubectl + +```bash title="Update kubectl" +sudo apt-get update +sudo apt-get install --only-upgrade kubectl +``` + +## References + +- [kubectl Official Documentation](https://kubernetes.io/docs/reference/kubectl/) +- [Install kubectl on Linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/) +- [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) diff --git a/Tutorial/docs/tutorials/pre-requisites/npm-node.md b/Tutorial/docs/tutorials/pre-requisites/npm-node.md deleted file mode 100644 index 7e1bc42..0000000 --- a/Tutorial/docs/tutorials/pre-requisites/npm-node.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -tags: - - Bash - - Web Application - - Requirement ---- -# npm / Node.js - -npm and Node.js are required for running JavaScript tools and building many web applications. - -## Install npm and Node.js using nvm - -The recommended way is to use [nvm](https://github.com/nvm-sh/nvm): - -```bash title="Install nvm" -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash -# Restart your terminal or run: -export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - -# Install Node.js (replace 20 with desired version) -nvm install 20 -nvm use 20 -``` - -## Add Node.js and npm to ToolingBins - -Node.js and npm installed via nvm are available in your shell. -If you need symlinks for convenience: - -```bash title="Symlink node and npm" -cd ~/ToolingBins -ln -s "$(which node)" node -ln -s "$(which npm)" npm -``` - -## Update or switch Node.js and npm versions - -To update or switch Node.js and npm, use nvm: - -```bash title="Update or switch Node.js version" -nvm install # Install a new version -nvm use # Switch to a version -nvm ls # List installed versions -``` - -## Update nvm - -To update nvm to the latest version, run: - -```bash title="Update nvm" -curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash -# Restart your terminal or reload nvm: -export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" -``` - -## References - -- [nvm Official Documentation](https://github.com/nvm-sh/nvm) diff --git a/Tutorial/docs/tutorials/pre-requisites/power-bi.md b/Tutorial/docs/tutorials/pre-requisites/power-bi.md deleted file mode 100644 index f990e01..0000000 --- a/Tutorial/docs/tutorials/pre-requisites/power-bi.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -tags: - - Power BI - - Web Application - - Windows - - Requirement ---- -# Power BI - -Power BI is required for creating dashboards that are embedded in the Cosmo Tech Webapp. - -## Install Power BI on Windows - -Power BI Desktop is only available for Windows. You can install it either via the Microsoft Store or by downloading the installer from the official website. - -### Option 1: Install via Microsoft Store - -1. Open the [Power BI Desktop page on Microsoft Store](https://apps.microsoft.com/store/detail/power-bi-desktop/9NTXR16HNW1T). -2. Click "Get" and follow the instructions to install. - -### Option 2: Download Installer - -1. Go to the [Power BI Desktop download page](https://powerbi.microsoft.com/en-us/desktop/). -2. Download the installer (`.msi` file). -3. Run the installer and follow the setup instructions. - -If you are not on Windows, you will need to use a Windows Virtual Machine to install and run Power BI Desktop. - -## Update Power BI - -To update Power BI Desktop, use one of the following methods: - -- If installed via Microsoft Store, updates are handled automatically. -- If installed via the `.msi` installer, download the latest version from the [official download page](https://powerbi.microsoft.com/en-us/desktop/) and run the installer to update. - -## References - -- [Power BI Desktop Download](https://powerbi.microsoft.com/en-us/desktop/) -- [Power BI Documentation](https://learn.microsoft.com/en-us/power-bi/) -- [Power BI Desktop on Microsoft Store](https://apps.microsoft.com/store/detail/power-bi-desktop/9NTXR16HNW1T) diff --git a/Tutorial/docs/tutorials/pre-requisites/terraform.md b/Tutorial/docs/tutorials/pre-requisites/terraform.md new file mode 100644 index 0000000..14a7719 --- /dev/null +++ b/Tutorial/docs/tutorials/pre-requisites/terraform.md @@ -0,0 +1,51 @@ +--- +tags: + - Bash + - Infrastructure + - Requirement +--- +# Terraform + +Terraform is an open-source Infrastructure as Code (IaC) tool by HashiCorp that lets you define and provision infrastructure using declarative configuration files. + +## Install Terraform on Debian + +Add the HashiCorp APT repository, then install Terraform: + +```bash title="Add HashiCorp repository" +cd ~/Tooling + +wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg +echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list +``` + +```bash title="Install Terraform" +sudo apt-get update +sudo apt-get install -y terraform +``` + +Verify the installation: + +```bash title="Check Terraform version" +terraform version +``` + +## Add Terraform to ToolingBins + +```bash title="Symlink terraform" +cd ~/ToolingBins +ln -s /usr/bin/terraform terraform +``` + +## Update Terraform + +```bash title="Update Terraform" +sudo apt-get update +sudo apt-get install --only-upgrade terraform +``` + +## References + +- [Terraform Official Documentation](https://developer.hashicorp.com/terraform/docs) +- [Install Terraform](https://developer.hashicorp.com/terraform/install) +- [HashiCorp APT Repository](https://www.hashicorp.com/official-packaging-guide)