This is a Commodore Component for appcat.
This repository is part of Project Syn. For documentation on Project Syn and this component, see https://syn.tools.
This repository contains:
component
: SYN Commodore component for installing AppCat features
This component can be compiled with commodore like this:
$ commodore component compile . --search-paths . -n appcat -f tests/defaults.yml
#
# Alternative:
#
$ make test
The resulting compiled component can be found in compiled/
.
There is currently no easy way to run it locally. You need to apply the compiled component to a test cluster to see if it works as expected.
This process is not suitable for installing the component on a production system.
Kindev provides a forgejo instance and ArgoCD that we can use the git repositories from it. ArgoCD is available at http://argocd.127.0.0.1.nip.io:8088/.
To push any of the golden tests you can use make push-golden -e instance=vshn
, it will:
- Compile the given golden test
- Push it to forgejo
- Create or update an ArgoCD app according to the app config in the component
There's also a push target for the split setup: make push-non-converged
, this will create two distinct apps on ArgoCD to deploy the respective parts to the right clusters.
There's a known issue:
On the very first sync after setting up kindev, ArgoCD doesn't recognize the server-side
flag. Thus, the sync will fail. Simply click sync again in the ArgoCD GUI to trigger it again.
There's a postprocess function that will add ArgoCD syn annotations to each object of the given kind.
If any new types are introduced that need specific ordering, the add_argo_annotations.jsonnet
is the right place.
The golden targets dev
and control-plane
are pre-configured to support proxying the comp functions from Kind to the local endpoint.
To enable it, change these two parameters:
appcat:
grpcEndpoint: host.docker.internal:9443
proxyFunction: false
The grpcEndpoint
depends on your docker implementation and should point to an address that's reachable from the containers.
HOSTIP=$(docker inspect kindev-control-plane | jq '.[0].NetworkSettings.Networks.kind.Gateway') # On kind MacOS/Windows
HOSTIP=host.docker.internal # On Docker Desktop distributions
HOSTIP=host.lima.internal # On Lima backed Docker distributions
Linux oneliner: echo `ip -4 addr show dev docker0 | grep inet | awk -F' ' '{print $2}' | awk -F'/' '{print $1}'`:9443
Also make sure that facts.appcat_dev
is set on the target you want to proxy. This is a safeguard so we don't accidentally enable it on prod clusters.
The rendered documentation for this component is available on the Commodore Components Hub.
Documentation for this component is written using Asciidoc and Antora. It's located in the docs/ folder. The Divio documentation structure is used to organize its content.
Run the make docs-serve
command in the root of the project, and then browse to http://localhost:2020 to see a preview of the current state of the documentation.
After writing the documentation, please use the make lint_adoc
command and correct any warnings raised by the tool.
This library is licensed under BSD-3-Clause. For information about how to contribute see CONTRIBUTING.