# Skaffold - Profiles > :(fas fa-info-circle): [**Skaffold Profiles**](https://skaffold.dev/docs/environment/profiles/) are found within the skaffold.yaml file and allow you choose which applications to deploy based on a set of conditions, such as environments or clusters. > ## Introduction In my [previous post]({{< ref "/posts/skaffold-installation" >}}) we generated a starting point for developing applications in this post we will dive deeper into [skaffolds profiles](https://skaffold.dev/docs/environment/profiles/). ## Quick Start > :(fas fa-info-circle): [**Cookiecutter**](https://github.com/cookiecutter/cookiecutter) is a tool that automates project generation. > We will be starting from where we finished [last post]({{< ref "/posts/skaffold-installation" >}}), please generate the required code 1) Install cookiecutter ```bash pip3 install cookiecutter ``` 2) Generate template ```bash cookiecutter https://github.com/mmcloud/cookiecutter-skaffold-init --checkout v1.0.0 ``` If you would prefer to skip to the end and read through ```bash cookiecutter https://github.com/mmcloud/cookiecutter-skaffold-init --checkout v2.0.0 ``` 3) Change directory to generated folder (demo directory is default, change according to inputted project slug) ```bash cd demo ``` 4) Start Minikube ```bash minikube start ``` 5) Develop using skaffold or use cloudcode plugin ```bash skaffold dev ``` 6) Create endpoint ```bash minikube service --url hostservice-external ``` > :(fas fa-info-circle): Changing Source Code will automatically rebuild image > ### Tutorial We start with the following yaml. There are 2 stages, build and deploy. In the build stage we are building the host service from the src directory. In the deploy stage we are using the newly built image from the above and deploying it. ```yaml apiVersion: skaffold/v1beta2 kind: Config build: artifacts: - image: hostservice context: src/hostservice deploy: kubectl: manifests: - ./kubernetes-manifests/hostservice.yaml ``` ### Profiles Profiles can be used for fine tuning deployment to different environments. We will make a profile for minikube as it is our development environment, you can extend the pattern for other clusters. 1) Get context of cluster ```bash kubectl config current-context ``` 2) Update skaffold.yaml with a new profile ```yaml apiVersion: skaffold/v1beta2 kind: Config build: artifacts: - image: hostservice context: src/hostservice deploy: kubectl: manifests: - ./kubernetes-manifests/hostservice.yaml profiles: - name: development activation: - kubeContext: minikube command: dev ``` Lets assume we want to have additional [dns tools](https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/) only in development for debugging. 1) Create dnsutils.yaml file ```bash touch ./kubernetes-manifests/dnsutils.yaml ``` ```yaml apiVersion: v1 kind: Pod metadata: name: dnsutils namespace: default spec: containers: - name: dnsutils image: k8s.gcr.io/e2e-test-images/jessie-dnsutils:1.3 command: - sleep - "3600" imagePullPolicy: IfNotPresent restartPolicy: Always ``` 2) Reference manifests in development profile ```yaml apiVersion: skaffold/v1beta2 kind: Config build: artifacts: - image: hostservice context: src/hostservice deploy: kubectl: manifests: - ./kubernetes-manifests/hostservice.yaml profiles: - name: development activation: - kubeContext: minikube command: dev deploy: kubectl: manifests: - ./kubernetes-manifests/dnsutils.yaml ``` 3) Run skaffold ```bash skaffold dev ``` > :(fas fa-info-circle): [**Profiles**](https://skaffold.dev/docs/environment/profiles/) here are additive, everything above the profile is still deployed and then the dns is added as extra in the context of minikube >