summaryrefslogtreecommitdiff
path: root/python-sceptre-cmd-resolver.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-sceptre-cmd-resolver.spec')
-rw-r--r--python-sceptre-cmd-resolver.spec353
1 files changed, 353 insertions, 0 deletions
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