Add k8s example (#19)
This commit is contained in:
		
				
					committed by
					
						 Manfred Touron
						Manfred Touron
					
				
			
			
				
	
			
			
			
						parent
						
							514198f2e5
						
					
				
				
					commit
					6c946d62eb
				
			
							
								
								
									
										10
									
								
								examples/k8s/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								examples/k8s/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | SOURCES :=	$(shell find . -name "*.proto" -not -path ./vendor/\*) | ||||||
|  |  | ||||||
|  | TARGETS_K8S :=	$(foreach source, $(SOURCES), $(source)_k8s) | ||||||
|  |  | ||||||
|  | .PHONY: build | ||||||
|  | build: $(TARGETS_K8S) | ||||||
|  |  | ||||||
|  | $(TARGETS_K8S): %_k8s: | ||||||
|  | 	@mkdir -p $(dir $*)gen | ||||||
|  | 	protoc $(PROTOC_OPTS) --gotemplate_out=debug=true,template_dir=./templates:$(dir $*)gen "$*" | ||||||
							
								
								
									
										18
									
								
								examples/k8s/gen/nginx/dpl.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								examples/k8s/gen/nginx/dpl.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | apiVersion: extensions/v1beta1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: nginx | ||||||
|  |   labels: | ||||||
|  |     method: Hello-World-nginx | ||||||
|  | spec: | ||||||
|  |   replicas: 3 | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: nginx | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - name: nginx | ||||||
|  |         image: nginx | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 80 | ||||||
							
								
								
									
										10
									
								
								examples/k8s/gen/nginx/svc.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								examples/k8s/gen/nginx/svc.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: nginx | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     app: nginx | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
							
								
								
									
										11
									
								
								examples/k8s/nginx.proto
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								examples/k8s/nginx.proto
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | syntax = "proto3"; | ||||||
|  |  | ||||||
|  | package nginx; | ||||||
|  |  | ||||||
|  | message Empty { | ||||||
|  | } | ||||||
|  |  | ||||||
|  | service Nginx { | ||||||
|  |   rpc Hello(Empty) returns (Empty) {} | ||||||
|  |   rpc World(Empty) returns (Empty) {} | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								examples/k8s/templates/{{.File.Package}}/dpl.yaml.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								examples/k8s/templates/{{.File.Package}}/dpl.yaml.tmpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | apiVersion: extensions/v1beta1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: {{.File.Package}} | ||||||
|  |   labels: | ||||||
|  |     method: {{range .Service.Method}}{{.Name}}-{{end}}{{.File.Package}} | ||||||
|  | spec: | ||||||
|  |   replicas: 3 | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: {{.File.Package}} | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - name: nginx | ||||||
|  |         image: nginx | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 80 | ||||||
							
								
								
									
										10
									
								
								examples/k8s/templates/{{.File.Package}}/svc.yaml.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								examples/k8s/templates/{{.File.Package}}/svc.yaml.tmpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: {{.File.Package}} | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     app: {{.File.Package}} | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
		Reference in New Issue
	
	Block a user