Skip to content

Commit

Permalink
Merge pull request #8 from bcgov/migrate-old-devhub-content
Browse files Browse the repository at this point in the history
Migrate DevHub content from Old DevHub
  • Loading branch information
sheaphillips authored May 17, 2024
2 parents 03bf66e + 85d9221 commit 9e08916
Show file tree
Hide file tree
Showing 15 changed files with 259 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ logs
node_modules
/test.sh
patcher.py
test_patcher.py
test_patcher.py
25 changes: 25 additions & 0 deletions docs-drafts/authorization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Authentication and Authorization

We have several solutions for different parts of identity management and authorization to help you to integrate with BC Government tools.

## Keycloack Pathfinder Pathfinder Single Sign On (SSO)

Pathfinder Single Sign On (SSO) is the Common Component login service that connects your users to your applications.

Based on the Red Hat Single Sign On Product (Redhat SSO and Open Source Keycloak), it provides an industry standard Open ID Connect (OIDC) and enterprise-policy compliant means of implementing authentication within applications that are also simple for development teams to provision and utilize.

### SSO Resources

* [Request SSO Client Creation](https://github.com/bcgov/sso-keycloak/wiki/SSO-Onboarding)
* [KeyCloak Wiki](https://github.com/bcgov/sso-keycloak/wiki)
* [Pathfinder SSO Service Definition](https://digital.gov.bc.ca/common-components/pathfinder-sso)

## Digital Trust Identity Management

Digital Trust is the BC Government's Digital Credential Solutions. This includes the BC Wallet, BCeId and other verifiable credentials used to connect services for the citizens of BC together under one umbrella login.

## Digital Trust Resources

* [Digital Trust Home](https://digital.gov.bc.ca/digital-trust/)
* [BC Wallet](https://digital.gov.bc.ca/digital-trust/about/about-bc-wallet/)
* [Personal Credential](https://digital.gov.bc.ca/digital-trust/about/about-person-credential/)
67 changes: 67 additions & 0 deletions docs-drafts/ci-cd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Commonly Used CI/CD Tools

| Tool | Purpose | Support |
|---|---|---|
| *Argo CD* | GitOps continuous delivery tool for Kubernetes | Availabe within OpenShift |
| *GitHub Actions* | GitOps continuous integration and delivery tool for Github | Available for all GitHub repositories |
| *Tekton* | GitOps continuous integration and delivery tool | Available within OpenShift |

## Argo CD

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes (the foundation of OpenShift). You can use it to implement a GitOps-style deployment service.

### Why Argo CD

ArgoCD provides more control over the success of the deployment and brings many other benefits of the infrastructure as code/GitOps approach, such as:

* Observability

* Improved stability and consistency

* An improved security model

* It is efficient, well supported, and well documented.

* It can reduce the maintenance overhead of pipelines

* It will help you to reduce resource consumption by using a shared service

### Resources

* [Configuring Argo CD within OpenShift](../docs/default/component/platform-developer-docs/docs/automation-and-resiliency/argo-cd-usage/#enable-argo-cd-for-your-project-set)


## Github Actions

GitHub Actions is available within our BCGov and BCGov Enterprise GitHub organizations to assist with automation of your build and deployment pipelines

### Why Github Actions

* Lots of community support

* Easy to learn

* Easy to integrate with your code already in GitHub


## Tekton

Tekton is the RedHat flavour of GitOps, available within your OpenShift Private Cloud Environment.

### Why Tekton

* No limitations on runners

* Integration with our RedHat tooling

### Resources

[Integrating Tekton with OpenShift](../docs/default/component/platform-developer-docs/docs/build-deploy-and-maintain-apps/deploy-an-application/#1-integrating-the-deployment-process-into-a-cicd-pipeline)

<details>
<summary>This content is open to contributions to improve it</summary>

As the Developer Experience Team, we know that our community knows of way more resources on this topic than we do!
If you know of another internal BC Government resource on this topic, please make a pull request to add it to the list and share with everyone.

</details>
13 changes: 13 additions & 0 deletions docs-drafts/common-components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Common Components

Common Components are Open Source tools developed by the BC Government that are owned and maintained by product teams as part of their mandate.

As part of the [Digital Investment Office priorities](https://digital.gov.bc.ca/topics/funding/intro/), teams are required to use these for projects receiving IM/IT capital funding from the OCIO.

* [BC Address Geocoder](https://digital.gov.bc.ca/bcgov-common-components/bc-address-geocoder/)
* [Common Document Generation Service](https://digital.gov.bc.ca/bcgov-common-components/common-document-generation-service/)
* [Common Hosted Forms Service](https://digital.gov.bc.ca/bcgov-common-components/common-hosted-form-service/)
* [Common Hosted Email Service](https://digital.gov.bc.ca/bcgov-common-components/common-hosted-email-service/)
* [Common Object Management Service](https://digital.gov.bc.ca/bcgov-common-components/common-object-management-service/)
* [Get Token](https://github.com/bcgov/nr-get-token)
* [Pathfinder Single Sign-On Keycloak](https://digital.gov.bc.ca/bcgov-common-components/pathfinder-sso/)
12 changes: 12 additions & 0 deletions docs-drafts/community-contributed-tools.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Community Contributed Tools

Open Source tools developed or modified to work within the BC Government Ecosystem.

The resources on this list are open for use, but may not have dedicate maintainers, and do not have funding. However, with more use and cross-team contributions these may mature to becoming official Common Components in future.

* [BCDevOps Repo](https://github.com/BCDevOps/)
* [Backup Container](https://github.com/BCDevOps/backup-container)
* [BC Design System (legacy Boostrap)](https://github.com/bcgov/design-system)
* [FIDIR]()
* [Matomo OpenShift](https://github.com/BCDevOps/matomo-openshift/blob/master/README.md)
* [SonarQube](https://github.com/BCDevOps/sonarqube)
38 changes: 38 additions & 0 deletions docs-drafts/container-tooling.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Commonly Used Container Tools

For modern development practices, using Docker to handle building, running and deploying container images in a predictable way is the standard, and continues to be the recommended path for BC Government developers. This list elaborates on tooling to orchestrate Docker images in your development workflow.

| Tool | Licensing | Availability |
|---|---|---|
| *Docker Desktop* | While Docker is free, Docker Desktop now requires a license | Check with your Ministry IMB |
| *Podman* | RedHat's free alternative to Docker Desktop | Open Source |
| *Rancher* | Free alternative to Docker Desktop | Open Source |

## Docker Desktop

Docker Desktop allows you to seamlessly run linux Docker containers on a Windows or MacOS.

Unfortunately, as of 2023 Docker Desktop requires a license for Government entities.

Some ministries have procured licenses for their users. Please contact the CITZ IMB if you wish you re-use the PIA and STRA documentaiton to support your own procurement.

## Podman

Podman is a drop-in replacement for Docker Desktop. It supports the concept of `pods` to share resources across containers.

It is compatible with Docker Images and compatible with the Docker CLI.


## Rancher

Rancher is a drop-in replacement for Docker Desktop.

It is compatible with Docker Images and compatible with the Docker CLI. It also provides support for local testing of Kubernetes.

<details>
<summary>This content is open to contributions to improve it</summary>

As the Developer Experience Team, we know that our community knows of way more resources on this topic than we do!
If you know of another internal BC Government resource on this topic, please make a pull request to add it to the list and share with everyone.

</details>
17 changes: 17 additions & 0 deletions docs-drafts/digital-government.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# BC's Digital Government Vision & Plan

## Digital Government 101

As the practices of developing and delivering digital services within the B.C. government have evolved, so has corporate guidance. Three important examples are highlighted below.

1. [The Digital Plan](https://digital.gov.bc.ca/policies-standards/digital-plan/) describes the four missions and calls to action for Ministries in supporting the digital services they provide to citizens.
2. [The Digital Code of Practice](https://digital.gov.bc.ca/policies-standards/dcop/) expands on what good implementation of digital products and services looks like.
3. [Digital Government website](https://digital.gov.bc.ca) hosts the materials above as well as content about many other topics for digital practitioners and leaders within the B.C. government.

<details>
<summary>This content is open to contributions to improve it</summary>

As the Developer Experience Team, we know that our community knows of way more resources on this topic than we do!
If you know of another internal BC Government resource on this topic, please make a pull request to add it to the list and share with everyone.

</details>
41 changes: 41 additions & 0 deletions docs-drafts/package-hosting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Commonly Used Package Hosting Tools

| Tool | Purpose | Support |
|---|---|---|
| *Artifactory* | Package hosting and management | Available within OpenShift |
| *GitHub Packages* | Package hosting and management | Available for `bcgov-c` and `bcgov-ent` repositories ???? |

## Artifactory

Artifactory is a package management tool that comes with all applications hosted within Open Shift.

### Why Artifactory

* Caches/proxies for all major public artifact repositories/registries and several private repositories/registries where BC Government owns licensed access, reducing build time and network traffic.
* Quota-limited storage where teams have full control to push and pull and manage access their own artifacts of any type.
* Automatic inclsuion of the Xray add-on service for security scanning for all objects in Artifactory.

### Resources

* [Image and artifact management in OpenShift](../docs/default/component/platform-developer-docs/docs/build-deploy-and-maintain-apps/image-artifact-management-with-artifactory/)

[comment]: <> This one feels like it could be replaced with generic links to other resources, but that falls into the bucket of "guidance for good documentation for teams" than something I'm worried about at this stage?
* [Pushing and pulling artifacts](../docs/build-deploy-and-maintain-apps/push-pull-artifacts-artifactory/)
* [Setting up a project](../docs/default/component/platform-developer-docs/docs/build-deploy-and-maintain-apps/setup-artifactory-project-repository/)
* [Setting up an account](../docs/default/component/platform-developer-docs/docs/build-deploy-and-maintain-apps/setup-artifactory-service-account/)

## Github Packages

Artifactory is a package management tool that is available within GitHub.

### Why Github Packages

GitHub Packages is an alternative to Artifactory, without any limitations or connection to your code being in OpenShift. However, it may come with additional cost to your team to achieve the required storage. Contact the Developer Experience team to learn more.

<details>
<summary>This content is open to contributions to improve it</summary>

As the Developer Experience Team, we know that our community knows of way more resources on this topic than we do!
If you know of another internal BC Government resource on this topic, please make a pull request to add it to the list and share with everyone.

</details>
File renamed without changes.
9 changes: 9 additions & 0 deletions docs-drafts/ways_of_working.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Ways of working

## Agile Ways of Working

Most teams developing modern digital services for the B.C. government are approaching their work with an [agile](https://en.wikipedia.org/wiki/Agile_software_development) mindset. While many teams have adopted [Scrum](https://en.wikipedia.org/wiki/Scrum_(software_development)) as an agile framework, there is no single official or mandated agile methodology or framework within the B.C. government. Teams and leaders within different areas may choose the approaches they feel most suited to their work.

### Supports for Agile Learning

* [Agile Community of Practice](https://digital.gov.bc.ca/communities/agile/)
Loading

0 comments on commit 9e08916

Please sign in to comment.