diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-sceptre-cmd-resolver.spec | 353 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 355 insertions, 0 deletions
@@ -0,0 +1 @@ +/sceptre-cmd-resolver-2.0.0.tar.gz diff --git a/python-sceptre-cmd-resolver.spec b/python-sceptre-cmd-resolver.spec new file mode 100644 index 0000000..ae2b2bc --- /dev/null +++ b/python-sceptre-cmd-resolver.spec @@ -0,0 +1,353 @@ +%global _empty_manifest_terminate_build 0 +Name: python-sceptre-cmd-resolver +Version: 2.0.0 +Release: 1 +Summary: Sceptre resolver to execute generic shell commands +License: Apache2 +URL: https://github.com/Sceptre/sceptre-resolver-cmd +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/65/80/acb986323af0b3e5e3eb59bb293e6671cdc43ded91620a24a1a58b2e28f7/sceptre-cmd-resolver-2.0.0.tar.gz +BuildArch: noarch + +Requires: python3-sceptre +Requires: python3-pytest + +%description +# Sceptre shell command resolver + +This resolver can be used to execute any shell command. + +## Why? + +This resolver is handy, because it allows you to dynamically resolve parameters at runtime. +The beautiful thing about it is that it's infintely extensible! You can use it to connect +any command line tool to Sceptre. + +Use it in conjunction with the typical unix tools (cat, cut, grep etc...) or third party +ones (vault, op, etc...) + +Use the `!rcmd` tag to activate the resolver. You can also use pipe commands, and generic +bash (maybe powershell too but I haven't tried it). + +The yaml tag `!cmd` is already used by sceptre hooks, unfortunately it wasn't possible to use +the same YAML tag for this custom resolver, so the tag `!rcmd` was used instead. + +## Installation + +``` +# To install directly from PyPI +pip install sceptre-cmd-resolver + +# To install from this git repo +pip install git+https://github.com/Sceptre/sceptre-resolver-cmd.git +``` + +## Usage / Examples + +Use the `!rcmd` tag to activate the resolver. You can also use pipe commands, and generic +bash (perhaps even powershell but I haven't tested it). + +```yaml +# Resolve the contents of a file with cat +parameters: + DatabasePassword: !rcmd cat .env/dev/password +``` + +```yaml +# Resolve data from a json file with cat + jq +parameters: + DatabasePassword: !rcmd cat .env/data | jq -r '.Passwords.dev' +``` + +```yaml +# Resolve a secret in vault using the vault CLI (you must be logged in!) +parameters: + DatabasePassword: !rcmd vault kv get -field=password myapp/database/dev +``` + +```yaml +parameters: + # Resolve the EC2 AMI Image ID to the latest official version of Ubuntu 20.04 at deploy time + EC2ImageIdUbuntu: !rcmd >- + aws ssm get-parameters + --region eu-west-2 + --names /aws/service/canonical/ubuntu/server/20.04/stable/current/amd64/hvm/ebs-gp2/ami-id + --query 'Parameters[0].[Value]' --output text + + # Resolve the EC2 AMI Image ID to the latest official version Windows Server 2019 at deploy time + EC2ImageIdWindows: !rcmd >- + aws ssm get-parameters + --region eu-west-2 + --names /aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base + | jq -r '.Parameters[0].Value' | jq -r '.image_id' +``` + +```yaml +# Add a human readable comment with the deployment date +parameters: + DeployNote: !rcmd echo "Deployed by `whoami` on `date` :-)" +``` + +```yaml +# Execute the command with the same AWS profile provided to Sceptre +parameters: + CanonicalUserId: !rcmd + command: "aws s3api list-buckets --query Owner.ID --output text" +``` + +```yaml +# Override the command execution with a specific AWS profile, region, and/or sceptre_role +parameters: + CanonicalUserId: !rcmd + command: "aws s3api list-buckets --query Owner.ID --output text" + profile: "my-profile" + region: "us-west-2" + sceptre_role: "arn:aws:iam::123456:role/my-role-to-override-the-stack-role" +``` + + + + +%package -n python3-sceptre-cmd-resolver +Summary: Sceptre resolver to execute generic shell commands +Provides: python-sceptre-cmd-resolver +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-sceptre-cmd-resolver +# Sceptre shell command resolver + +This resolver can be used to execute any shell command. + +## Why? + +This resolver is handy, because it allows you to dynamically resolve parameters at runtime. +The beautiful thing about it is that it's infintely extensible! You can use it to connect +any command line tool to Sceptre. + +Use it in conjunction with the typical unix tools (cat, cut, grep etc...) or third party +ones (vault, op, etc...) + +Use the `!rcmd` tag to activate the resolver. You can also use pipe commands, and generic +bash (maybe powershell too but I haven't tried it). + +The yaml tag `!cmd` is already used by sceptre hooks, unfortunately it wasn't possible to use +the same YAML tag for this custom resolver, so the tag `!rcmd` was used instead. + +## Installation + +``` +# To install directly from PyPI +pip install sceptre-cmd-resolver + +# To install from this git repo +pip install git+https://github.com/Sceptre/sceptre-resolver-cmd.git +``` + +## Usage / Examples + +Use the `!rcmd` tag to activate the resolver. You can also use pipe commands, and generic +bash (perhaps even powershell but I haven't tested it). + +```yaml +# Resolve the contents of a file with cat +parameters: + DatabasePassword: !rcmd cat .env/dev/password +``` + +```yaml +# Resolve data from a json file with cat + jq +parameters: + DatabasePassword: !rcmd cat .env/data | jq -r '.Passwords.dev' +``` + +```yaml +# Resolve a secret in vault using the vault CLI (you must be logged in!) +parameters: + DatabasePassword: !rcmd vault kv get -field=password myapp/database/dev +``` + +```yaml +parameters: + # Resolve the EC2 AMI Image ID to the latest official version of Ubuntu 20.04 at deploy time + EC2ImageIdUbuntu: !rcmd >- + aws ssm get-parameters + --region eu-west-2 + --names /aws/service/canonical/ubuntu/server/20.04/stable/current/amd64/hvm/ebs-gp2/ami-id + --query 'Parameters[0].[Value]' --output text + + # Resolve the EC2 AMI Image ID to the latest official version Windows Server 2019 at deploy time + EC2ImageIdWindows: !rcmd >- + aws ssm get-parameters + --region eu-west-2 + --names /aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base + | jq -r '.Parameters[0].Value' | jq -r '.image_id' +``` + +```yaml +# Add a human readable comment with the deployment date +parameters: + DeployNote: !rcmd echo "Deployed by `whoami` on `date` :-)" +``` + +```yaml +# Execute the command with the same AWS profile provided to Sceptre +parameters: + CanonicalUserId: !rcmd + command: "aws s3api list-buckets --query Owner.ID --output text" +``` + +```yaml +# Override the command execution with a specific AWS profile, region, and/or sceptre_role +parameters: + CanonicalUserId: !rcmd + command: "aws s3api list-buckets --query Owner.ID --output text" + profile: "my-profile" + region: "us-west-2" + sceptre_role: "arn:aws:iam::123456:role/my-role-to-override-the-stack-role" +``` + + + + +%package help +Summary: Development documents and examples for sceptre-cmd-resolver +Provides: python3-sceptre-cmd-resolver-doc +%description help +# Sceptre shell command resolver + +This resolver can be used to execute any shell command. + +## Why? + +This resolver is handy, because it allows you to dynamically resolve parameters at runtime. +The beautiful thing about it is that it's infintely extensible! You can use it to connect +any command line tool to Sceptre. + +Use it in conjunction with the typical unix tools (cat, cut, grep etc...) or third party +ones (vault, op, etc...) + +Use the `!rcmd` tag to activate the resolver. You can also use pipe commands, and generic +bash (maybe powershell too but I haven't tried it). + +The yaml tag `!cmd` is already used by sceptre hooks, unfortunately it wasn't possible to use +the same YAML tag for this custom resolver, so the tag `!rcmd` was used instead. + +## Installation + +``` +# To install directly from PyPI +pip install sceptre-cmd-resolver + +# To install from this git repo +pip install git+https://github.com/Sceptre/sceptre-resolver-cmd.git +``` + +## Usage / Examples + +Use the `!rcmd` tag to activate the resolver. You can also use pipe commands, and generic +bash (perhaps even powershell but I haven't tested it). + +```yaml +# Resolve the contents of a file with cat +parameters: + DatabasePassword: !rcmd cat .env/dev/password +``` + +```yaml +# Resolve data from a json file with cat + jq +parameters: + DatabasePassword: !rcmd cat .env/data | jq -r '.Passwords.dev' +``` + +```yaml +# Resolve a secret in vault using the vault CLI (you must be logged in!) +parameters: + DatabasePassword: !rcmd vault kv get -field=password myapp/database/dev +``` + +```yaml +parameters: + # Resolve the EC2 AMI Image ID to the latest official version of Ubuntu 20.04 at deploy time + EC2ImageIdUbuntu: !rcmd >- + aws ssm get-parameters + --region eu-west-2 + --names /aws/service/canonical/ubuntu/server/20.04/stable/current/amd64/hvm/ebs-gp2/ami-id + --query 'Parameters[0].[Value]' --output text + + # Resolve the EC2 AMI Image ID to the latest official version Windows Server 2019 at deploy time + EC2ImageIdWindows: !rcmd >- + aws ssm get-parameters + --region eu-west-2 + --names /aws/service/ami-windows-latest/Windows_Server-2019-English-Full-Base + | jq -r '.Parameters[0].Value' | jq -r '.image_id' +``` + +```yaml +# Add a human readable comment with the deployment date +parameters: + DeployNote: !rcmd echo "Deployed by `whoami` on `date` :-)" +``` + +```yaml +# Execute the command with the same AWS profile provided to Sceptre +parameters: + CanonicalUserId: !rcmd + command: "aws s3api list-buckets --query Owner.ID --output text" +``` + +```yaml +# Override the command execution with a specific AWS profile, region, and/or sceptre_role +parameters: + CanonicalUserId: !rcmd + command: "aws s3api list-buckets --query Owner.ID --output text" + profile: "my-profile" + region: "us-west-2" + sceptre_role: "arn:aws:iam::123456:role/my-role-to-override-the-stack-role" +``` + + + + +%prep +%autosetup -n sceptre-cmd-resolver-2.0.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-sceptre-cmd-resolver -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.0-1 +- Package Spec generated @@ -0,0 +1 @@ +2e93640641114162f041d30bc77ed2dd sceptre-cmd-resolver-2.0.0.tar.gz |
