Skip to content

Instantly share code, notes, and snippets.

@jaysonzhao
Created August 21, 2022 07:42

Revisions

  1. jaysonzhao created this gist Aug 21, 2022.
    133 changes: 133 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,133 @@
    export control_cluster=$(oc config current-context)
    for cluster in ocp1 ocp2 ocp3; do
    password=$(oc --context ${control_cluster} get secret $(oc --context ${control_cluster} get clusterdeployment ${cluster} -n ${cluster} -o jsonpath='{.spec.clusterMetadata.adminPasswordSecretRef.name}') -n ${cluster} -o jsonpath='{.data.password}' | base64 -d)
    url=$(oc --context ${control_cluster} get clusterdeployment ${cluster} -n ${cluster} -o jsonpath='{.status.apiURL}')
    console_url=$(oc --context ${control_cluster} get clusterdeployment ${cluster} -n ${cluster} -o jsonpath='{.status.webConsoleURL}')
    oc login -u kubeadmin -p ${password} --insecure-skip-tls-verify=true ${url}
    oc config set-cluster ${cluster} --insecure-skip-tls-verify=true --server ${url}
    oc config set-credentials admin-${cluster} --token $(oc whoami -t)
    oc config set-context $cluster --cluster ${cluster} --user=admin-${cluster}
    echo cluster: ${cluster}
    echo api url: ${url}
    echo console url ${console_url}
    echo admin account: kubeadmin/${password}
    export ${cluster}=$cluster
    done
    oc config use-context ${control_cluster}

    export cluster1=ocp1
    export cluster2=ocp2
    export cluster3=ocp3

    ---
    apiVersion: cert-manager.io/v1
    kind: ClusterIssuer
    metadata:
    name: selfsignedis
    resourceVersion: '32758617'
    uid: 31ade0a5-2ba6-4fac-be4e-268fc7902dfc
    spec:
    selfSigned: {}

    ---
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
    annotations:
    meta.helm.sh/release-name: kafka
    meta.helm.sh/release-namespace: kafka
    name: kafka
    namespace: kafka
    labels:
    app.kubernetes.io/managed-by: Helm
    spec:
    commonName: node
    dnsNames:
    - zookeeper-0.ocp1.zookeeper.kafka.svc.clusterset.local
    - zookeeper-1.ocp1.zookeeper.kafka.svc.clusterset.local
    - zookeeper-2.ocp1.zookeeper.kafka.svc.clusterset.local
    - zookeeper-0.ocp2.zookeeper.kafka.svc.clusterset.local
    - zookeeper-1.ocp2.zookeeper.kafka.svc.clusterset.local
    - zookeeper-2.ocp2.zookeeper.kafka.svc.clusterset.local
    - zookeeper-0.ocp3.zookeeper.kafka.svc.clusterset.local
    - zookeeper-1.ocp3.zookeeper.kafka.svc.clusterset.local
    - zookeeper-2.ocp3.zookeeper.kafka.svc.clusterset.local
    - zookeeper-0.zookeeper.kafka.svc.cluster.local
    - zookeeper-1.zookeeper.kafka.svc.cluster.local
    - zookeeper-2.zookeeper.kafka.svc.cluster.local
    - zookeeper-client.kafka.svc.clusterset.local
    - zookeeper.kafka.svc.clusterset.local
    - zookeeper-client.kafka.svc.cluster.local
    - zookeeper.kafka.svc.cluster.local
    - kafka-0.ocp1.kafka.kafka.svc.clusterset.local
    - kafka-1.ocp1.kafka.kafka.svc.clusterset.local
    - kafka-2.ocp1.kafka.kafka.svc.clusterset.local
    - kafka-0.ocp2.kafka.kafka.svc.clusterset.local
    - kafka-1.ocp2.kafka.kafka.svc.clusterset.local
    - kafka-2.ocp2.kafka.kafka.svc.clusterset.local
    - kafka-0.ocp3.kafka.kafka.svc.clusterset.local
    - kafka-1.ocp3.kafka.kafka.svc.clusterset.local
    - kafka-2.ocp3.kafka.kafka.svc.clusterset.local
    - kafka-0.kafka.kafka.svc.cluster.local
    - kafka-1.kafka.kafka.svc.cluster.local
    - kafka-2.kafka.kafka.svc.cluster.local
    - kafka.kafka.svc.clusterset.local
    - kafka.kafka.svc.cluster.local
    duration: 168h0m0s
    issuerRef:
    group: cert-manager.io
    kind: ClusterIssuer
    name: selfsignedis
    keystores:
    jks:
    create: true
    passwordSecretRef:
    key: password
    name: kafka-cert-stores
    pkcs12:
    create: true
    passwordSecretRef:
    key: password
    name: kafka-cert-stores
    renewBefore: 1h0m0s
    secretName: kafka-tls
    usages:
    - server auth
    - client auth



    ---

    #部署前可以修改values中集群名称
    export infrastructure=$(oc get infrastructure cluster -o jsonpath='{.spec.platformSpec.type}'| tr '[:upper:]' '[:lower:]')
    case ${infrastructure} in
    aws)
    export latency="70" #70ms
    export bandwidth="250000000" #250 MBps
    ;;
    gcp)
    export latency="70" #70ms
    export bandwidth="3500000000" #3.5 GBps
    ;;
    azure)
    export latency="70" #70ms
    export bandwidth="250000000" #250 MBps
    ;;
    esac
    for context in ${cluster1} ${cluster2} ${cluster3}; do
    export cluster=${context}
    envsubst < ./kafka/values.templ.yaml > /tmp/values.yaml
    helm --kube-context ${context} upgrade kafka ./charts/kafka-multicluster -i --create-namespace -n kafka -f /tmp/values.yaml
    done

    部署后全部修改为使用kafka-tls