Update the custom command mirror
This commit is contained in:
parent
aabcb21f3b
commit
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
|
||||
|
@ -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(())
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user