Skip to main content
GSA Logo

Cloud Economics

About MCaaS

FAQ

Access/Authentication

CI/CD

Configuration

General

Monitoring

Access/Authentication

How do I connect to my S3 bucket?

MCaaS uses role-based access for S3 buckets. We do not provide access keys or secret access keys. Your application can connect to the S3 bucket by setting the assumeRoleArn property of the HelmRelease file with the IAM Role ARN. This value will be supplied during the bucket creation request process.

How can I access my database?

MCaaS does not provide direct database access. We will provide a JumpBox with SSH access and you can install the client tools necessary to communicate with the database.

CI/CD

How do I build a new image?

Builds are triggered by opening Pull Requests (PRs) from ‘feature’ branches to target branches. The initially configured target branches are ‘develop, testing, staging, prod’. These configurations can be updated in the Jenkinsfile located in your <tenant>-<module>-jenkins-config repository.

Where can I check the build status for my application?

Each build status can be found in the multi-tenant Jenkins under your tenant Folder. Navigate through the Jenkins folder structure until you get to the microservice that was recently triggered to build. Check the most recent build by clicking on the recently built branch and then view the build history. See the Jenkins documentation under Request Access.

How do I access an environment variable during a Jenkins build?

Environment variables can be accessed during a build by using the in the ARG command in the Dockerfile. To create these variables in Jenkins, see our Environment Variables page.

Can I save build artifacts from one job to be used by another job?

This feature is not currently supported. We are planning this work for a future release and will update this page when available.

Can I build multiple containers from a single repository?

MCaaS is designed so that each repository will build a single image. A repository must include a single Dockerfile at the parent level. We do not support nested folder structures with a Dockerfile hierarchy.

How do I deploy a new image?

A deployment gets triggered by a change to the HelmRelease file in the flux-config repository. When a new image gets pushed to the registry, Flux automatically grabs it and upserts the new tag into the corresponding HelmRelease file in Git. This action modifies the HelmRelease file, so Flux grabs the new change in Git and pushes it to the EKS cluster. The HelmOperator then takes the HelmRelease file and grabs the referenced Helm chart and the registry image to start the deployment. The deployment activity is performed by Flagger. Flagger takes the new image and attempts to start a new deployment. Once the new deployment pod is up (and healthy), the traffic is shifted from the old deployment pod to the new deployment pod and the old deployment pod is deleted. If the new deployment fails, the old deployment pod will remain. See “How do I know if my application has been successfully deployed?”

How do I know if my application has been successfully deployed?

See the Observability Tool > APM MCaaS documentation to access Datadog. Verify that the service is running successfully and that the image tag matches the tag in the corresponding helm release file.

How can I integrate new functionality into my Jenkins pipeline?

MCaaS uses the Jenkins Templating Engine (JTE) plugin to create shareable workflows that define the business logic of your software delivery processes while allowing for optimal pipeline code reuse by pulling out tool specific implementations into library modules.

Therefore, new JTE libraries must be created to incorporate any new pipeline functionality. For more information visit the JTE docs - JTE Library Sources

Why didn’t Flux pick up my new image?

Flux monitors the Elastic Container Registry (ECR) to check for newer images to deploy. If two images are functionally the same, they may get tagged with different versions but their timestamps in ECR will be identical. In this case, Flux does not consider there to be a newer image and will not deploy the newer tag.

Configuration

Am I able to change the port for livenessProbe and readinessProbe?

We do not currently support this feature. This port is determined by the containerPort value.

General

How do I request a service or feature that is not currently offered?

Please use the Jira Service Management Tenant Request form to request new features or services. These requests get reviewed by the Government and prioritized based on business value and impact. We will keep you updated on the status throughout the process.

Monitoring

How do I view my application logs?

All application logs will be sent to Datadog. To enable Datadog integration and learn more about the tool, see our Datadog Setup page.

How do I enable application tracing?

See our Datadog Tracing page.

Which application image is currently deployed?

In Datadog, you can check under Infrastructure → Containers. You can filter containers by name using the left-hand “Container Name” sub menu dropdown. Clicking on a container will expand the details and show the container image version from ECR.

How do I find the source of a Pod?

In Datadog, you can check under Infrastructure → Containers → Nodes → see YAML.

What is the IP address of my EC2 instance?

In Datadog, you can check under Infrastructure → Containers → Nodes.

test