From 0537239d74074869910ce9ae091c44746c05ce7f Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Fri, 3 May 2019 15:09:54 -0400 Subject: [PATCH] Changed rooke to standard storageclass --- roles/initialize-kubernetes/tasks/main.yml | 71 ------------------- .../templates/install-pod-network.sh.j2 | 10 --- .../templates/traefik-ds.yml.j2 | 62 ---------------- .../templates/traefik-rbac.yaml.j2 | 43 ----------- roles/install-kubernetes/tasks/main.yml | 70 ------------------ roles/join-kubernetes-workers/tasks/main.yml | 27 ------- rook/deploy-rook.sh | 2 +- rook/storageclass.yaml | 6 +- 8 files changed, 4 insertions(+), 287 deletions(-) delete mode 100644 roles/initialize-kubernetes/tasks/main.yml delete mode 100644 roles/initialize-kubernetes/templates/install-pod-network.sh.j2 delete mode 100644 roles/initialize-kubernetes/templates/traefik-ds.yml.j2 delete mode 100644 roles/initialize-kubernetes/templates/traefik-rbac.yaml.j2 delete mode 100644 roles/install-kubernetes/tasks/main.yml delete mode 100644 roles/join-kubernetes-workers/tasks/main.yml diff --git a/roles/initialize-kubernetes/tasks/main.yml b/roles/initialize-kubernetes/tasks/main.yml deleted file mode 100644 index bfbd340..0000000 --- a/roles/initialize-kubernetes/tasks/main.yml +++ /dev/null @@ -1,71 +0,0 @@ ---- -- name: Initialize kubernetes - command: kubeadm init --apiserver-advertise-address={{ join_addr }} --pod-network-cidr=10.244.0.0/16 - register: out - failed_when: "out.rc != 0 and '/etc/kubernetes/manifests/kube-apiserver.yaml already exists' not in out.stderr" - changed_when: "out.rc == 0 and '/etc/kubernetes/manifests/kube-apiserver.yaml already exists' not in out.stderr" - become: true - -- name: Get join token - command: > - bash -c 'kubeadm token list | grep -v TOKEN | cut -d " " -f 1' - become: true - register: join_token_reg - changed_when: join_token_reg.rc == 0 - -- name: Set join facts - set_fact: - join_token: "{{ join_token_reg }}" - init_ip: "{{ join_addr }}" - -- name: Copy admin file - shell: > - cp /etc/kubernetes/admin.conf {{ ansible_env.HOME }}/admin.conf && \ - chown {{ ansible_user_id }}:{{ ansible_user_id }} {{ ansible_env.HOME }}/admin.conf - become: true - -- name: Set KUBECONFIG - lineinfile: - path: "{{ ansible_env.HOME }}/.bashrc" - regexp: '^export\ KUBECONFIG=' - line: 'export KUBECONFIG={{ ansible_env.HOME }}/admin.conf' - -- name: Copy pod network install script - template: - src: ../templates/install-pod-network.sh.j2 - dest: "{{ ansible_env.HOME }}/install-pod-network.sh" - - -- name: Install Pod Network - shell: > - bash {{ ansible_env.HOME }}/install-pod-network.sh - environment: - KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf" - -- name: Install Kubernetes Dashboard - shell: kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml - environment: - KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf" - ignore_errors: true - -- name: Copy Traefik ds yml - template: - src: ../templates/traefik-ds.yml.j2 - dest: "{{ ansible_env.HOME }}/traefik-ds.yml" - -- name: Install Traefik Ingress Controller - shell: > - kubectl apply -f {{ ansible_env.HOME }}/traefik-ds.yml - environment: - KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf" - -- name: Copy Traefik rbac yaml - template: - src: ../templates/traefik-rbac.yaml.j2 - dest: "{{ ansible_env.HOME }}/traefik-rbac.yaml" - -- name: Install Traefik RBAC - shell: > - kubectl apply -f {{ ansible_env.HOME }}/traefik-rbac.yaml - environment: - KUBECONFIG: "{{ ansible_env.HOME }}/admin.conf" diff --git a/roles/initialize-kubernetes/templates/install-pod-network.sh.j2 b/roles/initialize-kubernetes/templates/install-pod-network.sh.j2 deleted file mode 100644 index 8cef7c2..0000000 --- a/roles/initialize-kubernetes/templates/install-pod-network.sh.j2 +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -{% if kube_network == "weavenet" %} -kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" -{% elif kube_network == "flannel" %} -kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml -{% elif kube_network == "calico" %} -kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/rbac-kdd.yaml -kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml -{% endif %} \ No newline at end of file diff --git a/roles/initialize-kubernetes/templates/traefik-ds.yml.j2 b/roles/initialize-kubernetes/templates/traefik-ds.yml.j2 deleted file mode 100644 index fdb7e9a..0000000 --- a/roles/initialize-kubernetes/templates/traefik-ds.yml.j2 +++ /dev/null @@ -1,62 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: traefik-ingress-controller - namespace: kube-system ---- -kind: DaemonSet -apiVersion: extensions/v1beta1 -metadata: - name: traefik-ingress-controller - namespace: kube-system - labels: - k8s-app: traefik-ingress-lb -spec: - template: - metadata: - labels: - k8s-app: traefik-ingress-lb - name: traefik-ingress-lb - spec: - serviceAccountName: traefik-ingress-controller - terminationGracePeriodSeconds: 60 - containers: - - image: traefik - name: traefik-ingress-lb - ports: - - name: http - containerPort: 80 - hostPort: 80 - - name: admin - containerPort: 8080 - hostPort: 8080 - securityContext: - capabilities: - drop: - - ALL - add: - - NET_BIND_SERVICE - args: - - --api - - --kubernetes - - --logLevel=INFO - - --ping - - --insecureskipverify ---- -kind: Service -apiVersion: v1 -metadata: - name: traefik-ingress-service - namespace: kube-system -spec: - selector: - k8s-app: traefik-ingress-lb - ports: - - protocol: TCP - port: 80 - name: web - - protocol: TCP - port: 8080 - name: admin - type: NodePort diff --git a/roles/initialize-kubernetes/templates/traefik-rbac.yaml.j2 b/roles/initialize-kubernetes/templates/traefik-rbac.yaml.j2 deleted file mode 100644 index 35601da..0000000 --- a/roles/initialize-kubernetes/templates/traefik-rbac.yaml.j2 +++ /dev/null @@ -1,43 +0,0 @@ ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1beta1 -metadata: - name: traefik-ingress-controller -rules: - - apiGroups: - - "" - resources: - - services - - endpoints - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - extensions - resources: - - ingresses - verbs: - - get - - list - - watch - - apiGroups: - - extensions - resources: - - ingresses/status - verbs: - - update ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1beta1 -metadata: - name: traefik-ingress-controller -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: traefik-ingress-controller -subjects: -- kind: ServiceAccount - name: traefik-ingress-controller - namespace: kube-system diff --git a/roles/install-kubernetes/tasks/main.yml b/roles/install-kubernetes/tasks/main.yml deleted file mode 100644 index 72139fd..0000000 --- a/roles/install-kubernetes/tasks/main.yml +++ /dev/null @@ -1,70 +0,0 @@ ---- -- name: Update apt - apt: update_cache=yes - become: true - -- name: Install programs to add debian repositories - apt: name={{ item }} state=present force=yes - with_items: - - curl - - apt-transport-https - become: true - -- name: Add kubernetes key - apt_key: - url: https://packages.cloud.google.com/apt/doc/apt-key.gpg - state: present - become: true - -- name: Add kubernetes repo - apt_repository: - repo: deb https://apt.kubernetes.io/ kubernetes-xenial main - state: present - become: true - -- name: Add docker key - apt_key: - url: https://download.docker.com/linux/ubuntu/gpg - state: present - become: true - -- name: Add docker repo - apt_repository: - repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable - state: present - become: true - -- name: Update apt - apt: update_cache=yes - become: true - -- name: Install kubelet kubeadm and kubectl - apt: name={{ item }} state=present force=yes - with_items: - - kubelet - - kubeadm - - kubectl - become: true - -- name: Install docker-ce - shell: > - apt-get install -y -qq docker-ce=$(apt-cache madison docker-ce | grep "{{ docker_ce_version_to_install }}" | awk {'print $3'}) - become: true - -- name: apt-mark hold kubelet kubeadm and kubectl - command: apt-mark hold {{ item }} - with_items: - - kubelet - - kubeadm - - kubectl - become: true - -- name: Set bridge-nf-call-iptables - sysctl: - name: net.bridge.bridge-nf-call-iptables - value: 1 - state: present - sysctl_set: yes - reload: yes - become: true - when: kube_network == "flannel" or kube_network == "weavenet" \ No newline at end of file diff --git a/roles/join-kubernetes-workers/tasks/main.yml b/roles/join-kubernetes-workers/tasks/main.yml deleted file mode 100644 index 3f6a29b..0000000 --- a/roles/join-kubernetes-workers/tasks/main.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -- name: Join kubernetes cluster - command: kubeadm join --discovery-token-unsafe-skip-ca-verification --token={{ join_token }} {{ join_addr }}:6443 - register: out - changed_when: "out.rc == 0 and '/etc/kubernetes/bootstrap-kubelet.conf already exists' not in out.stderr" - failed_when: "out.rc != 0 and '/etc/kubernetes/bootstrap-kubelet.conf already exists' not in out.stderr" - become: true - -- name: Set kublet node ip - replace: - path: /etc/systemd/system/kubelet.service.d/10-kubeadm.conf - regexp: 'ExecStart=\/usr\/bin\/kubelet\ \$KUBELET_KUBECONFIG_ARGS' - replace: 'ExecStart=/usr/bin/kubelet --node-ip={{ kube_ip }} $KUBELET_KUBECONFIG_ARGS' - backup: yes - register: kubeletip - become: true - -- name: Force systemd to reread configs - command: systemctl daemon-reload - become: true - when: kubeletip.changed - -- name: Restart kubelet service - command: service kubelet restart - become: true - when: kubeletip.changed - diff --git a/rook/deploy-rook.sh b/rook/deploy-rook.sh index da49d2d..71df541 100644 --- a/rook/deploy-rook.sh +++ b/rook/deploy-rook.sh @@ -2,5 +2,5 @@ kubectl apply -f operator.yaml sleep 30s kubectl apply -f cluster.yaml sleep 60s -echo kubectl apply -f storageclass.yaml kubectl apply -f dashboard-external.yaml +echo kubectl apply -f storageclass.yaml \ No newline at end of file diff --git a/rook/storageclass.yaml b/rook/storageclass.yaml index ce518a6..e2b0ddf 100644 --- a/rook/storageclass.yaml +++ b/rook/storageclass.yaml @@ -1,7 +1,7 @@ apiVersion: ceph.rook.io/v1beta1 kind: Pool metadata: - name: replicapool + name: kubernetespool namespace: rook-ceph spec: replicated: @@ -10,10 +10,10 @@ spec: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: - name: rook-ceph-block + name: standard provisioner: ceph.rook.io/block parameters: - pool: replicapool + pool: kubernetespool # The value of "clusterNamespace" MUST be the same as the one in which your rook cluster exist clusterNamespace: rook-ceph # Specify the filesystem type of the volume. If not specified, it will use `ext4`.