Promoter facilitates easy promotion between environments using GitOps and Helm. It automates the update of image tags for services in different environments.
curl -sL https://github.com/EyalPazz/promoter/raw/main/install.sh | bash
or
make install
To promote all services of a project to an environment with the latest image tag, use:
promoter --env <env>
To promote certain services of a project to an environment with the latest image tag, use:
promoter --services <services list, seperated by commas> --env <env>
To promote a service to an environment with a specific image tag, use:
promoter --services <service_name> -tag <tag> --env <env>
You can also use the -i (or --interactive) in order to promote interactively
To revert all services of a project to a certain revision
promoter revert --env production
** You can also use the project flag to override the .promoter.yaml config **
Create a configuration file named .promoter.yaml in your home directory (~/.promoter.yaml) with the following key-value pairs:git-name:
git-email: <Your Git Email>
git-name: <Your Git Name>
manifest-repo: <Config Files Repo URL>
ssh-key: <Git SSH Key Path>
manifest-repo-root: < ** OPTIONAL ** For app of apps repos>
default:
project-name: X
region: Y
You can also add another profile and use --profile with it's name
Your manifest project structure should follow this format:
argo/
apps/
├── project1/
│ └── env/
│ └── values.yaml
└── project2/
└── env/
└── values.yaml
- 1: Make Deployment Platform agnostic
- 2: Add Tests
- 3: Expend to more providers and manifest repo structures
- 4: Write documentation