mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Merge pull request #73819 from coffeepac/move-fluentd-es-images
Move fluentd es images
This commit is contained in:
		@@ -1,83 +1,91 @@
 | 
			
		||||
# Elasticsearch Add-On
 | 
			
		||||
 | 
			
		||||
This add-on consists of a combination of [Elasticsearch][elasticsearch],
 | 
			
		||||
[Fluentd][fluentd] and [Kibana][kibana]. Elasticsearch is a search engine
 | 
			
		||||
that is responsible for storing our logs and allowing for them to be queried.
 | 
			
		||||
Fluentd sends log messages from Kubernetes to Elasticsearch, whereas Kibana
 | 
			
		||||
is a graphical interface for viewing and querying the logs stored in
 | 
			
		||||
Elasticsearch.
 | 
			
		||||
 | 
			
		||||
**Note:** this addon should **not** be used as-is in production. This is
 | 
			
		||||
an example and you should treat it as such. Please see at least the
 | 
			
		||||
[Security](#security) and the [Storage](#storage) sections for more
 | 
			
		||||
information.
 | 
			
		||||
 | 
			
		||||
## Elasticsearch
 | 
			
		||||
 | 
			
		||||
Elasticsearch is deployed as a [StatefulSet][statefulSet], which is like
 | 
			
		||||
a Deployment, but allows for maintaining state on storage volumes. 
 | 
			
		||||
 | 
			
		||||
### Security
 | 
			
		||||
 | 
			
		||||
Elasticsearch has capabilities to enable authorization using the [X-Pack
 | 
			
		||||
plugin][xPack]. For the sake of simplicity this example uses the fully open
 | 
			
		||||
source prebuild images from elastic that do not contain the X-Pack plugin. If
 | 
			
		||||
you need these features, please consider building the images from either the
 | 
			
		||||
"basic" or "platinum" version. After enabling these features, follow [official
 | 
			
		||||
documentation][setupCreds] to set up credentials in Elasticsearch and Kibana.
 | 
			
		||||
Don't forget to propagate those credentials also to Fluentd in its
 | 
			
		||||
[configuration][fluentdCreds], using for example [environment
 | 
			
		||||
variables][fluentdEnvVar]. You can utilize [ConfigMaps][configMap] and
 | 
			
		||||
[Secrets][secret] to store credentials in the Kubernetes apiserver.
 | 
			
		||||
 | 
			
		||||
### Initialization
 | 
			
		||||
 | 
			
		||||
The Elasticsearch StatefulSet manifest specifies that there shall be an
 | 
			
		||||
[init container][initContainer] executing before Elasticsearch containers
 | 
			
		||||
themselves, in order to ensure that the kernel state variable
 | 
			
		||||
`vm.max_map_count` is at least 262144, since this is a requirement of
 | 
			
		||||
Elasticsearch. You may remove the init container if you know that your host
 | 
			
		||||
OS meets this requirement.
 | 
			
		||||
 | 
			
		||||
### Storage
 | 
			
		||||
 | 
			
		||||
The Elasticsearch StatefulSet will use the [EmptyDir][emptyDir] volume to
 | 
			
		||||
store data. EmptyDir is erased when the pod terminates, here it is used only
 | 
			
		||||
for testing purposes. **Important:** please change the storage to persistent
 | 
			
		||||
volume claim before actually using this StatefulSet in your setup!
 | 
			
		||||
 | 
			
		||||
## Fluentd
 | 
			
		||||
 | 
			
		||||
Fluentd is deployed as a [DaemonSet][daemonSet] which spawns a pod on each
 | 
			
		||||
node that reads logs, generated by kubelet, container runtime and containers
 | 
			
		||||
and sends them to Elasticsearch.
 | 
			
		||||
 | 
			
		||||
**Note:** in order for Fluentd to work, every Kubernetes node must be labeled
 | 
			
		||||
with `beta.kubernetes.io/fluentd-ds-ready=true`, as otherwise the Fluentd
 | 
			
		||||
DaemonSet will ignore them.
 | 
			
		||||
 | 
			
		||||
Learn more in the [official Kubernetes documentation][k8sElasticsearchDocs].
 | 
			
		||||
 | 
			
		||||
### Known problems
 | 
			
		||||
 | 
			
		||||
Since Fluentd talks to the Elasticsearch service inside the cluster, instances
 | 
			
		||||
on masters won't work, because masters have no kube-proxy. Don't mark masters
 | 
			
		||||
with the label mentioned in the previous paragraph or add a taint on them to
 | 
			
		||||
avoid Fluentd pods scheduling there.
 | 
			
		||||
 | 
			
		||||
[fluentd]: http://www.fluentd.org/
 | 
			
		||||
[elasticsearch]: https://www.elastic.co/products/elasticsearch
 | 
			
		||||
[kibana]: https://www.elastic.co/products/kibana
 | 
			
		||||
[xPack]: https://www.elastic.co/products/x-pack
 | 
			
		||||
[setupCreds]: https://www.elastic.co/guide/en/x-pack/current/setting-up-authentication.html#reset-built-in-user-passwords
 | 
			
		||||
[fluentdCreds]: https://github.com/uken/fluent-plugin-elasticsearch#user-password-path-scheme-ssl_verify
 | 
			
		||||
[fluentdEnvVar]: https://docs.fluentd.org/v0.12/articles/faq#how-can-i-use-environment-variables-to-configure-parameters-dynamically
 | 
			
		||||
[configMap]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
 | 
			
		||||
[secret]: https://kubernetes.io/docs/concepts/configuration/secret/
 | 
			
		||||
[statefulSet]: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset
 | 
			
		||||
[initContainer]: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
 | 
			
		||||
[emptyDir]: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
 | 
			
		||||
[daemonSet]: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
 | 
			
		||||
[k8sElasticsearchDocs]: https://kubernetes.io/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana
 | 
			
		||||
 | 
			
		||||
[]()
 | 
			
		||||
# Elasticsearch Add-On
 | 
			
		||||
 | 
			
		||||
This add-on consists of a combination of [Elasticsearch][elasticsearch],
 | 
			
		||||
[Fluentd][fluentd] and [Kibana][kibana]. Elasticsearch is a search engine
 | 
			
		||||
that is responsible for storing our logs and allowing for them to be queried.
 | 
			
		||||
Fluentd sends log messages from Kubernetes to Elasticsearch, whereas Kibana
 | 
			
		||||
is a graphical interface for viewing and querying the logs stored in
 | 
			
		||||
Elasticsearch.
 | 
			
		||||
 | 
			
		||||
**Note:** this addon should **not** be used as-is in production. This is
 | 
			
		||||
an example and you should treat it as such. Please see at least the
 | 
			
		||||
[Security](#security) and the [Storage](#storage) sections for more
 | 
			
		||||
information.
 | 
			
		||||
 | 
			
		||||
## Elasticsearch
 | 
			
		||||
 | 
			
		||||
Elasticsearch is deployed as a [StatefulSet][statefulSet], which is like
 | 
			
		||||
a Deployment, but allows for maintaining state on storage volumes. 
 | 
			
		||||
 | 
			
		||||
### Security
 | 
			
		||||
 | 
			
		||||
Elasticsearch has capabilities to enable authorization using the [X-Pack
 | 
			
		||||
plugin][xPack]. For the sake of simplicity this example uses the fully open
 | 
			
		||||
source prebuild images from elastic that do not contain the X-Pack plugin. If
 | 
			
		||||
you need these features, please consider building the images from either the
 | 
			
		||||
"basic" or "platinum" version. After enabling these features, follow [official
 | 
			
		||||
documentation][setupCreds] to set up credentials in Elasticsearch and Kibana.
 | 
			
		||||
Don't forget to propagate those credentials also to Fluentd in its
 | 
			
		||||
[configuration][fluentdCreds], using for example [environment
 | 
			
		||||
variables][fluentdEnvVar]. You can utilize [ConfigMaps][configMap] and
 | 
			
		||||
[Secrets][secret] to store credentials in the Kubernetes apiserver.
 | 
			
		||||
 | 
			
		||||
### Initialization
 | 
			
		||||
 | 
			
		||||
The Elasticsearch StatefulSet manifest specifies that there shall be an
 | 
			
		||||
[init container][initContainer] executing before Elasticsearch containers
 | 
			
		||||
themselves, in order to ensure that the kernel state variable
 | 
			
		||||
`vm.max_map_count` is at least 262144, since this is a requirement of
 | 
			
		||||
Elasticsearch. You may remove the init container if you know that your host
 | 
			
		||||
OS meets this requirement.
 | 
			
		||||
 | 
			
		||||
### Storage
 | 
			
		||||
 | 
			
		||||
The Elasticsearch StatefulSet will use the [EmptyDir][emptyDir] volume to
 | 
			
		||||
store data. EmptyDir is erased when the pod terminates, here it is used only
 | 
			
		||||
for testing purposes. **Important:** please change the storage to persistent
 | 
			
		||||
volume claim before actually using this StatefulSet in your setup!
 | 
			
		||||
 | 
			
		||||
## Fluentd
 | 
			
		||||
 | 
			
		||||
Fluentd is deployed as a [DaemonSet][daemonSet] which spawns a pod on each
 | 
			
		||||
node that reads logs, generated by kubelet, container runtime and containers
 | 
			
		||||
and sends them to Elasticsearch.
 | 
			
		||||
 | 
			
		||||
**Note:** in order for Fluentd to work, every Kubernetes node must be labeled
 | 
			
		||||
with `beta.kubernetes.io/fluentd-ds-ready=true`, as otherwise the Fluentd
 | 
			
		||||
DaemonSet will ignore them.
 | 
			
		||||
 | 
			
		||||
Learn more in the [official Kubernetes documentation][k8sElasticsearchDocs].
 | 
			
		||||
 | 
			
		||||
## Building
 | 
			
		||||
 | 
			
		||||
Both images are now being hosted in google cloud and are built via the
 | 
			
		||||
[cloud build](https://cloud.google.com/cloud-build/) product.  To build these
 | 
			
		||||
images yourself you will need to have the [gcloud sdk](https://cloud.google.com/sdk/install)
 | 
			
		||||
installed and you will need to login.  You can then run `make` in either
 | 
			
		||||
image directory to trigger a container build.
 | 
			
		||||
 | 
			
		||||
### Known problems
 | 
			
		||||
 | 
			
		||||
Since Fluentd talks to the Elasticsearch service inside the cluster, instances
 | 
			
		||||
on masters won't work, because masters have no kube-proxy. Don't mark masters
 | 
			
		||||
with the label mentioned in the previous paragraph or add a taint on them to
 | 
			
		||||
avoid Fluentd pods scheduling there.
 | 
			
		||||
 | 
			
		||||
[fluentd]: http://www.fluentd.org/
 | 
			
		||||
[elasticsearch]: https://www.elastic.co/products/elasticsearch
 | 
			
		||||
[kibana]: https://www.elastic.co/products/kibana
 | 
			
		||||
[xPack]: https://www.elastic.co/products/x-pack
 | 
			
		||||
[setupCreds]: https://www.elastic.co/guide/en/x-pack/current/setting-up-authentication.html#reset-built-in-user-passwords
 | 
			
		||||
[fluentdCreds]: https://github.com/uken/fluent-plugin-elasticsearch#user-password-path-scheme-ssl_verify
 | 
			
		||||
[fluentdEnvVar]: https://docs.fluentd.org/v0.12/articles/faq#how-can-i-use-environment-variables-to-configure-parameters-dynamically
 | 
			
		||||
[configMap]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
 | 
			
		||||
[secret]: https://kubernetes.io/docs/concepts/configuration/secret/
 | 
			
		||||
[statefulSet]: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset
 | 
			
		||||
[initContainer]: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
 | 
			
		||||
[emptyDir]: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
 | 
			
		||||
[daemonSet]: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
 | 
			
		||||
[k8sElasticsearchDocs]: https://kubernetes.io/docs/tasks/debug-application-cluster/logging-elasticsearch-kibana
 | 
			
		||||
 | 
			
		||||
[]()
 | 
			
		||||
 
 | 
			
		||||
@@ -12,12 +12,18 @@
 | 
			
		||||
# See the License for the specific language governing permissions and
 | 
			
		||||
# limitations under the License.
 | 
			
		||||
 | 
			
		||||
FROM golang:1.11.5 AS builder
 | 
			
		||||
COPY elasticsearch_logging_discovery.go go.mod go.sum /
 | 
			
		||||
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -ldflags "-w" -o /elasticsearch_logging_discovery /elasticsearch_logging_discovery.go
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
FROM docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2
 | 
			
		||||
 | 
			
		||||
VOLUME ["/data"]
 | 
			
		||||
EXPOSE 9200 9300
 | 
			
		||||
 | 
			
		||||
COPY elasticsearch_logging_discovery run.sh bin/
 | 
			
		||||
COPY --from=builder /elasticsearch_logging_discovery bin/
 | 
			
		||||
COPY run.sh bin/
 | 
			
		||||
COPY config/elasticsearch.yml config/log4j2.properties config/
 | 
			
		||||
 | 
			
		||||
USER root
 | 
			
		||||
 
 | 
			
		||||
@@ -12,20 +12,11 @@
 | 
			
		||||
# See the License for the specific language governing permissions and
 | 
			
		||||
# limitations under the License.
 | 
			
		||||
 | 
			
		||||
.PHONY:	binary build push
 | 
			
		||||
.PHONY:	build
 | 
			
		||||
 | 
			
		||||
PREFIX = staging-k8s.gcr.io
 | 
			
		||||
PREFIX = gcr.io/fluentd-elasticsearch
 | 
			
		||||
IMAGE = elasticsearch
 | 
			
		||||
TAG = v6.3.0
 | 
			
		||||
 | 
			
		||||
build:
 | 
			
		||||
	docker build --pull -t $(PREFIX)/$(IMAGE):$(TAG) .
 | 
			
		||||
 | 
			
		||||
push:
 | 
			
		||||
	docker push $(PREFIX)/$(IMAGE):$(TAG)
 | 
			
		||||
 | 
			
		||||
binary:
 | 
			
		||||
	CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-w" elasticsearch_logging_discovery.go
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm elasticsearch_logging_discovery
 | 
			
		||||
	gcloud builds submit --tag ${PREFIX}/${IMAGE}:${TAG}
 | 
			
		||||
							
								
								
									
										35
									
								
								cluster/addons/fluentd-elasticsearch/es-image/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								cluster/addons/fluentd-elasticsearch/es-image/go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
module fake/import/path
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/davecgh/go-spew v1.1.1 // indirect
 | 
			
		||||
	github.com/docker/distribution v2.7.1+incompatible // indirect
 | 
			
		||||
	github.com/gogo/protobuf v1.2.0 // indirect
 | 
			
		||||
	github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c // indirect
 | 
			
		||||
	github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf // indirect
 | 
			
		||||
	github.com/googleapis/gnostic v0.2.0 // indirect
 | 
			
		||||
	github.com/gregjones/httpcache v0.0.0-20181110185634-c63ab54fda8f // indirect
 | 
			
		||||
	github.com/imdario/mergo v0.3.6 // indirect
 | 
			
		||||
	github.com/json-iterator/go v1.1.5 // indirect
 | 
			
		||||
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
 | 
			
		||||
	github.com/modern-go/reflect2 v1.0.1 // indirect
 | 
			
		||||
	github.com/opencontainers/go-digest v1.0.0-rc1 // indirect
 | 
			
		||||
	github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
 | 
			
		||||
	github.com/spf13/pflag v1.0.3 // indirect
 | 
			
		||||
	github.com/stretchr/testify v1.3.0 // indirect
 | 
			
		||||
	golang.org/x/crypto v0.0.0-20190122013713-64072686203f // indirect
 | 
			
		||||
	golang.org/x/net v0.0.0-20190119204137-ed066c81e75e // indirect
 | 
			
		||||
	golang.org/x/oauth2 v0.0.0-20190115181402-5dab4167f31c // indirect
 | 
			
		||||
	golang.org/x/sys v0.0.0-20190122071731-054c452bb702 // indirect
 | 
			
		||||
	golang.org/x/time v0.0.0-20181108054448-85acf8d2951c // indirect
 | 
			
		||||
	gopkg.in/inf.v0 v0.9.1 // indirect
 | 
			
		||||
	gopkg.in/yaml.v2 v2.2.2 // indirect
 | 
			
		||||
	k8s.io/api v0.0.0-20190111032252-67edc246be36 // indirect
 | 
			
		||||
	k8s.io/apiextensions-apiserver v0.0.0-20190111034747-7d26de67f177 // indirect
 | 
			
		||||
	k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93
 | 
			
		||||
	k8s.io/apiserver v0.0.0-20190111033246-d50e9ac5404f // indirect
 | 
			
		||||
	k8s.io/client-go v10.0.0+incompatible
 | 
			
		||||
	k8s.io/klog v0.1.0
 | 
			
		||||
	k8s.io/kubernetes v1.13.2
 | 
			
		||||
	k8s.io/utils v0.0.0-20181221173059-8a16e7dd8fb6 // indirect
 | 
			
		||||
	sigs.k8s.io/yaml v1.1.0 // indirect
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										79
									
								
								cluster/addons/fluentd-elasticsearch/es-image/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								cluster/addons/fluentd-elasticsearch/es-image/go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
 | 
			
		||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
 | 
			
		||||
github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
 | 
			
		||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 | 
			
		||||
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
 | 
			
		||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw=
 | 
			
		||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 | 
			
		||||
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck=
 | 
			
		||||
github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI=
 | 
			
		||||
github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=
 | 
			
		||||
github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
 | 
			
		||||
github.com/gregjones/httpcache v0.0.0-20181110185634-c63ab54fda8f h1:ShTPMJQes6tubcjzGMODIVG5hlrCeImaBnZzKF2N8SM=
 | 
			
		||||
github.com/gregjones/httpcache v0.0.0-20181110185634-c63ab54fda8f/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
 | 
			
		||||
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
 | 
			
		||||
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 | 
			
		||||
github.com/json-iterator/go v1.1.5 h1:gL2yXlmiIo4+t+y32d4WGwOjKGYcGOuyrg46vadswDE=
 | 
			
		||||
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 | 
			
		||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
 | 
			
		||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 | 
			
		||||
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
 | 
			
		||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
			
		||||
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
 | 
			
		||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
 | 
			
		||||
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
 | 
			
		||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 | 
			
		||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190122013713-64072686203f h1:u1CmMhe3a44hy8VIgpInORnI01UVaUYheqR7x9BxT3c=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190122013713-64072686203f/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190119204137-ed066c81e75e h1:MDa3fSUp6MdYHouVmCCNz/zaH2a6CRcxY3VhT/K3C5Q=
 | 
			
		||||
golang.org/x/net v0.0.0-20190119204137-ed066c81e75e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20190115181402-5dab4167f31c h1:pcBdqVcrlT+A3i+tWsOROFONQyey9tisIQHI4xqVGLg=
 | 
			
		||||
golang.org/x/oauth2 v0.0.0-20190115181402-5dab4167f31c/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190122071731-054c452bb702 h1:Lk4tbZFnlyPgV+sLgTw5yGfzrlOn9kx4vSombi2FFlY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg=
 | 
			
		||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 | 
			
		||||
google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
 | 
			
		||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
 | 
			
		||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
k8s.io/api v0.0.0-20190111032252-67edc246be36 h1:XrFGq/4TDgOxYOxtNROTyp2ASjHjBIITdk/+aJD+zyY=
 | 
			
		||||
k8s.io/api v0.0.0-20190111032252-67edc246be36/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA=
 | 
			
		||||
k8s.io/apiextensions-apiserver v0.0.0-20190111034747-7d26de67f177 h1:jtIDnyMLAy15hJmcjRMq3ia0LwHkQBLVo1IRXdDMS38=
 | 
			
		||||
k8s.io/apiextensions-apiserver v0.0.0-20190111034747-7d26de67f177/go.mod h1:IxkesAMoaCRoLrPJdZNZUQp9NfZnzqaVzLhb2VEQzXE=
 | 
			
		||||
k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93 h1:tT6oQBi0qwLbbZSfDkdIsb23EwaLY85hoAV4SpXfdao=
 | 
			
		||||
k8s.io/apimachinery v0.0.0-20181127025237-2b1284ed4c93/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0=
 | 
			
		||||
k8s.io/apiserver v0.0.0-20190111033246-d50e9ac5404f h1:jOhsBtH52EgxnCNJrCuToXFfQtb3nQDoBPzItfPmSsI=
 | 
			
		||||
k8s.io/apiserver v0.0.0-20190111033246-d50e9ac5404f/go.mod h1:6bqaTSOSJavUIXUtfaR9Os9JtTCm8ZqH2SUl2S60C4w=
 | 
			
		||||
k8s.io/client-go v10.0.0+incompatible h1:F1IqCqw7oMBzDkqlcBymRq1450wD0eNqLE9jzUrIi34=
 | 
			
		||||
k8s.io/client-go v10.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
 | 
			
		||||
k8s.io/klog v0.1.0 h1:I5HMfc/DtuVaGR1KPwUrTc476K8NCqNBldC7H4dYEzk=
 | 
			
		||||
k8s.io/klog v0.1.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
 | 
			
		||||
k8s.io/kubernetes v1.13.2 h1:rBz6dubDY4bfv85G6zo04v9G5wniTxvBI9yQ/QxJS3g=
 | 
			
		||||
k8s.io/kubernetes v1.13.2/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
 | 
			
		||||
k8s.io/utils v0.0.0-20181221173059-8a16e7dd8fb6 h1:+jRzzMyx+I9J18BvwHYmZ5hpPwoZfh6g39WfNlsMCkY=
 | 
			
		||||
k8s.io/utils v0.0.0-20181221173059-8a16e7dd8fb6/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
 | 
			
		||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 | 
			
		||||
@@ -12,14 +12,11 @@
 | 
			
		||||
# See the License for the specific language governing permissions and
 | 
			
		||||
# limitations under the License.
 | 
			
		||||
 | 
			
		||||
.PHONY:	build push
 | 
			
		||||
.PHONY:	build
 | 
			
		||||
 | 
			
		||||
PREFIX = staging-k8s.gcr.io
 | 
			
		||||
IMAGE = fluentd-elasticsearch
 | 
			
		||||
PREFIX = gcr.io/fluentd-elasticsearch
 | 
			
		||||
IMAGE = fluentd
 | 
			
		||||
TAG = v2.4.0
 | 
			
		||||
 | 
			
		||||
build:
 | 
			
		||||
	docker build --pull -t $(PREFIX)/$(IMAGE):$(TAG) .
 | 
			
		||||
 | 
			
		||||
push:
 | 
			
		||||
	docker push $(PREFIX)/$(IMAGE):$(TAG)
 | 
			
		||||
	gcloud builds submit --tag $(PREFIX)/$(IMAGE):$(TAG)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user