Creating a portfolio


What are we going to do?

This tutorial will walk you through “Creating a portfolio” with a spoke account.

We will assume you have installed Service Catalog Puppet correctly.

We are going to perform the following steps:

  • create a portfolio file
  • define a product
  • define a version for our product
  • commit our portfolio file
  • verify the framework has create an AWS CodePipeline for our product version

During this process you will check your progress by verifying what the framework is doing at each step.

Step by step guide

Here are the steps you need to follow to “Creating a portfolio”

Adding the portfolio to the framework

  • Click on reinvent.yaml
  • Click Edit
  • Add the following to the end of the file (be careful with your indentation):
Portfolios:
  - DisplayName: "cloud-engineering-governance"
    Description: "Portfolio containing the products needed to govern AWS accounts"
    ProviderName: "cloud-engineering"
    Associations:
      - "arn:aws:iam::${AWS::AccountId}:role/TeamRole"
    Tags:
      - Key: "type"
        Value: "governance"
      - Key: "creator"
        Value: "cloud-engineering"
      - Key: "cost-center"
        Value: "cloud-engineering"
  
  • Verify the contents of your file matches this:
Schema: factory-2019-04-01
Products:
  - Name: "aws-config-enable-config"
    Owner: "data-governance@example.com"
    Description: "Enables AWS Config"
    Distributor: "cloud-engineering"
    SupportDescription: "Speak to data-governance@example.com about exceptions and speak to cloud-engineering@example.com about implementation issues"
    SupportEmail: "cloud-engineering@example.com"
    SupportUrl: 'https://wiki.example.com/cloud-engineering/governance/aws-config-enable-config'
    Tags:
      - Key: "type"
        Value: "governance"
      - Key: "creator"
        Value: "cloud-engineering"
      - Key: "cost-center"
        Value: "cloud-engineering"
    Versions:
      - Name: "v1"
        Description: "v1 of aws-config-enable-config"
        Active: True
        Source:
          Provider: "CodeCommit"
          Configuration:
            RepositoryName: "aws-config-enable-config"
            BranchName: "master"
Portfolios:
  - DisplayName: "cloud-engineering-governance"
    Description: "Portfolio containing the products needed to govern AWS accounts"
    ProviderName: "cloud-engineering"
    Associations:
      - "arn:aws:iam::${AWS::AccountId}:role/TeamRole"
    Tags:
      - Key: "type"
        Value: "governance"
      - Key: "creator"
        Value: "cloud-engineering"
      - Key: "cost-center"
        Value: "cloud-engineering"
  

Once you have updated the file fill in the fields for Author name, Email address, Commit message and hit Commit changes

Using a good / unique commit message will help you understand what is going on later.

Verify the portfolio was created

Once you have made your changes the ServiceCatalogFactory Pipeline should have run or if you were quick may still be running. If it has not yet started feel free to the hit the Release change button.

Once it has completed it should show the Source and Build stages in green to indicate they have completed successfully:

Once you have verified the pipeline has run you can go to Service Catalog portfolios to view your portfolio.

You should see the portfolio you just created listed:

You have now successfully created a portfolio!