diff options
Diffstat (limited to 'python-sceptre-s3-packager.spec')
| -rw-r--r-- | python-sceptre-s3-packager.spec | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/python-sceptre-s3-packager.spec b/python-sceptre-s3-packager.spec new file mode 100644 index 0000000..76f82c2 --- /dev/null +++ b/python-sceptre-s3-packager.spec @@ -0,0 +1,283 @@ +%global _empty_manifest_terminate_build 0 +Name: python-sceptre-s3-packager +Version: 0.4.0 +Release: 1 +Summary: S3 packager for Sceptre 2 +License: MIT License +URL: https://github.com/henrist/sceptre-s3-packager +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2b/09/283db3fc1735a779322e97005ebceb6df0f4648f3927cd368868c5277b68/sceptre_s3_packager-0.4.0.tar.gz +BuildArch: noarch + +Requires: python3-sceptre + +%description +# sceptre-s3-packager + +[](https://badge.fury.io/py/sceptre-s3-packager) + + +Hook and resolver for [Sceptre](https://sceptre.cloudreach.com/latest/) `v2` to +package code dependencies and uploading it to an S3 bucket for usage in a +template. + +Inspired by https://github.com/cloudreach/sceptre-zip-code-s3 + +## Getting started + +Only Python 3 is actively being supported. + +Install using pip: + +```bash +pip install sceptre-s3-packager +``` + +Use the hook and resolver in your template config: + +```yaml +template_path: ... +hooks: + before_create: + - !sceptre_s3_upload ./directory-to-zip-to-s3 + before_update: + - !sceptre_s3_upload ./directory-to-zip-to-s3 +sceptre_user_data: + Code: + S3Bucket: my-s3-bucket + S3Key: !sceptre_s3_key ./directory-to-zip-to-s3 +``` + +Use the data in the template, e.g. by using Jinja2 template with something +like: + +```yaml + MyLambda: + Type: AWS::Lambda::Function + Properties: + Code: + S3Bucket: {{ sceptre_user_data.Code.S3Bucket }} + S3Key: {{ sceptre_user_data.Code.S3Key }} +``` + +## Usage + +Hook: + +- `!sceptre_s3_upload <directory>` (reads `S3Bucket` from + `sceptre_user_data.Code.S3Bucket`) +- `!sceptre_s3_upload <directory>^^<s3-bucket>` + +Resolver: + +- `!sceptre_s3_key <directory>` (returns a path where the packaged + directory is uploaded, e.g. `sceptre/68063a99bb6d95401d688d28f19ee412`) + +## Details + +The hook will zip the contents of the directory and upload it as +`sceptre/MD5HASH` to the S3-bucket, with `MD5HASH` being md5 hash of the zip +file content. + +When zipping all files will be given a fixed modification time, so that only +the contents of the files are used to determine the upload file and cause +invalidation on changes. + + +%package -n python3-sceptre-s3-packager +Summary: S3 packager for Sceptre 2 +Provides: python-sceptre-s3-packager +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-sceptre-s3-packager +# sceptre-s3-packager + +[](https://badge.fury.io/py/sceptre-s3-packager) + + +Hook and resolver for [Sceptre](https://sceptre.cloudreach.com/latest/) `v2` to +package code dependencies and uploading it to an S3 bucket for usage in a +template. + +Inspired by https://github.com/cloudreach/sceptre-zip-code-s3 + +## Getting started + +Only Python 3 is actively being supported. + +Install using pip: + +```bash +pip install sceptre-s3-packager +``` + +Use the hook and resolver in your template config: + +```yaml +template_path: ... +hooks: + before_create: + - !sceptre_s3_upload ./directory-to-zip-to-s3 + before_update: + - !sceptre_s3_upload ./directory-to-zip-to-s3 +sceptre_user_data: + Code: + S3Bucket: my-s3-bucket + S3Key: !sceptre_s3_key ./directory-to-zip-to-s3 +``` + +Use the data in the template, e.g. by using Jinja2 template with something +like: + +```yaml + MyLambda: + Type: AWS::Lambda::Function + Properties: + Code: + S3Bucket: {{ sceptre_user_data.Code.S3Bucket }} + S3Key: {{ sceptre_user_data.Code.S3Key }} +``` + +## Usage + +Hook: + +- `!sceptre_s3_upload <directory>` (reads `S3Bucket` from + `sceptre_user_data.Code.S3Bucket`) +- `!sceptre_s3_upload <directory>^^<s3-bucket>` + +Resolver: + +- `!sceptre_s3_key <directory>` (returns a path where the packaged + directory is uploaded, e.g. `sceptre/68063a99bb6d95401d688d28f19ee412`) + +## Details + +The hook will zip the contents of the directory and upload it as +`sceptre/MD5HASH` to the S3-bucket, with `MD5HASH` being md5 hash of the zip +file content. + +When zipping all files will be given a fixed modification time, so that only +the contents of the files are used to determine the upload file and cause +invalidation on changes. + + +%package help +Summary: Development documents and examples for sceptre-s3-packager +Provides: python3-sceptre-s3-packager-doc +%description help +# sceptre-s3-packager + +[](https://badge.fury.io/py/sceptre-s3-packager) + + +Hook and resolver for [Sceptre](https://sceptre.cloudreach.com/latest/) `v2` to +package code dependencies and uploading it to an S3 bucket for usage in a +template. + +Inspired by https://github.com/cloudreach/sceptre-zip-code-s3 + +## Getting started + +Only Python 3 is actively being supported. + +Install using pip: + +```bash +pip install sceptre-s3-packager +``` + +Use the hook and resolver in your template config: + +```yaml +template_path: ... +hooks: + before_create: + - !sceptre_s3_upload ./directory-to-zip-to-s3 + before_update: + - !sceptre_s3_upload ./directory-to-zip-to-s3 +sceptre_user_data: + Code: + S3Bucket: my-s3-bucket + S3Key: !sceptre_s3_key ./directory-to-zip-to-s3 +``` + +Use the data in the template, e.g. by using Jinja2 template with something +like: + +```yaml + MyLambda: + Type: AWS::Lambda::Function + Properties: + Code: + S3Bucket: {{ sceptre_user_data.Code.S3Bucket }} + S3Key: {{ sceptre_user_data.Code.S3Key }} +``` + +## Usage + +Hook: + +- `!sceptre_s3_upload <directory>` (reads `S3Bucket` from + `sceptre_user_data.Code.S3Bucket`) +- `!sceptre_s3_upload <directory>^^<s3-bucket>` + +Resolver: + +- `!sceptre_s3_key <directory>` (returns a path where the packaged + directory is uploaded, e.g. `sceptre/68063a99bb6d95401d688d28f19ee412`) + +## Details + +The hook will zip the contents of the directory and upload it as +`sceptre/MD5HASH` to the S3-bucket, with `MD5HASH` being md5 hash of the zip +file content. + +When zipping all files will be given a fixed modification time, so that only +the contents of the files are used to determine the upload file and cause +invalidation on changes. + + +%prep +%autosetup -n sceptre-s3-packager-0.4.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-s3-packager -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.0-1 +- Package Spec generated |
