Add ArgoCD CLI and apt tools.#6
Conversation
📝 WalkthroughWalkthroughAdds network diagnostic packages and yq to the dev image, installs a pinned ArgoCD CLI binary, changes the Ansible pipx install to use the requirements file, bumps boto3, and normalizes formatting in README and devcontainer JSON. No runtime behavior changes beyond added tooling. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Dockerfile`:
- Around line 356-360: Replace the curl invocation to use fail-fast flags and
drop sudo: download argocd with curl -fsSL to "argocd-linux-${TARGETARCH}",
install it directly with install -m 555 argocd-linux-${TARGETARCH}
/usr/local/bin/argocd (no sudo), and then validate the binary immediately with a
fail-on-error check such as running /usr/local/bin/argocd version --client (so
the Docker build fails if validation fails); finally remove the temporary
argocd-linux-${TARGETARCH} file as before. Ensure these steps are chained with
&& so any failure aborts the build.
In `@README.md`:
- Around line 57-58: Update README.md to resolve markdownlint MD058/MD031/MD040
by adding blank lines before and after every table and fenced code block and by
specifying a fence language for plain-text fences; search for the example table
row containing "`azure-*` | Azure SDK packages" and all fenced blocks around the
ranges noted (e.g., the JSON/devcontainer snippets and the plain help text
blocks) and insert a blank line above and below each table or ```...``` fence,
and change fences without a language to use an explicit language token such as
```text (or ```json for JSON snippets) so every fenced block has a language
identifier.
- Line 23: Replace the relative Markdown link target "argocd.io" used in the
README table entry for "ArgoCD CLI" with a fully qualified URL by updating the
link syntax from [ArgoCD CLI](argocd.io) to include the scheme, e.g. [ArgoCD
CLI](https://argocd.io), so the hyperlink resolves correctly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 3b4ae0d7-bfa2-4253-8160-99936a83027c
📒 Files selected for processing (4)
.devcontainer/example/devcontainer.jsonDockerfileREADME.mddependencies/python-ansible-requirements.txt
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build and Push
🧰 Additional context used
🪛 Checkov (3.2.519)
Dockerfile
[low] 356-360: Ensure that sudo isn't used
(CKV2_DOCKER_1)
🪛 Hadolint (2.14.0)
Dockerfile
[error] 356-356: Do not use sudo as it leads to unpredictable behavior. Use a tool like gosu to enforce root
(DL3004)
🪛 markdownlint-cli2 (0.22.0)
README.md
[warning] 57-57: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
[warning] 67-67: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 71-71: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 73-73: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 84-84: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 94-94: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 139-139: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 144-144: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 149-149: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 224-224: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🪛 Trivy (0.69.3)
Dockerfile
[error] 356-360: RUN using 'sudo'
Using 'sudo' in Dockerfile should be avoided
Rule: DS-0010
(IaC/Dockerfile)
🔇 Additional comments (4)
dependencies/python-ansible-requirements.txt (1)
26-26: Version bump is consistent with the requirements policy.
boto3~=1.42.93follows the documented compatible-release pinning model and keeps patch-level update flexibility..devcontainer/example/devcontainer.json (1)
1-78: Non-functional normalization only — LGTM.This change set appears to be line-ending/format normalization without behavioral changes to the container configuration.
Dockerfile (2)
52-57: APT tool additions match the PR objective.The requested diagnostics/network tooling set is present in the system package install block.
Also applies to: 59-59
203-205: Ansible dependency installation flow looks good.Installing from
dependencies/python-ansible-requirements.txtdirectly keeps the build path aligned with the managed dependency file.
| | `azure-*` | Azure SDK packages — required by `azure.azcollection` (installed from collection's own requirements file) | | ||
| --- |
There was a problem hiding this comment.
Resolve markdownlint warnings (blank lines around tables/fences + missing fence language).
Current formatting triggers MD058/MD031/MD040 warnings in multiple sections. Please add surrounding blank lines and specify a language for plain fences (e.g., text).
Example patch pattern
| `azure-*` | Azure SDK packages — required by `azure.azcollection` (installed from collection's own requirements file) |
+
---
**AWS CLI** — mount your credentials file, or pass environment variables:
+
```json
"mounts": [
"source=${localEnv:HOME}/.aws,target=/home/vscode/.aws,type=bind,readonly"
]Or use environment variables in devcontainer.json:
+
"containerEnv": {
"AWS_ACCESS_KEY_ID": "${localEnv:AWS_ACCESS_KEY_ID}",
@@
-```
+```text
Enable Dev › Containers: Execute In WSL
Enable Dev › Containers: Forward WSL Services if you use things like X, Wayland, or SSH Agents such as Bitwarden@@
- +text
devops-toolbox/
├── .github/
│ └── workflows/
</details>
Also applies to: 67-71, 73-79, 84-91, 94-98, 107-110, 139-141, 144-146, 149-151, 224-240
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>
[warning] 57-57: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @README.md around lines 57 - 58, Update README.md to resolve markdownlint
MD058/MD031/MD040 by adding blank lines before and after every table and fenced
code block and by specifying a fence language for plain-text fences; search for
the example table row containing "azure-* | Azure SDK packages" and all fenced
blocks around the ranges noted (e.g., the JSON/devcontainer snippets and the
plain help text blocks) and insert a blank line above and below each table or
... fence, and change fences without a language to use an explicit
language token such as text (or json for JSON snippets) so every fenced
block has a language identifier.
</details>
<!-- fingerprinting:phantom:poseidon:hawk -->
<!-- This is an auto-generated comment by CodeRabbit -->
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (2)
Dockerfile (1)
361-361:⚠️ Potential issue | 🟠 MajorUse client-only ArgoCD version check in build validation.
argocd versionin default mode may require server context and can fail during image build. Useargocd version --clientfor deterministic offline validation.For Argo CD CLI v3.3.x, does `argocd version` require server context by default, and is `argocd version --client` the recommended offline validation command?Suggested patch
- && argocd version + && argocd version --client🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Dockerfile` at line 361, Replace the build validation invocation of the Argo CD CLI that runs plain "argocd version" with the client-only check "argocd version --client" so the Dockerfile's build step (the line invoking argocd version) does not attempt to contact a server or require cluster context; update the command referenced in the Dockerfile to use the --client flag for deterministic offline validation.README.md (1)
57-58:⚠️ Potential issue | 🟡 MinorMarkdownlint warnings are still present (MD058/MD031/MD040).
Blank lines around tables/fences and explicit language tags on plain fences are still missing in the reported ranges.
Also applies to: 67-71, 73-79, 84-91, 94-98, 107-110, 139-141, 144-146, 149-151, 224-240
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 57 - 58, Several MarkdownLint rules (MD058, MD031, MD040) are triggered because there are missing blank lines around tables and fenced code blocks and some code fences lack explicit language tags; update the README.md by adding a blank line before and after each Markdown table (e.g., the table row containing `azure-*`) and before/after each fenced code block in the reported ranges, and add explicit language identifiers (like ```bash, ```yaml, or ```text) to all plain triple-backtick fences so linting rules MD058/MD031/MD040 are satisfied.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@README.md`:
- Line 23: Replace the generic ArgoCD site link with the CLI installation page
by updating the table row that uses the link text "[ArgoCD CLI]" to point to the
CLI install doc (e.g., the Argo CD CLI installation URL) so the cell reads the
same but links directly to the CLI installation instructions rather than
https://argocd.io.
- Line 112: Fix the typo in the devcontainer setup sentence that currently reads
"with the. VS Code...": update the sentence mentioning
".devcontainer/devcontainer.json" so it reads clearly (for example, "add a
.devcontainer/devcontainer.json file to your project repository. VS Code will
detect it automatically and offer to reopen the project inside the
container.")—edit the README.md paragraph containing the
".devcontainer/devcontainer.json" phrase and replace the stray "the." with a
correct phrase such as "it." or "file." to restore readability.
---
Duplicate comments:
In `@Dockerfile`:
- Line 361: Replace the build validation invocation of the Argo CD CLI that runs
plain "argocd version" with the client-only check "argocd version --client" so
the Dockerfile's build step (the line invoking argocd version) does not attempt
to contact a server or require cluster context; update the command referenced in
the Dockerfile to use the --client flag for deterministic offline validation.
In `@README.md`:
- Around line 57-58: Several MarkdownLint rules (MD058, MD031, MD040) are
triggered because there are missing blank lines around tables and fenced code
blocks and some code fences lack explicit language tags; update the README.md by
adding a blank line before and after each Markdown table (e.g., the table row
containing `azure-*`) and before/after each fenced code block in the reported
ranges, and add explicit language identifiers (like ```bash, ```yaml, or
```text) to all plain triple-backtick fences so linting rules MD058/MD031/MD040
are satisfied.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 16852e95-ffec-4e58-a402-260e136d41b8
📒 Files selected for processing (2)
DockerfileREADME.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build and Push
🧰 Additional context used
🪛 markdownlint-cli2 (0.22.0)
README.md
[warning] 57-57: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
[warning] 67-67: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 71-71: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 73-73: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 84-84: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 94-94: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 139-139: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 144-144: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 149-149: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 224-224: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (2)
Dockerfile (2)
52-59: Good addition of requested base networking tools andyq.This directly matches the linked issue’s tooling objective and keeps everything in the single apt layer.
203-205: Requirements-file based Ansible venv install looks good.Switching to
pipx runpip ansible install -r ...makes dependency management clearer and easier to maintain.
| | [Helm](https://helm.sh) | See [Dockerfile](./Dockerfile) | Kubernetes package manager | | ||
| | [kubelogin](https://azure.github.io/kubelogin/) | See [Dockerfile](./Dockerfile) | Azure AD authentication for kubectl | | ||
| | [Kustomize](https://kustomize.io) | See [Dockerfile](./Dockerfile) | Kubernetes configuration management | | ||
| | [ArgoCD CLI](https://argocd.io) | See [Dockerfile](./Dockerfile) | ArgoCD CLI | |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Consider linking ArgoCD directly to the CLI installation docs.
https://argocd.io works, but the issue/PR objective references the CLI installation page specifically; linking there would be more actionable for users.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@README.md` at line 23, Replace the generic ArgoCD site link with the CLI
installation page by updating the table row that uses the link text "[ArgoCD
CLI]" to point to the CLI install doc (e.g., the Argo CD CLI installation URL)
so the cell reads the same but links directly to the CLI installation
instructions rather than https://argocd.io.
There was a problem hiding this comment.
♻️ Duplicate comments (2)
README.md (2)
23-23:⚠️ Potential issue | 🟡 MinorUse the ArgoCD CLI installation doc URL for this table entry.
The current link is generic (
https://argocd.io); this row is specifically about CLI installation and should point to the CLI docs directly.Suggested fix
-| [ArgoCD CLI](https://argocd.io) | See [Dockerfile](./Dockerfile) | ArgoCD CLI | +| [ArgoCD CLI](https://argo-cd.readthedocs.io/en/stable/cli_installation/) | See [Dockerfile](./Dockerfile) | ArgoCD CLI |🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` at line 23, The table row currently uses a generic ArgoCD site link in the string "[ArgoCD CLI](https://argocd.io) | See [Dockerfile](./Dockerfile) | ArgoCD CLI"; update that markdown link to point to the ArgoCD CLI installation docs (e.g. replace https://argocd.io with the CLI doc URL https://argo-cd.readthedocs.io/en/stable/cli_installation/) so the table entry directs users straight to the CLI installation instructions.
57-58:⚠️ Potential issue | 🟡 Minormarkdownlint issues are still present in changed sections (MD058/MD031/MD040).
Please add blank lines around tables/fenced blocks and set explicit fence languages for plain-text blocks.
Patch pattern to apply in the flagged ranges
| `azure-*` | Azure SDK packages — required by `azure.azcollection` (installed from collection's own requirements file) | + --- **AWS CLI** — mount your credentials file, or pass environment variables: + ```json "mounts": [ "source=${localEnv:HOME}/.aws,target=/home/vscode/.aws,type=bind,readonly" ]
Or use environment variables in
devcontainer.json:@@
-+text
Enable Dev › Containers: Execute In WSL
Enable Dev › Containers: Forward WSL Services if you use things like X, Wayland, or SSH Agents such as Bitwarden@@ -``` +```text devops-toolbox/ ├── .github/ │ └── workflows/Also applies to: 67-71, 73-79, 84-91, 94-98, 107-110, 139-141, 144-146, 149-151, 224-240
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` around lines 57 - 58, The README has markdownlint violations: add a blank line before and after every table and fenced code block and set explicit fence languages for plain-text blocks; specifically, ensure the table row containing `azure-*` is separated by blank lines from surrounding text, change plain fences that show JSON-like mounts (the block including "mounts": [...] and the devcontainer.json examples) to use ```json or ```text as appropriate, and update the other plain code blocks (e.g., the blocks showing CLI output or tree listings such as the devops-toolbox tree) to use ```text; apply these fixes to all flagged sections (examples around the "mounts" snippet, devcontainer instructions, tree/list outputs, and the other ranges listed) so each table/fenced block has blank lines above and below and explicit fence languages are specified.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@README.md`:
- Line 23: The table row currently uses a generic ArgoCD site link in the string
"[ArgoCD CLI](https://argocd.io) | See [Dockerfile](./Dockerfile) | ArgoCD CLI";
update that markdown link to point to the ArgoCD CLI installation docs (e.g.
replace https://argocd.io with the CLI doc URL
https://argo-cd.readthedocs.io/en/stable/cli_installation/) so the table entry
directs users straight to the CLI installation instructions.
- Around line 57-58: The README has markdownlint violations: add a blank line
before and after every table and fenced code block and set explicit fence
languages for plain-text blocks; specifically, ensure the table row containing
`azure-*` is separated by blank lines from surrounding text, change plain fences
that show JSON-like mounts (the block including "mounts": [...] and the
devcontainer.json examples) to use ```json or ```text as appropriate, and update
the other plain code blocks (e.g., the blocks showing CLI output or tree
listings such as the devops-toolbox tree) to use ```text; apply these fixes to
all flagged sections (examples around the "mounts" snippet, devcontainer
instructions, tree/list outputs, and the other ranges listed) so each
table/fenced block has blank lines above and below and explicit fence languages
are specified.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 7c544e09-2acd-4f51-8ce5-2835bd16b6b9
📒 Files selected for processing (2)
DockerfileREADME.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build and Push
🧰 Additional context used
🪛 markdownlint-cli2 (0.22.0)
README.md
[warning] 57-57: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
[warning] 67-67: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 71-71: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 73-73: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 84-84: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 94-94: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 107-107: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
[warning] 139-139: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 144-144: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 149-149: Fenced code blocks should be surrounded by blank lines
(MD031, blanks-around-fences)
[warning] 224-224: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🔇 Additional comments (3)
Dockerfile (3)
52-59: Good tool coverage update for issue#5.This apt block adds the requested network diagnostics set and keeps installation in the existing single-layer pattern with apt cache cleanup.
203-205: Requirements-based Ansible venv install looks correct.Switching to
pipx runpip ansible install -r /tmp/python-ansible-requirements.txtis cleaner and uses pip’s native requirements parsing directly.
348-362: ArgoCD CLI install block is solid.The install sequence is now fail-fast (
curl -fsSL), avoidssudo, and validates the binary withargocd version --clientduring build.
This fixes #5
Also corrects EOL for several files to LF
Summary by CodeRabbit
New Features
Documentation
Chores