@ -0,0 +1,2 @@ | |||||
kubectl label namespace default istio-injection=enabled | |||||
kubectl get namespace -L istio-injection |
@ -0,0 +1,2 @@ | |||||
helm delete --purge istio | |||||
kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system |
@ -1,3 +1,4 @@ | |||||
$ISTIO_VERSION="1.0.6" | $ISTIO_VERSION="1.0.6" | ||||
cd istio-$ISTIO_VERSION | cd istio-$ISTIO_VERSION | ||||
helm install install/kubernetes/helm/istio --name istio --namespace istio-system --set global.controlPlaneSecurityEnabled=true --set grafana.enabled=true --set tracing.enabled=true --set kiali.enabled=true | |||||
helm install install/kubernetes/helm/istio --wait --name istio --namespace istio-system --set global.controlPlaneSecurityEnabled=true --set grafana.enabled=true --set tracing.enabled=true --set kiali.enabled=true --set ingress.enabled=false --set gateways.istio-ingressgateway.enabled=false | |||||
cd .. |
@ -0,0 +1,21 @@ | |||||
kind: Service | |||||
apiVersion: v1 | |||||
metadata: | |||||
name: ingress-nginx | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
spec: | |||||
externalTrafficPolicy: Local | |||||
type: LoadBalancer | |||||
selector: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
ports: | |||||
- name: http | |||||
port: 80 | |||||
targetPort: http | |||||
- name: https | |||||
port: 443 | |||||
targetPort: https |
@ -0,0 +1,3 @@ | |||||
data: | |||||
mvc_e: http://10.0.75.1/webmvc | |||||
@ -0,0 +1,3 @@ | |||||
data: | |||||
urls__IdentityUrl: http://10.0.75.1/identity | |||||
urls__mvc: http://10.0.75.1/webmvc |
@ -0,0 +1,39 @@ | |||||
apiVersion: extensions/v1beta1 | |||||
kind: Ingress | |||||
metadata: | |||||
annotations: | |||||
ingress.kubernetes.io/ssl-redirect: "false" | |||||
kubernetes.io/ingress.class: nginx | |||||
nginx.ingress.kubernetes.io/ssl-redirect: "false" | |||||
labels: | |||||
app: webmvc | |||||
name: eshop-webmvc-loopback | |||||
namespace: default | |||||
spec: | |||||
rules: | |||||
- http: | |||||
paths: | |||||
- backend: | |||||
serviceName: webmvc | |||||
servicePort: http | |||||
path: /webmvc | |||||
--- | |||||
apiVersion: extensions/v1beta1 | |||||
kind: Ingress | |||||
metadata: | |||||
annotations: | |||||
ingress.kubernetes.io/ssl-redirect: "false" | |||||
kubernetes.io/ingress.class: nginx | |||||
nginx.ingress.kubernetes.io/ssl-redirect: "false" | |||||
labels: | |||||
app: identity-api | |||||
name: eshop-identity-api-loopback | |||||
namespace: default | |||||
spec: | |||||
rules: | |||||
- http: | |||||
paths: | |||||
- backend: | |||||
serviceName: identity | |||||
servicePort: http | |||||
path: /identity |
@ -0,0 +1,239 @@ | |||||
apiVersion: v1 | |||||
kind: Namespace | |||||
metadata: | |||||
name: ingress-nginx | |||||
--- | |||||
kind: ConfigMap | |||||
apiVersion: v1 | |||||
metadata: | |||||
name: nginx-configuration | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
--- | |||||
apiVersion: v1 | |||||
kind: ServiceAccount | |||||
metadata: | |||||
name: nginx-ingress-serviceaccount | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: ClusterRole | |||||
metadata: | |||||
name: nginx-ingress-clusterrole | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
rules: | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
- endpoints | |||||
- nodes | |||||
- pods | |||||
- secrets | |||||
verbs: | |||||
- list | |||||
- watch | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- nodes | |||||
verbs: | |||||
- get | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- services | |||||
verbs: | |||||
- get | |||||
- list | |||||
- watch | |||||
- apiGroups: | |||||
- "extensions" | |||||
resources: | |||||
- ingresses | |||||
verbs: | |||||
- get | |||||
- list | |||||
- watch | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- events | |||||
verbs: | |||||
- create | |||||
- patch | |||||
- apiGroups: | |||||
- "extensions" | |||||
resources: | |||||
- ingresses/status | |||||
verbs: | |||||
- update | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: Role | |||||
metadata: | |||||
name: nginx-ingress-role | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
rules: | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
- pods | |||||
- secrets | |||||
- namespaces | |||||
verbs: | |||||
- get | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
resourceNames: | |||||
# Defaults to "<election-id>-<ingress-class>" | |||||
# Here: "<ingress-controller-leader>-<nginx>" | |||||
# This has to be adapted if you change either parameter | |||||
# when launching the nginx-ingress-controller. | |||||
- "ingress-controller-leader-nginx" | |||||
verbs: | |||||
- get | |||||
- update | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
verbs: | |||||
- create | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- endpoints | |||||
verbs: | |||||
- get | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: RoleBinding | |||||
metadata: | |||||
name: nginx-ingress-role-nisa-binding | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
roleRef: | |||||
apiGroup: rbac.authorization.k8s.io | |||||
kind: Role | |||||
name: nginx-ingress-role | |||||
subjects: | |||||
- kind: ServiceAccount | |||||
name: nginx-ingress-serviceaccount | |||||
namespace: ingress-nginx | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: ClusterRoleBinding | |||||
metadata: | |||||
name: nginx-ingress-clusterrole-nisa-binding | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
roleRef: | |||||
apiGroup: rbac.authorization.k8s.io | |||||
kind: ClusterRole | |||||
name: nginx-ingress-clusterrole | |||||
subjects: | |||||
- kind: ServiceAccount | |||||
name: nginx-ingress-serviceaccount | |||||
namespace: ingress-nginx | |||||
--- | |||||
apiVersion: extensions/v1beta1 | |||||
kind: Deployment | |||||
metadata: | |||||
name: nginx-ingress-controller | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
spec: | |||||
replicas: 1 | |||||
selector: | |||||
matchLabels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
template: | |||||
metadata: | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
annotations: | |||||
prometheus.io/port: "10254" | |||||
prometheus.io/scrape: "true" | |||||
service-upstream: "true" | |||||
spec: | |||||
serviceAccountName: nginx-ingress-serviceaccount | |||||
containers: | |||||
- name: nginx-ingress-controller | |||||
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.20.0 | |||||
args: | |||||
- /nginx-ingress-controller | |||||
- --configmap=$(POD_NAMESPACE)/nginx-configuration | |||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx | |||||
- --annotations-prefix=nginx.ingress.kubernetes.io | |||||
securityContext: | |||||
capabilities: | |||||
drop: | |||||
- ALL | |||||
add: | |||||
- NET_BIND_SERVICE | |||||
# www-data -> 33 | |||||
runAsUser: 33 | |||||
env: | |||||
- name: POD_NAME | |||||
valueFrom: | |||||
fieldRef: | |||||
fieldPath: metadata.name | |||||
- name: POD_NAMESPACE | |||||
valueFrom: | |||||
fieldRef: | |||||
fieldPath: metadata.namespace | |||||
ports: | |||||
- name: http | |||||
containerPort: 80 | |||||
- name: https | |||||
containerPort: 443 | |||||
livenessProbe: | |||||
failureThreshold: 3 | |||||
httpGet: | |||||
path: /healthz | |||||
port: 10254 | |||||
scheme: HTTP | |||||
initialDelaySeconds: 10 | |||||
periodSeconds: 10 | |||||
successThreshold: 1 | |||||
timeoutSeconds: 1 | |||||
readinessProbe: | |||||
failureThreshold: 3 | |||||
httpGet: | |||||
path: /healthz | |||||
port: 10254 | |||||
scheme: HTTP | |||||
periodSeconds: 10 | |||||
successThreshold: 1 | |||||
timeoutSeconds: 1 |
@ -0,0 +1,22 @@ | |||||
apiVersion: v1 | |||||
kind: Service | |||||
metadata: | |||||
name: ingress-nginx | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
spec: | |||||
type: NodePort | |||||
ports: | |||||
- name: http | |||||
port: 80 | |||||
targetPort: 80 | |||||
protocol: TCP | |||||
- name: https | |||||
port: 443 | |||||
targetPort: 443 | |||||
protocol: TCP | |||||
selector: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx |
@ -0,0 +1 @@ | |||||
kubectl apply -f mandatory.yml |
@ -0,0 +1,238 @@ | |||||
apiVersion: v1 | |||||
kind: Namespace | |||||
metadata: | |||||
name: ingress-nginx | |||||
--- | |||||
kind: ConfigMap | |||||
apiVersion: v1 | |||||
metadata: | |||||
name: nginx-configuration | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
--- | |||||
apiVersion: v1 | |||||
kind: ServiceAccount | |||||
metadata: | |||||
name: nginx-ingress-serviceaccount | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: ClusterRole | |||||
metadata: | |||||
name: nginx-ingress-clusterrole | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
rules: | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
- endpoints | |||||
- nodes | |||||
- pods | |||||
- secrets | |||||
verbs: | |||||
- list | |||||
- watch | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- nodes | |||||
verbs: | |||||
- get | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- services | |||||
verbs: | |||||
- get | |||||
- list | |||||
- watch | |||||
- apiGroups: | |||||
- "extensions" | |||||
resources: | |||||
- ingresses | |||||
verbs: | |||||
- get | |||||
- list | |||||
- watch | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- events | |||||
verbs: | |||||
- create | |||||
- patch | |||||
- apiGroups: | |||||
- "extensions" | |||||
resources: | |||||
- ingresses/status | |||||
verbs: | |||||
- update | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: Role | |||||
metadata: | |||||
name: nginx-ingress-role | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
rules: | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
- pods | |||||
- secrets | |||||
- namespaces | |||||
verbs: | |||||
- get | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
resourceNames: | |||||
# Defaults to "<election-id>-<ingress-class>" | |||||
# Here: "<ingress-controller-leader>-<nginx>" | |||||
# This has to be adapted if you change either parameter | |||||
# when launching the nginx-ingress-controller. | |||||
- "ingress-controller-leader-nginx" | |||||
verbs: | |||||
- get | |||||
- update | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- configmaps | |||||
verbs: | |||||
- create | |||||
- apiGroups: | |||||
- "" | |||||
resources: | |||||
- endpoints | |||||
verbs: | |||||
- get | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: RoleBinding | |||||
metadata: | |||||
name: nginx-ingress-role-nisa-binding | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
roleRef: | |||||
apiGroup: rbac.authorization.k8s.io | |||||
kind: Role | |||||
name: nginx-ingress-role | |||||
subjects: | |||||
- kind: ServiceAccount | |||||
name: nginx-ingress-serviceaccount | |||||
namespace: ingress-nginx | |||||
--- | |||||
apiVersion: rbac.authorization.k8s.io/v1beta1 | |||||
kind: ClusterRoleBinding | |||||
metadata: | |||||
name: nginx-ingress-clusterrole-nisa-binding | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
roleRef: | |||||
apiGroup: rbac.authorization.k8s.io | |||||
kind: ClusterRole | |||||
name: nginx-ingress-clusterrole | |||||
subjects: | |||||
- kind: ServiceAccount | |||||
name: nginx-ingress-serviceaccount | |||||
namespace: ingress-nginx | |||||
--- | |||||
apiVersion: extensions/v1beta1 | |||||
kind: Deployment | |||||
metadata: | |||||
name: nginx-ingress-controller | |||||
namespace: ingress-nginx | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
spec: | |||||
replicas: 1 | |||||
selector: | |||||
matchLabels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
template: | |||||
metadata: | |||||
labels: | |||||
app.kubernetes.io/name: ingress-nginx | |||||
app.kubernetes.io/part-of: ingress-nginx | |||||
annotations: | |||||
prometheus.io/port: "10254" | |||||
prometheus.io/scrape: "true" | |||||
spec: | |||||
serviceAccountName: nginx-ingress-serviceaccount | |||||
containers: | |||||
- name: nginx-ingress-controller | |||||
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.20.0 | |||||
args: | |||||
- /nginx-ingress-controller | |||||
- --configmap=$(POD_NAMESPACE)/nginx-configuration | |||||
- --publish-service=$(POD_NAMESPACE)/ingress-nginx | |||||
- --annotations-prefix=nginx.ingress.kubernetes.io | |||||
securityContext: | |||||
capabilities: | |||||
drop: | |||||
- ALL | |||||
add: | |||||
- NET_BIND_SERVICE | |||||
# www-data -> 33 | |||||
runAsUser: 33 | |||||
env: | |||||
- name: POD_NAME | |||||
valueFrom: | |||||
fieldRef: | |||||
fieldPath: metadata.name | |||||
- name: POD_NAMESPACE | |||||
valueFrom: | |||||
fieldRef: | |||||
fieldPath: metadata.namespace | |||||
ports: | |||||
- name: http | |||||
containerPort: 80 | |||||
- name: https | |||||
containerPort: 443 | |||||
livenessProbe: | |||||
failureThreshold: 3 | |||||
httpGet: | |||||
path: /healthz | |||||
port: 10254 | |||||
scheme: HTTP | |||||
initialDelaySeconds: 10 | |||||
periodSeconds: 10 | |||||
successThreshold: 1 | |||||
timeoutSeconds: 1 | |||||
readinessProbe: | |||||
failureThreshold: 3 | |||||
httpGet: | |||||
path: /healthz | |||||
port: 10254 | |||||
scheme: HTTP | |||||
periodSeconds: 10 | |||||
successThreshold: 1 | |||||
timeoutSeconds: 1 |