{"id":18904931,"url":"https://github.com/concon121/aws-conduit","last_synced_at":"2025-04-15T04:11:10.046Z","repository":{"id":57413206,"uuid":"111246452","full_name":"concon121/aws-conduit","owner":"concon121","description":"AWS Service Catalog Product management centred around facilitating CI Pipelines","archived":false,"fork":false,"pushed_at":"2018-05-21T09:24:19.000Z","size":92,"stargazers_count":2,"open_issues_count":10,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T15:46:20.722Z","etag":null,"topics":["aws","service-catalog"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/concon121.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-18T23:02:08.000Z","updated_at":"2019-01-25T16:05:03.000Z","dependencies_parsed_at":"2022-09-07T03:00:47.465Z","dependency_job_id":null,"html_url":"https://github.com/concon121/aws-conduit","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concon121%2Faws-conduit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concon121%2Faws-conduit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concon121%2Faws-conduit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concon121%2Faws-conduit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/concon121","download_url":"https://codeload.github.com/concon121/aws-conduit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249003949,"owners_count":21196793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","service-catalog"],"created_at":"2024-11-08T09:09:52.686Z","updated_at":"2025-04-15T04:11:10.029Z","avatar_url":"https://github.com/concon121.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS Conduit\n\nProduct management for AWS Service Catalog.\n\n## Installation\n\nAWS Conduit is available to install via pip.\n\n```\npip install aws_conduit\n```\n\n## Usage\n```\n\u003e conduit ?\n\nUsage:\n    conduit COMMAND [ARGS...]\n    conduit help [COMMAND]\n\nOptions:\n    -h, --help  show this help message and exit\n\n\nCommands:\n    build          Release a build from a conduitspec.yaml\n    help (?)       give detailed help on a specific sub-command\n    portfolio      Portfolio management for the masses!\n    product        Product management for the masses!\n    provision      Provision a product from a conduitspec.yaml\n    start          Set up the initial Conduit resources.\n    support        Set the default support configuration.\n    terminate      Terminate a product from a conduitspec.yaml\n```\n\n## Tutorial\n\n### Initial Setup\n\nAWS conduit needs to set up some intial resources to get started.\n\n#### Whats in the box?\n* An S3 bucket which is used to store configuration and cloudformation resources. This bucket will be named ```conduit-config-${AWS::AccountId}```.\n* An IAM role which deployments happen through.  This will be named ```conduit-provisioner-role```.\n* An IAM policy which custom deploy profiles are added to.  This will be named ```conduit-policy```.\n\n```\n\u003e conduit start\n```\n\n### Support Details\n\nService Catalog products can have support information assigned to them.  This is so that if anything goes wrong with your products, your users know how to contact you!\n\n```\n\u003e conduit support -e \"noone@home.com\" -u \"http://madeup.com\" -d \"This is the groovy support info\"\n```\n\n### Creating a new Portfolio\n\nYou'll want to create a new portfolio before you start adding new products.  A portfolio is a collection of products that can be shared with other users and other AWS accounts.\n\n```\n\u003e conduit portfolio create -n \"My Portfolio\" -d \"This is my portfolio description\"\n```\n\n### Creating a new Product\n\nWhen you have a portfolio in place, start adding new products to it!\n\n```\n\u003e conduit product create -n \"My Product\" -d \"this is my product info\" -c \"yaml\" -p \"My Portfolio\"\n```\n\n### The conduitspec.yaml\n\nThe aim of this file is to behave as a descriptor of your product, facilitating automation of builds and deployments by proving Conduit with an appropriate set of metadata.\n\n#### Example coduitspec.yaml\n\n```\nportfolio: \"test-portfolio\"      # The name of the portfolio this product belongs to.\nproduct: \"groovy-test-product\"   # The name of this product.\ncfn:                             # Cloudformation information\n  template: \"TestProduct.yaml\"   # The location of the cloudformation template relative to the current directory.\n  type: \"yaml\"                   # yaml or json\ndeployProfile:                   # Custom IAM policy which describes the actions are resources involved\n  - actions:                     # in deployment of your product.\n      - \"s3:*\"\n    resources:\n      - \"*\"\n```\n\n### CI Build Increments\n\nWhen using a conduitspec.yaml, product changes can be published via semantic versioning of your release artifacts.\n\nThe build command will create a new artifact version in Service Catalog, of the product defined by the conduitspec.yaml.\n\n```\n                         # Starting on version 0.0.0\n\u003e conduit build          # 0.0.0+build1\n\u003e conduit build          # 0.0.0+build2\n\u003e conduit build          # 0.0.0+build3\n\u003e conduit build patch    # 0.0.1\n\u003e conduit build patch    # 0.0.2\n\u003e conduit build          # 0.0.2+build1\n\u003e conduit build minor    # 0.1.0\n\u003e conduit build major    # 1.0.0\n```\n\nBuild versions (+build...) are considered to be temporary.  Upon release of a major / minior / patch version, all build versions that are lower than the new version are removed from Service Catalog, so your product version history is kept nice and tidy!\n\n### Provisioning\n\nWhen using a conduitspec.yaml, you can provision and terminate your product on the cli, all you need to do is provide a name for the provisioned product.  In a CI environment, it is recommended that the name you provide reflects the environment you are deploying to.\n\nNOTE: At the time of writing, stack parameters are input on the command line.  This is not particularly automation friendly and will be improved in the near future.\n\n#### Example Provisioner\n\n```\n\u003e conduit provision -n test-product-dev\nAccount Id: 12345678910\nEnsuring Conduit is up to date...\nAssociating conduit with test-portfolio\nAssociating conduit with example-port\nProvisioning product...\nGetting launch path...\nGetting input parameters...\nHello (Default: World!): yolo!\nAssumiing conduit IAM role...\nProvisioning now...\nProvision Success!\n```\n\n#### Example Terminator\n\n```\nconduit terminate -n test-product-dev\nAccount Id: 12345678910\nEnsuring Conduit is up to date...\nAssociating conduit with test-portfolio\nAssociating conduit with example-port\nTerminating product...\nAssumiing consuit IAM role...\nTerminating now...\nTerminate complete!\n```\n\n#### Example Updater\n\nIf you release a new version of a product after provisioning it, re-provisioning will automatically perform an update for you.\n\n```\n\u003e conduit provision -n test-product-dev\nAccount Id: 12345678910\nEnsuring Conduit is up to date...\nAssociating conduit with test-portfolio\nAssociating conduit with example-port\nProvisioning product...\nGetting launch path...\nGetting input parameters...\nHello (Default: World!): yolo!\nAssumiing conduit IAM role...\nUpdating now...\nUpdate Success!\n```\n\n### Utility Commands\n\n#### List all Portfolios\n```\n\u003e conduit portfolio list\nName                          Id                            Description\n------------------------------------------------------------------------------------------\ntest-portfolio                port-c3ghpcitagt2w            test portfolio description\nanother-portfolio             port-dfh2m6vzbwweu            groovy portfolio\n```\n\n#### List all products\n```\n\u003e conduit product list\nName                          Id                            Description\n------------------------------------------------------------------------------------------\ngroovy-test-product           prod-wkc4otel6chxu            Groovy products are groovy\nanother-test-product          prod-craeqnatjljsc            Another test product\n```\n\n## Best Practices\n\n* conduitspec.yaml is king!  Yes, you can do stuff without it, but life will be easier if you embrace it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcon121%2Faws-conduit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconcon121%2Faws-conduit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcon121%2Faws-conduit/lists"}