Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

devonfw/ide#712: azcli integration #733

Closed
wants to merge 13 commits into from
100 changes: 50 additions & 50 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
bash:
- '!*.*'
cobigen:
- 'cobigen'
commandlet:
- 'scripts/src/main/resources/scripts/command/**/*'
config:
- any: ['settings/**/*', 'configurator/**/*']
documentation:
- 'documentation/**/*'
eclipse:
- any: ['eclipse-m2e/**/*', 'eclipse']
intellij:
- 'intellij'
java:
- 'java'
javascript:
- any: ['node', 'npm', 'ng', 'yarn']
npm:
- 'npm'
SCM:
- '.github/**/*'
scripts:
- 'scripts/**/*'
settings:
- 'settings/**/*'
test:
- 'scripts/src/test/**/*'
vscode:
- 'vscode'
macOS:
- 'scripts/src/main/resources/system/mac/**/*'
windows:
- 'scripts/src/main/resources/system/windows/**/*'
bash:
- '!*.*'

cobigen:
- 'cobigen'

commandlet:
- 'scripts/src/main/resources/scripts/command/**/*'

config:
- any: ['settings/**/*', 'configurator/**/*']

documentation:
- 'documentation/**/*'

eclipse:
- any: ['eclipse-m2e/**/*', 'eclipse']

intellij:
- 'intellij'

java:
- 'java'

javascript:
- any: ['node', 'npm', 'ng', 'yarn']

npm:
- 'npm'

SCM:
- '.github/**/*'

scripts:
- 'scripts/**/*'

settings:
- 'settings/**/*'

test:
- 'scripts/src/test/**/*'

vscode:
- 'vscode'

macOS:
- 'scripts/src/main/resources/system/mac/**/*'

windows:
- 'scripts/src/main/resources/system/windows/**/*'
30 changes: 15 additions & 15 deletions .github/workflows/label-pr.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: Label-PR
on:
pull_request_target: # *_target workaround for https://github.com/actions/labeler/issues/12
types: [opened, reopened, synchronize, unlocked, unlabeled]
jobs:
label:
runs-on: ubuntu-latest
steps:
- name: Label by changed paths
uses: actions/labeler@v3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
sync-labels: false
name: Label-PR
on:
pull_request_target: # *_target workaround for https://github.com/actions/labeler/issues/12
types: [opened, reopened, synchronize, unlocked, unlabeled]

jobs:
label:
runs-on: ubuntu-latest

steps:
- name: Label by changed paths
uses: actions/labeler@v3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
sync-labels: false
configuration-path: .github/labeler.yml
2 changes: 2 additions & 0 deletions documentation/LICENSE.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ The following table shows the components that may be used. The column `inclusion
|https://helm.sh/[helm]|Optional|https://github.com/devonfw/ide/blob/master/LICENSE[ASL 2.0]
|https://terraform.io/[terraform]|Optional|https://github.com/hashicorp/terraform/blob/main/LICENSE[Mozilla Public License 2.0]
|https://www.graalvm.org/[GraalVM] |Optional|https://github.com/oracle/graal/blob/master/LICENSE[GPLv2] (with the “Classpath” Exception)
|https://github.com/Azure/azure-cli[AzureCLI] |Optional| https://github.com/Azure/azure-cli/blob/dev/LICENSE[MIT]

|=======================

== Apache Software License - Version 2.0
Expand Down
47 changes: 47 additions & 0 deletions documentation/azurecli.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
:toc:
toc::[]

= Azure CLI

The Azure CLI commandlet allows to install and use https://github.com/Azure/azure-cli[Azure CLI].

*ATTENTION:*
Currently this feature is new and therefore experimental.
It may change in incompatible ways in the next releases until we reach a stable state.
We hope that all is working fine for you.
However, do not expect everything to work out of the box.
In case you are facing issues (e.g. network problems with Cisco AnyConnect, etc.) please give us feedback so we can improve.

The arguments (`devon az «args»`) are explained by the following table:

.Usage of `devon az`
[options="header"]
|=======================
|*Argument(s)* |*Meaning*
|`setup` |setup Azure CLI (install and verify) as per above flow.
|`«args»` |call Azure CLI with the specified arguments. Call `az help` for details or use `az` directly as preferred." (`«args»`)
|=======================

== Setup
The `az` commandlet will install Azure CLI automatically. Windows user must confirm the User Access Control to run the installation as administrator.
Please note that besides the sandbox concept of devonfw-ide this is a global installation on your system.
When uninstalling Azure CLI, you may have to manually uninstall.

**Uninstall process instructions:**

- https://docs.microsoft.com/de-de/cli/azure/install-azure-cli-windows?tabs=azure-cli#uninstall[Windows]

- https://docs.microsoft.com/de-de/cli/azure/install-azure-cli-linux?pivots=script#uninstall[MacOS and Linux]

== Requirements
**MacOS and Linux users requires the following software:**

- https://www.python.org/downloads/[Python 3.6.x, 3.7.x oder 3.8.x]
- https://sourceware.org/libffi/[libffi]
- https://www.openssl.org/source/[OpenSSL 1.0.2]

== Usage
After the installation is complete, you may need to restart the console. Run `az help` from any shell of your OS directly to get started and use the online documentations and resources on the web to get familiar with Azure CLI. It is not our intention to repeat this here.

Please note that the `az` commandlet is a link:cli.asciidoc#command-wrapper[command wrapper].

1 change: 1 addition & 0 deletions documentation/cli.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ However, when you automate and want to avoid "command not found" errors, you can

The following commandlets are currently available:

* link:azurecli.asciidoc[az]
* link:build.asciidoc[build]
* link:cobigen.asciidoc[cobigen]
* link:docker.asciidoc[docker]
Expand Down
2 changes: 2 additions & 0 deletions documentation/devonfw-ide-usage.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ include::variables.asciidoc[leveloffset=2]

include::cli.asciidoc[leveloffset=2]

include::azurecli.asciidoc[leveloffset=3]

include::build.asciidoc[leveloffset=3]

include::docker.asciidoc[leveloffset=3]
Expand Down
116 changes: 58 additions & 58 deletions documentation/docker-desktop-alternative.asciidoc
Original file line number Diff line number Diff line change
@@ -1,58 +1,58 @@
:toc:
toc::[]
= Introduction
As https://www.docker.com/blog/updating-product-subscriptions/[Docker Desktop has changed its licensing] we have been looking for a license-free alternative.
This document gives a rationale why we have choosen https://rancherdesktop.io/[Rancher Desktop] as alternative to setup and manage https://www.docker.com/[docker] and https://kubernetes.io/[kubernetes].
= Why we chose Rancher Desktop as Docker-Desktop alternative
Our main criteria for tool comparision were:
* The softwares licence
* Match of toolset compared to Docker Desktop
* Complexity of installing and setting up the toolset
* Stability of the solution
* Future-proofness (community activitiy, regular updates and fixes)
[cols="asciidoc",options="header",grid="cols"]
|======================
| |*Rancher Desktop*|*Podman-Minikube*|*Others*
|*Pro* |
- It comes very close to what Docker-Desktop offers, as it installs most of Docker-Desktop's cli-tools -> Almost frictionless shift +
- Installs and sets up a good toolset including typical docker compnents as well as kubernetes +
- Makes installation and setup very easy +
- Cloud tools like Helm or Terraform are usable +
- Works on macOS, Windows and Linux +
- Comes with a GUI +
- Easy shift between Kubernetes versions via GUI +
- Works with VPN when using https://github.com/sakai135/wsl-vpnkit/[wsl-vpnkit] +
- Licence free
|
- Works deamon less, also OCI-Containers (like Docker) +
- Root less Containers, giving security improvements over Docker +
- Not that hard to install and setup +
- Kubernetes usable locally +
- Licence free
|
Interesting components: +
- e.g. Lazydocker gives a pretty and compact graphical component +
- e.g. MicroK8s as a lightweight, fast version of Kubernetes +
|*Contra*|
-does not have all features Docker Desktop has, like image security scans
|
- Has most usual Docker-commands, but not all of them +
- For ongoing Docker-projects might not be worth it, because of some differences to Docker -> Porblems during software migration +
- GUI less +
- More work when it comes to implementation +
- minikube only gives us one cluster +
- Does not have all features Docker Desktop has, like image security scans +
|
- In some cases not available for all OS +
- Software often just one component of what we need (like Kind for running Clusters using Docker; Buildah for building Containers...), therefore need to mix tools +
- Especially for a manual mix of tools severe implementation/maintenance increase possible +
- More error-prone, particularly when using a rather uncommon mix of tools +
- Unclear future of some projects +
- Some options were bleeding edge
|======================
:toc:
toc::[]

= Introduction

As https://www.docker.com/blog/updating-product-subscriptions/[Docker Desktop has changed its licensing] we have been looking for a license-free alternative.
This document gives a rationale why we have choosen https://rancherdesktop.io/[Rancher Desktop] as alternative to setup and manage https://www.docker.com/[docker] and https://kubernetes.io/[kubernetes].

= Why we chose Rancher Desktop as Docker-Desktop alternative

Our main criteria for tool comparision were:

* The softwares licence
* Match of toolset compared to Docker Desktop
* Complexity of installing and setting up the toolset
* Stability of the solution
* Future-proofness (community activitiy, regular updates and fixes)

[cols="asciidoc",options="header",grid="cols"]
|======================
| |*Rancher Desktop*|*Podman-Minikube*|*Others*
|*Pro* |
- It comes very close to what Docker-Desktop offers, as it installs most of Docker-Desktop's cli-tools -> Almost frictionless shift +
- Installs and sets up a good toolset including typical docker compnents as well as kubernetes +
- Makes installation and setup very easy +
- Cloud tools like Helm or Terraform are usable +
- Works on macOS, Windows and Linux +
- Comes with a GUI +
- Easy shift between Kubernetes versions via GUI +
- Works with VPN when using https://github.com/sakai135/wsl-vpnkit/[wsl-vpnkit] +
- Licence free
|
- Works deamon less, also OCI-Containers (like Docker) +
- Root less Containers, giving security improvements over Docker +
- Not that hard to install and setup +
- Kubernetes usable locally +
- Licence free
|
Interesting components: +
- e.g. Lazydocker gives a pretty and compact graphical component +
- e.g. MicroK8s as a lightweight, fast version of Kubernetes +
|*Contra*|
-does not have all features Docker Desktop has, like image security scans
|
- Has most usual Docker-commands, but not all of them +
- For ongoing Docker-projects might not be worth it, because of some differences to Docker -> Porblems during software migration +
- GUI less +
- More work when it comes to implementation +
- minikube only gives us one cluster +
- Does not have all features Docker Desktop has, like image security scans +
|
- In some cases not available for all OS +
- Software often just one component of what we need (like Kind for running Clusters using Docker; Buildah for building Containers...), therefore need to mix tools +
- Especially for a manual mix of tools severe implementation/maintenance increase possible +
- More error-prone, particularly when using a rather uncommon mix of tools +
- Unclear future of some projects +
- Some options were bleeding edge
|======================
1 change: 1 addition & 0 deletions documentation/scripts.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ This directory is the heart of the `devonfw-ide` and contains the required link:
----
/scripts
├──/ https://github.com/devonfw/ide/tree/master/scripts/src/main/resources/scripts/command[command]
│ ├── link:azurecli.asciidoc[az]
│ ├── link:build.asciidoc[build]
│ ├── link:docker.asciidoc[docker]
│ ├── link:eclipse.asciidoc[eclipse]
Expand Down
Loading