Compare commits
3 Commits
helmule-ad
...
renovate/c
Author | SHA1 | Date | |
---|---|---|---|
a40b622918 | |||
055072f491 | |||
f40fea7955 |
@ -21,4 +21,5 @@ patches:
|
||||
git:
|
||||
path: ../patches/git/zot.patch
|
||||
mirrors:
|
||||
- apps-git
|
||||
# - apps-git
|
||||
- custom-command
|
||||
|
@ -4,10 +4,6 @@ variables:
|
||||
include:
|
||||
- kind: Charts
|
||||
path: ./charts/zot.yaml
|
||||
- kind: Charts
|
||||
path: ./charts/gitops-server.yaml
|
||||
- kind: Charts
|
||||
path: ./charts/external-secrets-operator.yaml
|
||||
patches:
|
||||
- name: yamlfmt
|
||||
custom_command:
|
||||
@ -56,3 +52,10 @@ mirrors:
|
||||
commit: |-
|
||||
chore: mirror {{ name }}-{{ version }}
|
||||
upstream_repo: {{ repo_url }}
|
||||
- name: custom-commands
|
||||
custom_command:
|
||||
package:
|
||||
- helm package -d package .
|
||||
upload:
|
||||
- helm push ./package/{{ name }}-{{ version }}.tgz oci://registry.badhouseplants.net
|
||||
- rm -rf ./package
|
||||
|
@ -18,6 +18,12 @@ pub(crate) enum SupportedIncludes {
|
||||
Charts,
|
||||
}
|
||||
|
||||
|
||||
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Default)]
|
||||
pub(crate) struct Hooks{
|
||||
pre_hooks: Option<Vec<String>>,
|
||||
post_hooks: Option<Vec<String>>
|
||||
}
|
||||
#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, Default)]
|
||||
pub(crate) struct ChartExtended {
|
||||
#[serde(flatten)]
|
||||
@ -52,6 +58,7 @@ pub(crate) struct Config {
|
||||
pub(crate) patches: Option<Vec<Patch>>,
|
||||
#[serde(default = "empty_vec")]
|
||||
pub(crate) mirrors: Vec<Mirror>,
|
||||
pub(crate) hooks: Hooks,
|
||||
}
|
||||
|
||||
fn empty_vec<T>() -> Vec<T> {
|
||||
|
@ -61,6 +61,7 @@ fn exec(args: Args) -> Result<(), Box<dyn Error>> {
|
||||
// First step is to pull the chart to the working dir
|
||||
let current_repo = chart.chart.find_repo(config.repositories.clone())?;
|
||||
let chart_path = current_repo.pull_chart(chart.chart.clone(), workdir_path.clone())?;
|
||||
chart.chart.version = current_repo.get_version(chart_path.clone())?;
|
||||
if let Some(extensions) = chart.extensions.clone() {
|
||||
extensions
|
||||
.into_iter()
|
||||
@ -89,7 +90,7 @@ fn exec(args: Args) -> Result<(), Box<dyn Error>> {
|
||||
message_empty(&format!("{}", chart.chart.name));
|
||||
Ok(())
|
||||
})?;
|
||||
todo!()
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
@ -12,7 +12,7 @@ pub(crate) struct CustomCommands {
|
||||
impl Target for CustomCommands {
|
||||
fn push(
|
||||
&self,
|
||||
workdir_path: String,
|
||||
_: String,
|
||||
chart_path: String,
|
||||
chart_local: ChartExtended,
|
||||
dry_run: bool,
|
||||
@ -21,14 +21,14 @@ impl Target for CustomCommands {
|
||||
let mut reg = helmzoo_lib::template::register_handlebars();
|
||||
reg.register_template_string("cmd", cmd_tmpl)?;
|
||||
let cmd = reg.render("cmd", &chart_local)?;
|
||||
cli_exec_from_dir(cmd, workdir_path.clone())?;
|
||||
cli_exec_from_dir(cmd, chart_path.clone())?;
|
||||
}
|
||||
if !dry_run {
|
||||
for cmd_tmpl in self.upload.clone() {
|
||||
let mut reg = template::register_handlebars();
|
||||
reg.register_template_string("cmd", cmd_tmpl)?;
|
||||
let cmd = reg.render("cmd", &chart_local)?;
|
||||
cli_exec_from_dir(cmd, workdir_path.clone())?;
|
||||
cli_exec_from_dir(cmd, chart_path.clone())?;
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
|
@ -1,4 +1,4 @@
|
||||
use std::{
|
||||
use std::{
|
||||
fs::{self, read_dir, remove_dir_all, File, OpenOptions},
|
||||
io::Write,
|
||||
path::{Path, PathBuf},
|
||||
|
@ -73,4 +73,10 @@ impl RepositoryImpl for GitRepo {
|
||||
fn get_url(&self) -> String {
|
||||
self.url.clone()
|
||||
}
|
||||
|
||||
fn get_version(&self, chart_path: String) -> Result<String, Box<dyn Error>> {
|
||||
let cmd = "helm show chart . | yq '.version'".to_string();
|
||||
let version = cli_exec_from_dir(cmd, chart_path.clone())?;
|
||||
Ok(version)
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,12 @@ impl RepositoryImpl for HelmRepo {
|
||||
fn get_url(&self) -> String {
|
||||
self.url.clone()
|
||||
}
|
||||
|
||||
fn get_version(&self, chart_path: String) -> Result<String, Box<dyn Error>> {
|
||||
let cmd = "helm show chart . | yq '.version'".to_string();
|
||||
let version = cli_exec_from_dir(cmd, chart_path.clone())?;
|
||||
Ok(version)
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) enum RepoKind {
|
||||
@ -54,7 +60,7 @@ impl HelmRepo {
|
||||
}
|
||||
}
|
||||
|
||||
fn pull_oci(&self, chart: Chart, workdir_path: String) -> Result<String, Box<dyn Error>> {
|
||||
fn pull_oci(&self, mut chart: Chart, workdir_path: String) -> Result<String, Box<dyn Error>> {
|
||||
let args = match chart.version.as_str() {
|
||||
LATEST_VERSION => "".to_string(),
|
||||
_ => format!("--version {}", chart.version.clone()),
|
||||
@ -85,13 +91,11 @@ impl HelmRepo {
|
||||
Err(err) => return Err(Box::from(err)),
|
||||
};
|
||||
|
||||
// TODO: Do we really need it?
|
||||
let cmd = "helm show chart . | yq '.version'".to_string();
|
||||
let _version = cli_exec_from_dir(cmd, new_dir_name.clone())?;
|
||||
Ok(new_dir_name)
|
||||
}
|
||||
|
||||
fn pull_default(&self, chart: Chart, workdir_path: String) -> Result<String, Box<dyn Error>> {
|
||||
|
||||
fn pull_default(&self, mut chart: Chart, workdir_path: String) -> Result<String, Box<dyn Error>> {
|
||||
// Add repo and update
|
||||
let repo_local_name = general_purpose::STANDARD_NO_PAD.encode(self.get_url());
|
||||
let cmd = format!("helm repo add {} {}", repo_local_name, self.get_url());
|
||||
@ -125,9 +129,6 @@ impl HelmRepo {
|
||||
let cmd = format!("helm repo remove {}", repo_local_name);
|
||||
cli_exec(cmd)?;
|
||||
|
||||
// TODO: Do we really need it?
|
||||
let cmd = "helm show chart . | yq '.version'".to_string();
|
||||
let _version = cli_exec_from_dir(cmd, new_dir_name.clone())?;
|
||||
Ok(new_dir_name)
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ pub(crate) enum RepositoryKind {
|
||||
|
||||
pub trait RepositoryImpl {
|
||||
fn pull_chart(&self, chart: Chart, workdir_path: String) -> Result<String, Box<dyn Error>>;
|
||||
fn get_version(&self, chart_path: String) -> Result<String, Box<dyn Error>>;
|
||||
fn get_url(&self) -> String;
|
||||
}
|
||||
|
||||
|
3
renovate.json
Normal file
3
renovate.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
|
||||
}
|
Reference in New Issue
Block a user