https://github.com/ammbra/crafty-goblin
Contains 2 sample projects configured with DevSpace and Skaffold.
https://github.com/ammbra/crafty-goblin
development-tools devspace skaffold
Last synced: 4 months ago
JSON representation
Contains 2 sample projects configured with DevSpace and Skaffold.
- Host: GitHub
- URL: https://github.com/ammbra/crafty-goblin
- Owner: ammbra
- License: mit
- Created: 2023-09-25T10:44:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-10T18:07:24.000Z (over 1 year ago)
- Last Synced: 2025-02-18T04:31:08.788Z (4 months ago)
- Topics: development-tools, devspace, skaffold
- Language: Java
- Homepage:
- Size: 6.04 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DevSpace vs Skaffold demo code
This repository contains the application code and setup used to inspect DevSpace vs Skaffold capabilities for iterative development.
## Working with DevSpace
Project [task-buddy](https://github.com/ammbra/crafty-goblin/tree/main/task-buddy) contains the application on which DevSpace was demonstrated. Script `setup.sh` is based on this example: https://github.com/devspace-sh/devspace/tree/main/examples/spring-boot-mysql
### Generate the k8s manifests
The project contains the spring dekorate.io dependency:
```xml
io.dekorate
kubernetes-spring-starter
3.7.0
```and the following configuration in _aplication.properties_:
```text
dekorate.docker.registry=ghcr.io
dekorate.docker.group=ammbra
dekorate.docker.name=task-buddy
dekorate.docker.version=1.0
dekorate.docker.auto-push-enabled=false # disable image push
dekorate.docker.auto-build-enabled=false # disable image build
dekorate.output-path=../../k8s # overwrite default path where the kubernetes manifests are generated
```You can also generate Kubernetes manifests inside _k8s_ folder (or any other folder of your liking) by running:
`mvn verify -Ddekorate.build=true --Ddekorate.output-path=../../k8s".
By default Dekorate generates the kubernetes manifests under _target/classes_, so `-Ddekorate.output-path` instructs Dekorate to create them in a directory relative to that path.
### Start the dev mode
Run the following command to build a container image for your local development:
`devspace build -t 1.0.0 --var=TARGET=build` or its equivalent with `devspace build-dev`
Then just execute in a terminal `devspace dev`.
Next, you can execute `devspace ui` to see the commands that you can run in this project.
### Deploy and rollback an application
You can build a production image by running:
`devspace build-prod`
Deploy the application using:
`devspace deploy`
In case of errors, run `devspace run-pipeline rollback`.
## Working with Skaffold
Project [task-pal](https://github.com/ammbra/crafty-goblin/tree/main/task-pal) contains the application on which Skaffold was demonstrated.
### Generate the k8s manifests
The project contains the spring dekorate.io dependency:
```xml
io.dekorate
kubernetes-spring-starter
3.7.0
```and the following configuration in _aplication.properties_:
```text
dekorate.docker.registry=ghcr.io
dekorate.docker.group=ammbra
dekorate.docker.name=task-pal
dekorate.docker.version=1.0
dekorate.docker.auto-push-enabled=false # disable image push
dekorate.docker.auto-build-enabled=false # disable image build
dekorate.output-path=../../k8s # overwrite default path where the kubernetes manifests are generated
```You can also generate Kubernetes manifests inside _k8s_ folder (or any other folder of your liking) by running:
`mvn verify -Ddekorate.build=true --Ddekorate.output-path=../../k8s".
By default Dekorate generates the kubernetes manifests under _target/classes_, so `-Ddekorate.output-path` instructs Dekorate to create them in a directory relative to that path.
### Start the dev mode
Run the following command to start development mode:
`skaffold dev --default-repo=localhost:5000 -p dev --port-forward`.
### Deploy an application
You can build a production image by running:
`skaffold deploy -p prod -t 1.0`
Deploy the application using:
In case of errors, run `skaffold debug` and attach a remote debugger to the application.