mirror of https://github.com/rancher/dashboard.git
68 lines
2.0 KiB
JavaScript
Executable File
68 lines
2.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
// Update Chart.yaml and values.yaml files
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const yaml = require('js-yaml');
|
|
|
|
// TODO: Should already be in the template
|
|
// const UI_PLUGIN_ANNOTATION_NAME = 'catalog.cattle.io/ui-component';
|
|
// const UI_PLUGIN_ANNOTATION_VALUE = 'plugins';
|
|
|
|
console.log('Helm file update');
|
|
|
|
if (process.argv.length !== 4) {
|
|
console.log('Incorrect number of arguments');
|
|
process.exit(1);
|
|
}
|
|
|
|
const destFolder = process.argv[2];
|
|
const pkgFilePath = process.argv[3];
|
|
|
|
const pkgFile = JSON.parse(fs.readFileSync(pkgFilePath, 'utf8'));
|
|
|
|
const chartFolder = destFolder;
|
|
const chartFile = path.join(chartFolder, 'Chart.yaml');
|
|
const valuesFile = path.join(chartFolder, 'values.yaml');
|
|
|
|
if (!fs.existsSync(chartFolder)) {
|
|
console.log('Charts folder does not exist');
|
|
process.exit(1);
|
|
}
|
|
|
|
// --------------------------------------------------------------------------------
|
|
// Chart.yaml
|
|
// --------------------------------------------------------------------------------
|
|
const chart = yaml.load(fs.readFileSync(chartFile, 'utf8'));
|
|
let updated = false;
|
|
|
|
// Add in annotations to match any rules in the package file
|
|
if (pkgFile.rancher && typeof pkgFile.rancher === 'object') {
|
|
// See if there are any annotations and merge them in, if there are
|
|
if (pkgFile.rancher.annotations) {
|
|
chart.annotations = chart.annotations || {};
|
|
Object.keys(pkgFile.rancher.annotations).forEach((key) => {
|
|
chart.annotations[key] = pkgFile.rancher.annotations[key];
|
|
updated = true;
|
|
});
|
|
}
|
|
}
|
|
|
|
if (updated) {
|
|
// Write out updated file
|
|
const str = yaml.dump(chart);
|
|
|
|
fs.writeFileSync(chartFile, str, 'utf8');
|
|
}
|
|
|
|
// --------------------------------------------------------------------------------
|
|
// values.yaml
|
|
// --------------------------------------------------------------------------------
|
|
|
|
const values = yaml.load(fs.readFileSync(valuesFile, 'utf8'));
|
|
|
|
const valuesYaml = yaml.dump(values, { quotingType: '"' });
|
|
|
|
fs.writeFileSync(valuesFile, valuesYaml, 'utf8');
|