%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 * Sun Apr 23 2023 Python_Bot - 2.0.0-1 - Package Spec generated