@ -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" | |||
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 |