grpc-xds/greeter-go/skaffold.yaml (97 lines of code) (raw):
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: skaffold/v3
kind: Config
metadata:
name: greeter-go
annotations:
config.kubernetes.io/local-config: "true"
build:
artifacts:
# https://skaffold.dev/docs/builders/builder-types/ko/
- image: greeter
ko:
# Using a base image with a shell (`debug`) to enable exec-ing to containers,
# since this is a sample implementation created for learning purposes.
fromImage: gcr.io/distroless/static-debian12:debug-nonroot
dependencies:
paths: ["cmd", "pkg", "third_party", "go.mod", "main.go"]
ignore: [".gitignore", ".golangci.yaml", ".run", "docs", "go.sum", "greeter-go", "k8s", "Makefile", "NOTICE", "README.md"]
flags: ["-buildvcs=false"]
tagPolicy:
inputDigest: {}
deploy:
kubectl: {}
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/base"]
portForward:
- resourceType: Deployment
resourceName: greeter-intermediary
namespace: xds # kpt-set: ${greeter-namespace}
localPort: 50055
port: 50051 # serving port
- resourceType: Deployment
resourceName: greeter-leaf
namespace: xds # kpt-set: ${greeter-namespace}
localPort: 50057
port: 50051 # serving port
profiles:
# Alter the Skaffold config when running `skaffold debug`.
- name: debug # the name is not important
activation:
- command: debug
patches:
# Use a different base image when debugging.
- op: replace
path: /build/artifacts/0/ko/fromImage
value: gcr.io/distroless/base-debian12:debug
# Add port forwarding to the debug ports.
- op: add
path: /portForward/-
value:
resourceType: Deployment
resourceName: greeter-intermediary
namespace: xds # kpt-set: ${control-plane-namespace}
localPort: 56271
port: 56268 # delve debug port
- op: add
path: /portForward/-
value:
resourceType: Deployment
resourceName: greeter-leaf
namespace: xds # kpt-set: ${control-plane-namespace}
localPort: 56272
port: 56268 # delve debug port
# xDS federation, and data plane mTLS using GKE workload TLS certificates ("mesh certificates").
- name: federation-gke
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/federation-gke"]
# xDS federation, and data plane mTLS using workload certificates from cert-manager.
- name: federation-kind
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/federation-kind"]
# No xDS, use gRPC DNS resolver, kube-proxy, and headful services.
- name: no-xds
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/no-xds"]
# Deploy to a GKE or kind Kubernetes cluster, and data plane mTLS using workload certificates from cert-manager.
- name: tls-cert-manager
activation:
- kubeContext: kind.*
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/tls-cert-manager"]
# Deploy to a GKE cluster, and use GKE workload TLS certificates ("mesh certificates").
- name: tls-gke-workload-certs
activation:
- kubeContext: gke.*
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/tls-gke-workload-certs"]
# Deploy to a GKE cluster and use Traffic Director as the xDS control plane.
- name: traffic-director
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/traffic-director"]
# Deploy to a non-GKE cluster and use Traffic Director as the xDS control plane.
- name: traffic-director-off-gcp
manifests:
kustomize:
buildArgs: ["--load-restrictor=LoadRestrictionsNone"]
paths: ["k8s/overlays/traffic-director-off-gcp"]