Skip to content

Instantly share code, notes, and snippets.

@nivb52
Last active August 15, 2024 09:57
Show Gist options
  • Select an option

  • Save nivb52/87313a8a569e6e5ab2a3cf6622fedce6 to your computer and use it in GitHub Desktop.

Select an option

Save nivb52/87313a8a569e6e5ab2a3cf6622fedce6 to your computer and use it in GitHub Desktop.
Working with Confd 2
confd --version
find -name "confd" -type d |
while IFS= read -r dir; do
echo "$dir";
export SERVICE_NAME=`echo "$dir" | cut -d "/" -f 2 `
mkdir -p "$dir"/conf.d;
mkdir -p "$dir"/templates;
cp "$dir"/*.tmpl "$dir"/templates;
cp "$dir"/*.toml "$dir"/conf.d;
echo "==== Service Name: $SERVICE_NAME ========"
sed "s|/service/config|$dir|" "$dir"/production.toml > "$dir"/conf.d/production.toml
sed "s|/service/api|$dir|" "$dir"/swagger.toml > "$dir"/conf.d/swagger.toml
cat "$dir"/conf.d/production.toml
sleep 4
#confd -onetime -log-level debug -confdir "$dir" -config-file "$dir"/conf.d/production.toml -backend etcd -node http://YOUR-END-POINT/etcd -prefix /
confd -onetime -log-level debug -confdir "$dir" -config-file "$dir"/conf.d/production.toml -backend file -file ./exported.yaml -prefix /
sleep 3
done
##etcdtool -p "http://YOUR-END-POINT/etcd" -d export --format YAML /configuration/ > exported.yaml
#etcdtool -p "http://localhost:2379/etcd" -d import --format YAML --yes --replace /configuration/"${product}" filename.yaml
@nivb52
Copy link
Author

nivb52 commented Aug 15, 2024

Some more helper functions

// command of confd

confd -onetime -log-level debug -confdir ./confd -config-file ./confd/conf.d/production.toml -backend file -file ~/Downloads/exported.yaml -prefix /configuration

// to a file

&> ~/Downloads/configuration-task-shell-scripts/swagger-output-confd.txt

// copy only the errors

❯ cat  ~/Downloads/configuration-task-shell-scripts/swagger-output-confd.txt | grep ERROR &> ~/Downloads/configuration-task-shell-scripts/swagger-errors-confd.txt

// clean errors from output (no erro file needed): // not sure maybe 1st line is missed

sed -e '/INFO/d' -e '/DEBUG/d'   -e 's/[[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}T[[:digit:]]\{2\}:[[:digit:]]\{2\}:[[:digit:]]\{2\}.[[:digit:]]\{2\}:[[:digit:]]\{2\} COMPUTER-NAME confd//g' -e 's/^.*executing//'  ~/Downloads/configuration-task-shell-scripts/swagger-output-confd.txt  > ~/Downloads/configuration-task-shell-scripts/swagger-clean-errors.txt 

clean errors from errors file :
global rewgex:

❯ sed -e 's/[[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}T[[:digit:]]\{2\}:[[:digit:]]\{2\}:[[:digit:]]\{2\}.[[:digit:]]\{2\}:[[:digit:]]\{2\} COMPUTER-NAME confd//g' ~/Downloads/configuration-task-shell-scripts/swagger-errors-confd.txt  > ~/Downloads/configuration-task-shell-scripts/swagger-clean-errors.txt 

simple:

❯ cat   ~/Downloads/configuration-task-shell-scripts/swagger-errors-confd.txt | sed -e 's/COMPUTER-NAME confd//g' -e 's/2023-08-28T19:14:57+03:00[13886]: //g' 

===========================================
101 other regex (not for shell) :

  • lookbehind
(?<=ERROR)([0-9 a-zA-Z:"-<>]|\.){1,}
 - date and cpu name matc
.?\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}\:\d{2} ([[:alpha:]]|-){1,18} confd

sed info:
https://www.tutorialspoint.com/unix/unix-regular-expressions.htm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment