opr-paas

An operator providing a multi tenancy solution which allows DevOps teams to request a context for their project, which we like to call a 'Project as a service', e.a. Paas.

https://github.com/belastingdienst/opr-paas

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

go golang kubernetes kubernetes-operator openshift openshift-operator operator paas project project-as-a-service
Last synced: 6 months ago · JSON representation ·

Repository

An operator providing a multi tenancy solution which allows DevOps teams to request a context for their project, which we like to call a 'Project as a service', e.a. Paas.

Basic Info
Statistics
  • Stars: 41
  • Watchers: 2
  • Forks: 16
  • Open Issues: 16
  • Releases: 48
Topics
go golang kubernetes kubernetes-operator openshift openshift-operator operator paas project project-as-a-service
Created over 1 year ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners Security Publiccode Notice

README.md

opr-paas

Goal

The Paas operator delivers an opinionated 'Project as a Service' implementation where development teams can request a 'Project as a Service' by defining a Paas resource.

A Paas resource is used by the operator as an input to create namespaces limited by Cluster Resource Quota's, granting groups permissions and (together with a clusterwide ArgoCD) creating capabilities such as:

  • a Paas specific deployment of ArgoCD (continuous deployment);
  • Tekton (continuous integration);
  • Grafana (observability); and
  • KeyCloak (Application level Single Sign On);

A Paas is all a team needs to hit the ground running.

Quickstart

Deploy the operator using the following commands:

kubectl apply -f https://github.com/belastingdienst/opr-paas/releases/latest/download/install.yaml kubectl apply -f https://raw.githubusercontent.com/belastingdienst/opr-paas/refs/heads/main/examples/resources/_v1alpha2_paasconfig.yaml

The second command will load an example PaasConfig resource from the main branch to get you going. Feel free to replace this with your own or a release specific version instead.

This will install the operator using the install.yaml that was generated for the latest release. It will create:

  • a namespace called paas-system;
  • 3 CRDs (Paas, PaasNs and PaasConfig);
  • a service account, role, role binding, cluster role and cluster role binding for all permissions required by the operator;
  • a viewer & an editor cluster role for all crds;
  • a deployment running the operator;

Feel free to change config as required.

Background information

Contributing

Please refer to our documentation in the CONTRIBUTING.md file and the Developer Guide section of the documentation site if you want to help us improve the Paas Operator.

License

Copyright 2024, Tax Administration of The Netherlands. Licensed under the EUPL 1.2.

See LICENSE.md for details.

Owner

  • Name: Belastingdienst
  • Login: belastingdienst
  • Kind: organization

Belastingdienst

Citation (CITATION.cff)

cff-version: 1.2.0
title: Project as a Service Operator
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - name: Tax Administration of The Netherlands
    website: 'https://www.belastingdienst.nl'
repository-code: 'https://github.com/orgs/belastingdienst/opr-paas/'
url: 'https://github.com/orgs/belastingdienst/opr-paas/'
abstract: >-
  The PaaS operator delivers an opiniated 'Project as a
  Service' implementation where development teams can
  request a 'Project as a Service' by defining a PaaS
  resource.

  A PaaS resource is used by the operator uses as an input
  to create namespaces limited by Cluster Resource Quota's,
  granting groups permissions and (together with a
  clusterwide ArgoCD) creating capabilities such as a PaaS
  specific deployment of ArgoCD (continuous deployment),
  Tekton (continuous integration), Grafana (observability),
  and KeyCloak (Application level Signle Sign On).
keywords:
  - kubernetes
  - openshift
  - go
  - golang
  - operator
  - paas
  - project
  - service
license: EUPL-1.2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 101
  • Total pull requests: 700
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Total issue authors: 11
  • Total pull request authors: 16
  • Average comments per issue: 0.28
  • Average comments per pull request: 0.4
  • Merged pull requests: 532
  • Bot issues: 1
  • Bot pull requests: 172
Past Year
  • Issues: 99
  • Pull requests: 690
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 days
  • Issue authors: 11
  • Pull request authors: 16
  • Average comments per issue: 0.28
  • Average comments per pull request: 0.4
  • Merged pull requests: 526
  • Bot issues: 1
  • Bot pull requests: 172
Top Authors
Issue Authors
  • portly-halicore-76 (50)
  • devotional-phoenix-97 (23)
  • hikarukin (11)
  • Koekenbakkers (6)
  • AxiomaticFixedChimpanzee (3)
  • benoitschipper (2)
  • nicorikken (2)
  • unarmednucleus (1)
  • PatrickDerichs (1)
  • jo8s (1)
  • dependabot[bot] (1)
Pull Request Authors
  • devotional-phoenix-97 (199)
  • dependabot[bot] (170)
  • portly-halicore-76 (166)
  • hikarukin (81)
  • AxiomaticFixedChimpanzee (52)
  • Koekenbakkers (7)
  • Stef16Robbe (7)
  • benoitschipper (4)
  • taxing4u (3)
  • github-actions[bot] (2)
  • appiepollo14 (2)
  • jo8s (2)
  • paradisepalms (2)
  • nexus-core174 (1)
  • astellingwerf (1)
Top Labels
Issue Labels
enhancement (55) bug (35) good first issue (4) chore (3) documentation (2) question (2) dependencies (1) triage/needs-triage (1)
Pull Request Labels
chore (267) ci (185) dependencies (171) documentation (83) enhancement (78) go (78) bug (67) github_actions (65) minor (55) test (14) infrastructure (10) python (7) breaking (7) skip-changelog (5) refactor (5) style (2) revert (1) docker (1) good first issue (1)

Packages

  • Total packages: 3
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 88
proxy.golang.org: github.com/belastingdienst/opr-paas/v3
  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/belastingdienst/opr-paas/v2
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/belastingdienst/opr-paas
  • Versions: 73
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 6.1%
Average: 6.3%
Dependent repos count: 6.5%
Last synced: 6 months ago

Dependencies

Dockerfile docker
  • docker.io/golang 1.22 build
  • gcr.io/distroless/static nonroot build
go.mod go
  • github.com/beorn7/perks v1.0.1
  • github.com/blang/semver/v4 v4.0.0
  • github.com/bytedance/sonic v1.12.1
  • github.com/bytedance/sonic/loader v0.2.0
  • github.com/cespare/xxhash/v2 v2.3.0
  • github.com/cloudwego/base64x v0.1.4
  • github.com/cloudwego/iasm v0.2.0
  • github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
  • github.com/emicklei/go-restful/v3 v3.12.1
  • github.com/evanphx/json-patch v5.6.0+incompatible
  • github.com/evanphx/json-patch/v5 v5.9.0
  • github.com/fsnotify/fsnotify v1.7.0
  • github.com/fxamacker/cbor/v2 v2.7.0
  • github.com/gabriel-vasile/mimetype v1.4.5
  • github.com/gin-contrib/cors v1.7.2
  • github.com/gin-contrib/sse v0.1.0
  • github.com/gin-gonic/gin v1.10.0
  • github.com/go-logr/logr v1.4.2
  • github.com/go-logr/zapr v1.3.0
  • github.com/go-openapi/jsonpointer v0.21.0
  • github.com/go-openapi/jsonreference v0.21.0
  • github.com/go-openapi/swag v0.23.0
  • github.com/go-playground/locales v0.14.1
  • github.com/go-playground/universal-translator v0.18.1
  • github.com/go-playground/validator/v10 v10.22.0
  • github.com/goccy/go-json v0.10.3
  • github.com/gogo/protobuf v1.3.2
  • github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
  • github.com/golang/protobuf v1.5.4
  • github.com/google/gnostic-models v0.6.8
  • github.com/google/go-cmp v0.6.0
  • github.com/google/gofuzz v1.2.0
  • github.com/google/uuid v1.6.0
  • github.com/gorilla/websocket v1.5.0
  • github.com/hashicorp/hcl v1.0.0
  • github.com/imdario/mergo v0.3.16
  • github.com/inconshreveable/mousetrap v1.1.0
  • github.com/josharian/intern v1.0.0
  • github.com/json-iterator/go v1.1.12
  • github.com/klauspost/compress v1.17.9
  • github.com/klauspost/cpuid/v2 v2.2.8
  • github.com/leodido/go-urn v1.4.0
  • github.com/magiconair/properties v1.8.7
  • github.com/mailru/easyjson v0.7.7
  • github.com/mattn/go-isatty v0.0.20
  • github.com/mitchellh/mapstructure v1.5.0
  • github.com/moby/spdystream v0.4.0
  • github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
  • github.com/modern-go/reflect2 v1.0.2
  • github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
  • github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f
  • github.com/openshift/api v3.9.1-0.20190916204813-cdbe64fb0c91+incompatible
  • github.com/pelletier/go-toml/v2 v2.2.2
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
  • github.com/prometheus/client_golang v1.20.4
  • github.com/prometheus/client_model v0.6.1
  • github.com/prometheus/common v0.55.0
  • github.com/prometheus/procfs v0.15.1
  • github.com/sagikazarmark/locafero v0.6.0
  • github.com/sagikazarmark/slog-shim v0.1.0
  • github.com/sirupsen/logrus v1.9.3
  • github.com/sourcegraph/conc v0.3.0
  • github.com/spf13/afero v1.11.0
  • github.com/spf13/cast v1.7.0
  • github.com/spf13/cobra v1.8.1
  • github.com/spf13/pflag v1.0.5
  • github.com/spf13/viper v1.19.0
  • github.com/stretchr/testify v1.9.0
  • github.com/subosito/gotenv v1.6.0
  • github.com/twitchyliquid64/golang-asm v0.15.1
  • github.com/ugorji/go/codec v1.2.12
  • github.com/vladimirvivien/gexe v0.2.0
  • github.com/x448/float16 v0.8.4
  • go.uber.org/multierr v1.11.0
  • go.uber.org/zap v1.27.0
  • golang.org/x/arch v0.9.0
  • golang.org/x/crypto v0.27.0
  • golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa
  • golang.org/x/net v0.28.0
  • golang.org/x/oauth2 v0.22.0
  • golang.org/x/sys v0.25.0
  • golang.org/x/term v0.24.0
  • golang.org/x/text v0.18.0
  • golang.org/x/time v0.6.0
  • gomodules.xyz/jsonpatch/v2 v2.4.0
  • google.golang.org/protobuf v1.34.2
  • gopkg.in/inf.v0 v0.9.1
  • gopkg.in/ini.v1 v1.67.0
  • gopkg.in/yaml.v2 v2.4.0
  • gopkg.in/yaml.v3 v3.0.1
  • k8s.io/api v0.31.0
  • k8s.io/apiextensions-apiserver v0.31.0
  • k8s.io/apimachinery v0.31.0
  • k8s.io/client-go v0.31.0
  • k8s.io/component-base v0.31.0
  • k8s.io/klog/v2 v2.130.1
  • k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34
  • k8s.io/utils v0.0.0-20240821151609-f90d01438635
  • sigs.k8s.io/controller-runtime v0.19.0
  • sigs.k8s.io/e2e-framework v0.4.0
  • sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd
  • sigs.k8s.io/structured-merge-diff/v4 v4.4.1
  • sigs.k8s.io/yaml v1.4.0
go.sum go
  • 176 dependencies
requirements.txt pypi
  • babel *
  • colorama *
  • jinja2 *
  • markdown *
  • mkdocs *
  • mkdocs-literate-nav *
  • mkdocs-material *
  • mkdocs-material-extensions *
  • mkdocs-redirects *
  • paginate *
  • pygments *
  • pymdown-extensions *
  • regex >=2022.4
  • requests *
.github/workflows/build-and-publish-docs.yaml actions
  • actions/cache/restore v4 composite
  • actions/cache/save v4 composite
  • actions/checkout v4 composite
  • actions/deploy-pages v4 composite
  • actions/setup-python v5 composite
  • actions/upload-pages-artifact v3 composite
.github/workflows/build-and-release-binaries.yml actions
  • CycloneDX/gh-gomod-generate-sbom v2 composite
  • actions/checkout v4 composite
  • actions/setup-go v5 composite
  • goreleaser/goreleaser-action v6 composite
.github/workflows/build-and-release-images.yml actions
  • actions/checkout v4 composite
  • aquasecurity/trivy-action 0.20.0 composite
  • docker/build-push-action v6 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
  • softprops/action-gh-release v2 composite
.github/workflows/build-and-release-installyaml.yaml actions
  • actions/checkout v4 composite
  • softprops/action-gh-release v2 composite
.github/workflows/build-and-release-sbom.yml actions
  • CycloneDX/gh-gomod-generate-sbom v2 composite
  • actions/checkout v4 composite
  • mvdkleijn/licenses-action v1 composite
  • softprops/action-gh-release v2 composite
.github/workflows/ci-run-on-pr.yaml actions
  • actions/checkout 8410ad0602e1e429cee44a835ae9f77f654a6694 composite
  • actions/setup-go 0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 composite
  • golangci/golangci-lint-action aaa42aa0628b4ae2578232a66b541047968fac86 composite
  • tj-actions/changed-files e9772d140489982e0e3704fea5ee93d536f1e275 composite
.github/workflows/draft-release-on-push.yml actions
  • release-drafter/release-drafter v6 composite
.github/workflows/update-trivy-cache.yml actions
  • actions/cache/save v4 composite