diff --git a/CHEATSHEET.md b/CHEATSHEET_BAZEL.md similarity index 97% rename from CHEATSHEET.md rename to CHEATSHEET_BAZEL.md index b69e769..dc76d0a 100644 --- a/CHEATSHEET.md +++ b/CHEATSHEET_BAZEL.md @@ -12,7 +12,7 @@ bazel clean --async ``` make dev_go_devops_cli_app -make dev_py_devops_fastapi_app +make dev_devops_fastapi_app ``` ## General diff --git a/Makefile b/Makefile index d485b98..991ec87 100644 --- a/Makefile +++ b/Makefile @@ -40,11 +40,11 @@ query_libs: query_projects: bazel query //projects/... -query_base_py_fastapi_app: - bazel query //projects/base_py_fastapi_app/... +query_base_fastapi_app: + bazel query //projects/base_fastapi_app/... -query_py_devops_fastapi_app: - bazel query //projects/py_devops_fastapi_app/... +query_devops_fastapi_app: + bazel query //projects/devops_fastapi_app/... @@ -54,14 +54,14 @@ build_libs: build_projects: bazel build //projects/... -build_base_py_fastapi_app: - bazel build //projects/base_py_fastapi_app/... +build_base_fastapi_app: + bazel build //projects/base_fastapi_app/... -build_py_devops_fastapi_app: - bazel build //projects/py_devops_fastapi_app:tarball +build_devops_fastapi_app: + bazel build //projects/devops_fastapi_app:tarball -build_py_devops_fastapi_app_remote: - bazel build //projects/py_devops_fastapi_app/... --config=remote +build_devops_fastapi_app_remote: + bazel build //projects/devops_fastapi_app/... --config=remote @@ -71,14 +71,14 @@ test_libs: test_projects: bazel test //projects/... -test_base_py_fastapi_app: - bazel test //projects/base_py_fastapi_app/... +test_base_fastapi_app: + bazel test //projects/base_fastapi_app/... -test_py_devops_fastapi_app: - bazel test //projects/py_devops_fastapi_app/... +test_devops_fastapi_app: + bazel test //projects/devops_fastapi_app/... -test_py_devops_fastapi_app_remote: - bazel test //projects/py_devops_fastapi_app/... --config=remote +test_devops_fastapi_app_remote: + bazel test //projects/devops_fastapi_app/... --config=remote test_py_calculator: echo "TODO" @@ -97,8 +97,8 @@ test_oci_py_helloworld_v2: -run_py_devops_fastapi_app: - bazel run //projects/py_devops_fastapi_app:run_bin +run_devops_fastapi_app: + bazel run //projects/devops_fastapi_app:run_bin run_py_calculator: bazel run //projects/py_calculator_cli_app:app @@ -122,8 +122,8 @@ run_oci_py_helloworld_v2: -dev_base_py_fastapi_app: - skaffold dev -m base-py-fastapi-app-config +# dev_base_fastapi_app: +# skaffold dev -m base-fastapi-app-config dev_go_devops_cli_app: skaffold dev -m go-devops-cli-app-config @@ -133,17 +133,17 @@ dev_go_devops_cli_app_debug: # See: https://github.com/GoogleContainerTools/skaffold/issues/4033 # TODO: bazel support in the container does not work so we stick with local skaffold -dev_py_devops_fastapi_app: - skaffold dev -m py-devops-fastapi-app-config - # ./tools/scripts/skaffold_container.sh dev -m py-devops-fastapi-app-config +dev_devops_fastapi_app: + skaffold dev -m devops-fastapi-app-config + # ./tools/scripts/skaffold_container.sh dev -m devops-fastapi-app-config skaffold_build_go_devops_cli_app: skaffold build --quiet -m go-devops-cli-app-config -skaffold_build_py_devops_fastapi_app: - skaffold build -m py-devops-fastapi-app-config +skaffold_build_devops_fastapi_app: + skaffold build -m devops-fastapi-app-config @@ -155,8 +155,8 @@ skaffold_run_go_devops_cli_app: skaffold_render_go_devops_cli_app: skaffold render -m go-devops-cli-app-config -skaffold_render_py_devops_fastapi_app: - skaffold render -m py-devops-fastapi-app-config +skaffold_render_devops_fastapi_app: + skaffold render -m devops-fastapi-app-config @@ -169,6 +169,10 @@ minikube_eval: minikube_images: minikube image ls --format='table' +# See: https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/ +minikube_ingress: + minikube addons enable ingress + watch: diff --git a/projects/README.md b/projects/README.md index d5ecbcb..b538e73 100644 --- a/projects/README.md +++ b/projects/README.md @@ -12,6 +12,6 @@ Where all project applications are implemented. | Project Name | Short Description | Upstream | State | CODEOWNER | |--------------|-------------------|-------|----------|----------| | Example | My example project | None | Production | [John Doe](mailto://john.doe@email) | -| base_py_fastapi_app | Base project to extend | some_lib | Production | [James Nguyen](mailto://james.nguyen@flyrlabs.com) | +| base_fastapi_app | Base project to extend | some_lib | Production | [James Nguyen](mailto://james.nguyen@flyrlabs.com) | | go_devops_cli_app | Example golang project with skaffold & bazel | base_go_franework_app | Development | [James Nguyen](mailto://james.nguyen@flyrlabs.com) | -| py_devops_fastapi_app | desc | base_py_fastapi_app | Development | [James Nguyen](mailto://james.nguyen@flyrlabs.com) | +| devops_fastapi_app | desc | base_fastapi_app | Development | [James Nguyen](mailto://james.nguyen@flyrlabs.com) | diff --git a/projects/reference/my_app/BUILD b/projects/_deprecated/my_app/BUILD similarity index 100% rename from projects/reference/my_app/BUILD rename to projects/_deprecated/my_app/BUILD diff --git a/projects/reference/my_app/Chart.yaml b/projects/_deprecated/my_app/Chart.yaml similarity index 100% rename from projects/reference/my_app/Chart.yaml rename to projects/_deprecated/my_app/Chart.yaml diff --git a/projects/reference/my_app/Dockerfile b/projects/_deprecated/my_app/Dockerfile similarity index 100% rename from projects/reference/my_app/Dockerfile rename to projects/_deprecated/my_app/Dockerfile diff --git a/projects/reference/my_app/app.py b/projects/_deprecated/my_app/app.py similarity index 100% rename from projects/reference/my_app/app.py rename to projects/_deprecated/my_app/app.py diff --git a/projects/reference/my_app/image.py b/projects/_deprecated/my_app/image.py similarity index 100% rename from projects/reference/my_app/image.py rename to projects/_deprecated/my_app/image.py diff --git a/projects/reference/my_app/kubernetes.yaml b/projects/_deprecated/my_app/kubernetes.yaml similarity index 100% rename from projects/reference/my_app/kubernetes.yaml rename to projects/_deprecated/my_app/kubernetes.yaml diff --git a/projects/reference/my_app/kustomization.yaml b/projects/_deprecated/my_app/kustomization.yaml similarity index 100% rename from projects/reference/my_app/kustomization.yaml rename to projects/_deprecated/my_app/kustomization.yaml diff --git a/projects/reference/my_app/requirements.txt b/projects/_deprecated/my_app/requirements.txt similarity index 100% rename from projects/reference/my_app/requirements.txt rename to projects/_deprecated/my_app/requirements.txt diff --git a/projects/reference/my_app/values.yaml b/projects/_deprecated/my_app/values.yaml similarity index 100% rename from projects/reference/my_app/values.yaml rename to projects/_deprecated/my_app/values.yaml diff --git a/projects/reference/my_other_app/BUILD b/projects/_deprecated/my_other_app/BUILD similarity index 100% rename from projects/reference/my_other_app/BUILD rename to projects/_deprecated/my_other_app/BUILD diff --git a/projects/reference/my_other_app/Chart.yaml b/projects/_deprecated/my_other_app/Chart.yaml similarity index 100% rename from projects/reference/my_other_app/Chart.yaml rename to projects/_deprecated/my_other_app/Chart.yaml diff --git a/projects/reference/my_other_app/Dockerfile b/projects/_deprecated/my_other_app/Dockerfile similarity index 100% rename from projects/reference/my_other_app/Dockerfile rename to projects/_deprecated/my_other_app/Dockerfile diff --git a/projects/reference/my_other_app/app.py b/projects/_deprecated/my_other_app/app.py similarity index 100% rename from projects/reference/my_other_app/app.py rename to projects/_deprecated/my_other_app/app.py diff --git a/projects/reference/my_other_app/image.py b/projects/_deprecated/my_other_app/image.py similarity index 100% rename from projects/reference/my_other_app/image.py rename to projects/_deprecated/my_other_app/image.py diff --git a/projects/reference/my_other_app/kubernetes.yaml b/projects/_deprecated/my_other_app/kubernetes.yaml similarity index 100% rename from projects/reference/my_other_app/kubernetes.yaml rename to projects/_deprecated/my_other_app/kubernetes.yaml diff --git a/projects/reference/my_other_app/kustomization.yaml b/projects/_deprecated/my_other_app/kustomization.yaml similarity index 100% rename from projects/reference/my_other_app/kustomization.yaml rename to projects/_deprecated/my_other_app/kustomization.yaml diff --git a/projects/reference/my_other_app/requirements.txt b/projects/_deprecated/my_other_app/requirements.txt similarity index 100% rename from projects/reference/my_other_app/requirements.txt rename to projects/_deprecated/my_other_app/requirements.txt diff --git a/projects/reference/my_other_app/values.yaml b/projects/_deprecated/my_other_app/values.yaml similarity index 100% rename from projects/reference/my_other_app/values.yaml rename to projects/_deprecated/my_other_app/values.yaml diff --git a/projects/base_py_fastapi_app/BUILD.bazel b/projects/base_fastapi_app/BUILD.bazel similarity index 100% rename from projects/base_py_fastapi_app/BUILD.bazel rename to projects/base_fastapi_app/BUILD.bazel diff --git a/projects/base_fastapi_app/CONTRIBUTE.md b/projects/base_fastapi_app/CONTRIBUTE.md new file mode 100644 index 0000000..f8ffa50 --- /dev/null +++ b/projects/base_fastapi_app/CONTRIBUTE.md @@ -0,0 +1,4 @@ +# Overview + +Contribution etiquette and rules of the road. + diff --git a/projects/base_fastapi_app/MIGRATION.md b/projects/base_fastapi_app/MIGRATION.md new file mode 100644 index 0000000..aa2cb23 --- /dev/null +++ b/projects/base_fastapi_app/MIGRATION.md @@ -0,0 +1,7 @@ +# Overview + +Document major changes requiring any migration actions between versions. + +## Migrating v1 -> v2 + +* What manual actions are required... diff --git a/projects/base_py_fastapi_app/README.md b/projects/base_fastapi_app/README.md similarity index 96% rename from projects/base_py_fastapi_app/README.md rename to projects/base_fastapi_app/README.md index 8665d80..4f078a5 100644 --- a/projects/base_py_fastapi_app/README.md +++ b/projects/base_fastapi_app/README.md @@ -25,7 +25,7 @@ py_library( deps = [ requirement("other_pypi_libs"), # PyPi libs "//libs/devops:devops_lib", # Internal libs - "//projects/base_py_fastapi_app:fastapi_lib", # This base project + "//projects/base_fastapi_app:fastapi_lib", # This base project ], ) ``` diff --git a/projects/base_py_fastapi_app/app/main.py b/projects/base_fastapi_app/app/main.py similarity index 100% rename from projects/base_py_fastapi_app/app/main.py rename to projects/base_fastapi_app/app/main.py diff --git a/projects/base_py_fastapi_app/CONTRIBUTE.md b/projects/base_py_fastapi_app/CONTRIBUTE.md deleted file mode 100644 index e69de29..0000000 diff --git a/projects/py_devops_fastapi_app/BUILD.bazel b/projects/devops_fastapi_app/BUILD.bazel similarity index 89% rename from projects/py_devops_fastapi_app/BUILD.bazel rename to projects/devops_fastapi_app/BUILD.bazel index 226c58a..ef27a5b 100644 --- a/projects/py_devops_fastapi_app/BUILD.bazel +++ b/projects/devops_fastapi_app/BUILD.bazel @@ -14,13 +14,13 @@ load("@container_structure_test//:defs.bzl", "container_structure_test") py_library( - name = "main_lib", + name = "base_lib", srcs = glob(["app/*.py"]), # srcs_version = "PY3", deps = [ # requirement("fastapi"), "//libs/devops:devops_lib", - "//projects/base_py_fastapi_app:fastapi_lib", + "//projects/base_fastapi_app:fastapi_lib", ], ) @@ -34,7 +34,7 @@ py_binary( visibility = ["//visibility:public"], deps = [ requirement("uvicorn"), - ":main_lib", + ":base_lib", ], ) @@ -46,7 +46,7 @@ py_test( requirement("requests"), requirement("httpx"), requirement("fastapi"), - ":main_lib", + ":base_lib", ":run_bin", ], ) @@ -75,7 +75,7 @@ py_image_layer( oci_image( name = "app_image", base = "@distroless_python", - entrypoint = ["/opt/projects/py_devops_fastapi_app/run_bin"], + entrypoint = ["/opt/projects/devops_fastapi_app/run_bin"], tars = [":app_layer"], ) @@ -104,15 +104,15 @@ platform_transition_filegroup( }), ) -# $ bazel build //projects/py_devops_fastapi_app:tarball -# $ docker load --input $(bazel cquery --output=files //projects/py_devops_fastapi_app:tarball) -# $ docker run --rm local/py_devops_fastapi_app:latest +# $ bazel build //projects/devops_fastapi_app:tarball +# $ docker load --input $(bazel cquery --output=files //projects/devops_fastapi_app:tarball) +# $ docker run --rm local/devops_fastapi_app:latest # See: https://github.com/bazel-contrib/rules_oci/blob/main/docs/tarball.md oci_tarball( name = "tarball", image = ":app_image", repo_tags = [ - "flyr.io/bazel/py-devops-fastapi-app:latest", + "flyr.io/bazel/devops-fastapi-app:latest", ], ) diff --git a/projects/py_devops_fastapi_app/README.md b/projects/devops_fastapi_app/README.md similarity index 100% rename from projects/py_devops_fastapi_app/README.md rename to projects/devops_fastapi_app/README.md diff --git a/projects/py_devops_fastapi_app/app/main.py b/projects/devops_fastapi_app/app/main.py similarity index 96% rename from projects/py_devops_fastapi_app/app/main.py rename to projects/devops_fastapi_app/app/main.py index 2b015db..bfb6893 100644 --- a/projects/py_devops_fastapi_app/app/main.py +++ b/projects/devops_fastapi_app/app/main.py @@ -2,7 +2,7 @@ from libs.devops.models.devops import DevOps, InfrastructureEngineer, DeveloperExperienceEngineer, DataEngineer, MachineLearningEngineer, WebEngineer, ReliabilityEngineer, PlatformEngineer, PlatformOrganization -from projects.base_py_fastapi_app.app.main import app, logging +from projects.base_fastapi_app.app.main import app, logging logging.getLogger(__name__) diff --git a/projects/py_devops_fastapi_app/bin/run_bin.py b/projects/devops_fastapi_app/bin/run_bin.py similarity index 87% rename from projects/py_devops_fastapi_app/bin/run_bin.py rename to projects/devops_fastapi_app/bin/run_bin.py index 4a949fc..4a45714 100644 --- a/projects/py_devops_fastapi_app/bin/run_bin.py +++ b/projects/devops_fastapi_app/bin/run_bin.py @@ -4,7 +4,7 @@ if __name__ == "__main__": # freeze_support() uvicorn.run( - "projects.py_devops_fastapi_app.app.main:app", + "projects.devops_fastapi_app.app.main:app", # "--proxy-headers", # when running behind TLS termination proxy host="0.0.0.0", port=5000, diff --git a/projects/py_devops_fastapi_app/helm-charts/.helmignore b/projects/devops_fastapi_app/helm-charts/.helmignore similarity index 100% rename from projects/py_devops_fastapi_app/helm-charts/.helmignore rename to projects/devops_fastapi_app/helm-charts/.helmignore diff --git a/projects/py_devops_fastapi_app/helm-charts/Chart.yaml b/projects/devops_fastapi_app/helm-charts/Chart.yaml similarity index 98% rename from projects/py_devops_fastapi_app/helm-charts/Chart.yaml rename to projects/devops_fastapi_app/helm-charts/Chart.yaml index 1a45a55..eef4dd0 100644 --- a/projects/py_devops_fastapi_app/helm-charts/Chart.yaml +++ b/projects/devops_fastapi_app/helm-charts/Chart.yaml @@ -1,6 +1,6 @@ # See: https://helm.sh/docs/topics/charts/ apiVersion: v2 -name: py-devops-fastapi-app-chart +name: devops-fastapi-app-chart description: Demo DevOps FastAPI App Helm Chart keywords: - FastAPI diff --git a/projects/py_devops_fastapi_app/helm-charts/templates/deployment.yaml b/projects/devops_fastapi_app/helm-charts/templates/deployment.yaml similarity index 100% rename from projects/py_devops_fastapi_app/helm-charts/templates/deployment.yaml rename to projects/devops_fastapi_app/helm-charts/templates/deployment.yaml diff --git a/projects/py_devops_fastapi_app/helm-charts/templates/service.yaml b/projects/devops_fastapi_app/helm-charts/templates/service.yaml similarity index 100% rename from projects/py_devops_fastapi_app/helm-charts/templates/service.yaml rename to projects/devops_fastapi_app/helm-charts/templates/service.yaml diff --git a/projects/py_devops_fastapi_app/helm-charts/values.yaml b/projects/devops_fastapi_app/helm-charts/values.yaml similarity index 90% rename from projects/py_devops_fastapi_app/helm-charts/values.yaml rename to projects/devops_fastapi_app/helm-charts/values.yaml index e69f3c5..87dcb89 100644 --- a/projects/py_devops_fastapi_app/helm-charts/values.yaml +++ b/projects/devops_fastapi_app/helm-charts/values.yaml @@ -10,7 +10,7 @@ chartManagedNS: true replicaCount: 1 image: - repository: flyr.io/bazel/py-devops-fastapi-app + repository: flyr.io/bazel/devops-fastapi-app pullPolicy: IfNotPresent tag: "latest" # appset override @@ -48,12 +48,12 @@ ingress: # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" hosts: - - host: py-devops-fastapi-app.local + - host: devops-fastapi-app.local paths: [] tls: [] - # - secretName: py-devops-fastapi-app-tls + # - secretName: devops-fastapi-app-tls # hosts: - # - py-devops-fastapi-app.local + # - devops-fastapi-app.local resources: {} # We usually recommend not to specify default resources and to leave this as a conscious diff --git a/projects/py_devops_fastapi_app/kubernetes/deployment.yaml b/projects/devops_fastapi_app/kubernetes/deployment.yaml similarity index 50% rename from projects/py_devops_fastapi_app/kubernetes/deployment.yaml rename to projects/devops_fastapi_app/kubernetes/deployment.yaml index 0c72067..97defb2 100644 --- a/projects/py_devops_fastapi_app/kubernetes/deployment.yaml +++ b/projects/devops_fastapi_app/kubernetes/deployment.yaml @@ -1,36 +1,36 @@ apiVersion: v1 kind: Service metadata: - name: py-devops-fastapi-app + name: devops-fastapi-app labels: - app: py-devops-fastapi-app + app: devops-fastapi-app spec: clusterIP: None ports: - port: 5000 - name: py-devops-fastapi-app + name: devops-fastapi-app selector: - app: py-devops-fastapi-app + app: devops-fastapi-app --- apiVersion: apps/v1 kind: Deployment metadata: - name: py-devops-fastapi-app + name: devops-fastapi-app labels: - app: py-devops-fastapi-app + app: devops-fastapi-app spec: replicas: 1 selector: matchLabels: - app: py-devops-fastapi-app + app: devops-fastapi-app template: metadata: labels: - app: py-devops-fastapi-app + app: devops-fastapi-app spec: containers: - - name: py-devops-fastapi-app - image: flyr.io/bazel/py-devops-fastapi-app + - name: devops-fastapi-app + image: flyr.io/bazel/devops-fastapi-app ports: - containerPort: 5000 name: http diff --git a/projects/devops_fastapi_app/kustomize/README.md b/projects/devops_fastapi_app/kustomize/README.md new file mode 100644 index 0000000..ad331b9 --- /dev/null +++ b/projects/devops_fastapi_app/kustomize/README.md @@ -0,0 +1,3 @@ +## Reference + +- https://github.com/kubernetes-sigs/kustomize/tree/master/examples diff --git a/projects/py_devops_fastapi_app/kustomize/base/application.properties b/projects/devops_fastapi_app/kustomize/base/application.properties similarity index 100% rename from projects/py_devops_fastapi_app/kustomize/base/application.properties rename to projects/devops_fastapi_app/kustomize/base/application.properties diff --git a/projects/py_devops_fastapi_app/kustomize/base/deployment.yaml b/projects/devops_fastapi_app/kustomize/base/deployment.yaml similarity index 52% rename from projects/py_devops_fastapi_app/kustomize/base/deployment.yaml rename to projects/devops_fastapi_app/kustomize/base/deployment.yaml index 7465d97..0e3ec21 100644 --- a/projects/py_devops_fastapi_app/kustomize/base/deployment.yaml +++ b/projects/devops_fastapi_app/kustomize/base/deployment.yaml @@ -1,22 +1,22 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: py-devops-fastapi-app + name: devops-fastapi-app labels: - app: py-devops-fastapi-app + app: devops-fastapi-app spec: replicas: 1 selector: matchLabels: - app: py-devops-fastapi-app + app: devops-fastapi-app template: metadata: labels: - app: py-devops-fastapi-app + app: devops-fastapi-app spec: containers: - - name: py-devops-fastapi-app - image: flyr.io/bazel/py-devops-fastapi-app + - name: devops-fastapi-app + image: flyr.io/bazel/devops-fastapi-app ports: - containerPort: 5000 name: http diff --git a/projects/py_devops_fastapi_app/kustomize/base/kustomization.yaml b/projects/devops_fastapi_app/kustomize/base/kustomization.yaml similarity index 75% rename from projects/py_devops_fastapi_app/kustomize/base/kustomization.yaml rename to projects/devops_fastapi_app/kustomize/base/kustomization.yaml index f72ca5a..35467e4 100644 --- a/projects/py_devops_fastapi_app/kustomize/base/kustomization.yaml +++ b/projects/devops_fastapi_app/kustomize/base/kustomization.yaml @@ -2,7 +2,7 @@ resources: - deployment.yaml - service.yaml configMapGenerator: -- name: py-devops-fastapi-app-configmap +- name: devops-fastapi-app-configmap # behavior: merge files: - application.properties diff --git a/projects/devops_fastapi_app/kustomize/base/service.yaml b/projects/devops_fastapi_app/kustomize/base/service.yaml new file mode 100644 index 0000000..ee80a45 --- /dev/null +++ b/projects/devops_fastapi_app/kustomize/base/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: devops-fastapi-app + labels: + app: devops-fastapi-app +spec: + clusterIP: None + ports: + - port: 5000 + name: devops-fastapi-app + selector: + app: devops-fastapi-app diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/dev/application.properties b/projects/devops_fastapi_app/kustomize/overlays/dev/application.properties similarity index 100% rename from projects/py_devops_fastapi_app/kustomize/overlays/dev/application.properties rename to projects/devops_fastapi_app/kustomize/overlays/dev/application.properties diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/dev/dev.env b/projects/devops_fastapi_app/kustomize/overlays/dev/dev.env similarity index 100% rename from projects/py_devops_fastapi_app/kustomize/overlays/dev/dev.env rename to projects/devops_fastapi_app/kustomize/overlays/dev/dev.env diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/dev/kustomization.yaml b/projects/devops_fastapi_app/kustomize/overlays/dev/kustomization.yaml similarity index 82% rename from projects/py_devops_fastapi_app/kustomize/overlays/dev/kustomization.yaml rename to projects/devops_fastapi_app/kustomize/overlays/dev/kustomization.yaml index f0adbe2..81fa789 100644 --- a/projects/py_devops_fastapi_app/kustomize/overlays/dev/kustomization.yaml +++ b/projects/devops_fastapi_app/kustomize/overlays/dev/kustomization.yaml @@ -4,7 +4,7 @@ namePrefix: dev- # patches: # - path: patch.yaml configMapGenerator: -- name: py-devops-fastapi-app-configmap +- name: devops-fastapi-app-configmap behavior: replace files: - application.properties diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/dev/patch.yaml b/projects/devops_fastapi_app/kustomize/overlays/dev/patch.yaml similarity index 90% rename from projects/py_devops_fastapi_app/kustomize/overlays/dev/patch.yaml rename to projects/devops_fastapi_app/kustomize/overlays/dev/patch.yaml index 732ecb8..6f4918f 100644 --- a/projects/py_devops_fastapi_app/kustomize/overlays/dev/patch.yaml +++ b/projects/devops_fastapi_app/kustomize/overlays/dev/patch.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: py-devops-fastapi-app-configmap + name: devops-fastapi-app-configmap data: application.properties: | app.name=Development DevOps FastAPI App Patched diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/int/kustomization.yaml b/projects/devops_fastapi_app/kustomize/overlays/int/kustomization.yaml similarity index 100% rename from projects/py_devops_fastapi_app/kustomize/overlays/int/kustomization.yaml rename to projects/devops_fastapi_app/kustomize/overlays/int/kustomization.yaml diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/prd/kustomization.yaml b/projects/devops_fastapi_app/kustomize/overlays/prd/kustomization.yaml similarity index 100% rename from projects/py_devops_fastapi_app/kustomize/overlays/prd/kustomization.yaml rename to projects/devops_fastapi_app/kustomize/overlays/prd/kustomization.yaml diff --git a/projects/py_devops_fastapi_app/kustomize/overlays/stg/kustomization.yaml b/projects/devops_fastapi_app/kustomize/overlays/stg/kustomization.yaml similarity index 100% rename from projects/py_devops_fastapi_app/kustomize/overlays/stg/kustomization.yaml rename to projects/devops_fastapi_app/kustomize/overlays/stg/kustomization.yaml diff --git a/projects/py_devops_fastapi_app/build.sh b/projects/devops_fastapi_app/scripts/build.sh similarity index 66% rename from projects/py_devops_fastapi_app/build.sh rename to projects/devops_fastapi_app/scripts/build.sh index 0386f45..d984cfb 100755 --- a/projects/py_devops_fastapi_app/build.sh +++ b/projects/devops_fastapi_app/scripts/build.sh @@ -13,13 +13,13 @@ echo "SKIP_TEST: ${SKIP_TEST}" echo "===[DEBUG] build.sh===" # If we can't build, fail quick and exit -bazel build //projects/py_devops_fastapi_app:tarball || exit 1 +bazel build //projects/devops_fastapi_app:tarball || exit 1 -# TAR_FILE=$(bazel cquery --output=files //projects/go_devops_cli_app:tarball) +# TAR_FILE=$(bazel cquery --output=files //projects/devops_fastapi_app:tarball) # docker load --input ${TAR_FILE} -TAR_PATH="$(bazel info bazel-bin)/projects/py_devops_fastapi_app/tarball" +TAR_PATH="$(bazel info bazel-bin)/projects/devops_fastapi_app/tarball" docker load -i ${TAR_PATH}/tarball.tar -docker tag flyr.io/bazel/py-devops-fastapi-app ${IMAGE} +docker tag flyr.io/bazel/devops-fastapi-app ${IMAGE} if ${PUSH_IMAGE} then diff --git a/projects/py_devops_fastapi_app/skaffold.yaml b/projects/devops_fastapi_app/skaffold.yaml similarity index 62% rename from projects/py_devops_fastapi_app/skaffold.yaml rename to projects/devops_fastapi_app/skaffold.yaml index fedc740..5db9c71 100644 --- a/projects/py_devops_fastapi_app/skaffold.yaml +++ b/projects/devops_fastapi_app/skaffold.yaml @@ -2,28 +2,28 @@ apiVersion: skaffold/v4beta5 kind: Config metadata: - # skaffold build -m py-devops-fastapi-app-config - name: py-devops-fastapi-app-config + # skaffold build -m devops-fastapi-app-config + name: devops-fastapi-app-config build: local: push: false artifacts: - - image: flyr.io/bazel/py-devops-fastapi-app + - image: flyr.io/bazel/devops-fastapi-app custom: - buildCommand: ./build.sh + buildCommand: ./scripts/build.sh dependencies: paths: - - ../base_py_fastapi_app/** + - ../base_fastapi_app/** - app/** - bin/** - tests/** - kubernetes/** - kustomize/overlays/dev** - helm-charts/** + - scripts/** - ./BUILD.bazel - - ./build.sh - - ./skaffold.yaml + - ./skaffold.yaml # TODO: Likely not needed since skaffold does not apply changes on reload ignore: - ./**.md - tmp/** @@ -40,24 +40,25 @@ manifests: # - "./kustomize/overlays/prd" # helm: # Does not work # releases: - # - name: py-devops-fastapi-app-chart + # - name: devops-fastapi-app-chart # chartPath: ./helm-charts # overrides: - # image: flyr.io/bazel/py-devops-fastapi-app + # image: flyr.io/bazel/devops-fastapi-app # deploy: # helm: # releases: -# - name: py-devops-fastapi-app-chart +# - name: devops-fastapi-app-chart # chartPath: ./helm-charts # overrides: -# image: flyr.io/bazel/py-devops-fastapi-app +# image: flyr.io/bazel/devops-fastapi-app +# TODO: Should we use this approach instead of forwarding? (https://kubernetes.io/docs/tasks/access-application-cluster/ingress-minikube/) portForward: - resourceType: deployment - # resourceName: py-devops-fastapi-app # rawYaml - resourceName: dev-py-devops-fastapi-app # kustomize - # resourceName: py-devops-fastapi-app-chart # helm + # resourceName: devops-fastapi-app # rawYaml + resourceName: dev-devops-fastapi-app # kustomize + # resourceName: devops-fastapi-app-chart # helm port: 5000 localPort: 5000 diff --git a/projects/py_devops_fastapi_app/tests/container_test.yaml b/projects/devops_fastapi_app/tests/container_test.yaml similarity index 78% rename from projects/py_devops_fastapi_app/tests/container_test.yaml rename to projects/devops_fastapi_app/tests/container_test.yaml index 4b17537..1720105 100644 --- a/projects/py_devops_fastapi_app/tests/container_test.yaml +++ b/projects/devops_fastapi_app/tests/container_test.yaml @@ -3,7 +3,7 @@ # - https://github.com/GoogleContainerTools/container-structure-test#running-structure-tests-through-bazel schemaVersion: 2.0.0 metadataTest: - entrypoint: ['/opt/projects/py_devops_fastapi_app/run_bin'] + entrypoint: ['/opt/projects/devops_fastapi_app/run_bin'] # exposedPorts: ["5000"] commandTests: # check that the python binary is in the correct location @@ -12,11 +12,11 @@ commandTests: args: ["python"] expectedOutput: ["/usr/local/bin/python\n"] # - name: run - # command: /opt/projects/py_devops_fastapi_app/run_bin + # command: /opt/projects/devops_fastapi_app/run_bin # expectedOutput: ['I am alive'] fileExistenceTests: - name: 'run_bin' - path: '/opt/projects/py_devops_fastapi_app/run_bin' + path: '/opt/projects/devops_fastapi_app/run_bin' shouldExist: true #permissions: '-r-xr-xr-x' # uid: 1000 diff --git a/projects/py_devops_fastapi_app/tests/main_test.py b/projects/devops_fastapi_app/tests/main_test.py similarity index 93% rename from projects/py_devops_fastapi_app/tests/main_test.py rename to projects/devops_fastapi_app/tests/main_test.py index 36840b5..e0f2612 100644 --- a/projects/py_devops_fastapi_app/tests/main_test.py +++ b/projects/devops_fastapi_app/tests/main_test.py @@ -17,7 +17,7 @@ from fastapi.testclient import TestClient -from projects.py_devops_fastapi_app.bin import run_bin +from projects.devops_fastapi_app.bin import run_bin client = TestClient(run_bin) diff --git a/projects/py_devops_fastapi_app/kustomize/_kustomization.yaml b/projects/py_devops_fastapi_app/kustomize/_kustomization.yaml deleted file mode 100644 index 4389937..0000000 --- a/projects/py_devops_fastapi_app/kustomize/_kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# resources: -# - dev -# - stg -# - int -# - prd -# namePrefix: cluster-a- diff --git a/projects/py_devops_fastapi_app/kustomize/base/service.yaml b/projects/py_devops_fastapi_app/kustomize/base/service.yaml deleted file mode 100644 index b81bfb8..0000000 --- a/projects/py_devops_fastapi_app/kustomize/base/service.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: py-devops-fastapi-app - labels: - app: py-devops-fastapi-app -spec: - clusterIP: None - ports: - - port: 5000 - name: py-devops-fastapi-app - selector: - app: py-devops-fastapi-app diff --git a/projects/py_template_fastapi_app/BUILD.bazel b/projects/template_fastapi_app/BUILD.bazel similarity index 88% rename from projects/py_template_fastapi_app/BUILD.bazel rename to projects/template_fastapi_app/BUILD.bazel index d99c310..201f828 100644 --- a/projects/py_template_fastapi_app/BUILD.bazel +++ b/projects/template_fastapi_app/BUILD.bazel @@ -71,9 +71,9 @@ py_image_layer( # TODO: Use a custom base to include cross-cutting concerns # See: https://github.com/bazel-contrib/rules_oci/blob/main/docs/image.md oci_image( - name = "py_template_image", + name = "template_image", base = "@distroless_python", - entrypoint = ["/opt/projects/py_template_fastapi_app/run_bin"], + entrypoint = ["/opt/projects/template_fastapi_app/run_bin"], tars = [":web_app_layer"], ) @@ -95,21 +95,21 @@ platform( platform_transition_filegroup( name = "transitioned_image", - srcs = [":py_template_image"], + srcs = [":template_image"], target_platform = select({ "@platforms//cpu:arm64": ":aarch64_linux", "@platforms//cpu:x86_64": ":x86_64_linux", }), ) -# $ bazel build //projects/py_template_fastapi_app:tarball -# $ docker load --input $(bazel cquery --output=files //projects/py_template_fastapi_app:tarball) -# $ docker run --rm local/py_template_fastapi_app:latest +# $ bazel build //projects/template_fastapi_app:tarball +# $ docker load --input $(bazel cquery --output=files //projects/template_fastapi_app:tarball) +# $ docker run --rm local/template_fastapi_app:latest # See: https://github.com/bazel-contrib/rules_oci/blob/main/docs/tarball.md oci_tarball( name = "tarball", - image = ":py_template_image", - repo_tags = ["local/py_template_fastapi_app:latest"], + image = ":template_image", + repo_tags = ["local/template_fastapi_app:latest"], ) # See: @@ -118,6 +118,6 @@ oci_tarball( container_structure_test( name = "container_test", configs = ["tests/container_test.yaml"], - image = ":py_template_image", + image = ":template_image", timeout = "short" ) diff --git a/projects/py_template_fastapi_app/README.md b/projects/template_fastapi_app/README.md similarity index 86% rename from projects/py_template_fastapi_app/README.md rename to projects/template_fastapi_app/README.md index f321caa..9664d3e 100644 --- a/projects/py_template_fastapi_app/README.md +++ b/projects/template_fastapi_app/README.md @@ -13,3 +13,11 @@ Template for creating FastAPI projects. ## Known issues - [ ] None yet + +## Reference + +- + +## Reference Template + +- diff --git a/projects/py_template_fastapi_app/app/web_app.py b/projects/template_fastapi_app/app/web_app.py similarity index 100% rename from projects/py_template_fastapi_app/app/web_app.py rename to projects/template_fastapi_app/app/web_app.py diff --git a/projects/py_template_fastapi_app/bin/run_bin.py b/projects/template_fastapi_app/bin/run_bin.py similarity index 81% rename from projects/py_template_fastapi_app/bin/run_bin.py rename to projects/template_fastapi_app/bin/run_bin.py index 3953ef7..b40e6d0 100644 --- a/projects/py_template_fastapi_app/bin/run_bin.py +++ b/projects/template_fastapi_app/bin/run_bin.py @@ -3,7 +3,7 @@ if __name__ == "__main__": # freeze_support() - uvicorn.run("projects.py_template_fastapi_app.app.web_app:app", + uvicorn.run("projects.template_fastapi_app.app.web_app:app", host="0.0.0.0", port=5000, reload=True, diff --git a/projects/py_template_fastapi_app/tests/container_test.yaml b/projects/template_fastapi_app/tests/container_test.yaml similarity index 78% rename from projects/py_template_fastapi_app/tests/container_test.yaml rename to projects/template_fastapi_app/tests/container_test.yaml index d375f52..b1aa3a8 100644 --- a/projects/py_template_fastapi_app/tests/container_test.yaml +++ b/projects/template_fastapi_app/tests/container_test.yaml @@ -3,7 +3,7 @@ # - https://github.com/GoogleContainerTools/container-structure-test#running-structure-tests-through-bazel schemaVersion: 2.0.0 metadataTest: - entrypoint: ['/opt/projects/py_template_fastapi_app/run_bin'] + entrypoint: ['/opt/projects/template_fastapi_app/run_bin'] # exposedPorts: ["5000"] commandTests: # check that the python binary is in the correct location @@ -12,11 +12,11 @@ commandTests: args: ["python"] expectedOutput: ["/usr/local/bin/python\n"] # - name: run - # command: /opt/projects/py_template_fastapi_app/run_bin + # command: /opt/projects/template_fastapi_app/run_bin # expectedOutput: ['I am alive'] fileExistenceTests: - name: 'run_bin' - path: '/opt/projects/py_template_fastapi_app/run_bin' + path: '/opt/projects/template_fastapi_app/run_bin' shouldExist: true permissions: '-r-xr-xr-x' # uid: 1000 diff --git a/projects/py_template_fastapi_app/tests/web_app_test.py b/projects/template_fastapi_app/tests/web_app_test.py similarity index 93% rename from projects/py_template_fastapi_app/tests/web_app_test.py rename to projects/template_fastapi_app/tests/web_app_test.py index abf63da..cf19862 100644 --- a/projects/py_template_fastapi_app/tests/web_app_test.py +++ b/projects/template_fastapi_app/tests/web_app_test.py @@ -17,7 +17,7 @@ from fastapi.testclient import TestClient -from projects.py_template_fastapi_app.bin import run_bin +from projects.template_fastapi_app.bin import run_bin client = TestClient(run_bin) diff --git a/projects/template_gin_app/README.md b/projects/template_gin_app/README.md new file mode 100644 index 0000000..7af6beb --- /dev/null +++ b/projects/template_gin_app/README.md @@ -0,0 +1,7 @@ +## Reference + +- https://github.com/copier-org/copier + +## Reference Templates + +- https://github.com/serious-scaffold/serious-scaffold-python diff --git a/projects/template_typer_app/README.md b/projects/template_typer_app/README.md new file mode 100644 index 0000000..7af6beb --- /dev/null +++ b/projects/template_typer_app/README.md @@ -0,0 +1,7 @@ +## Reference + +- https://github.com/copier-org/copier + +## Reference Templates + +- https://github.com/serious-scaffold/serious-scaffold-python diff --git a/skaffold.yaml b/skaffold.yaml index bac6985..5f7fc26 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -1,9 +1,11 @@ apiVersion: skaffold/v4beta5 kind: Config requires: -# - path: ./projects/base_py_fastapi_app # Nothing to skaffold here! +# - path: ./projects/base_fastapi_app # Nothing to skaffold here! +# - path: ./projects/base_gin_app # Nothing to skaffold here! +# - path: ./projects/base_springboot_app # Nothing to skaffold here! - path: ./projects/go_devops_cli_app -- path: ./projects/py_devops_fastapi_app +- path: ./projects/devops_fastapi_app