1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-26 06:23:37 +00:00
catalog/task/openshift-uninstall/0.1
PuneetPunamiya 40393cd4cc Modifies directory names based on the proposal
- sample --> samples
  - example --> samples
  - test --> tests

Signed-off-by: Puneet Punamiya <ppunamiy@redhat.com>
2020-07-14 19:01:58 +01:00
..
samples Modifies directory names based on the proposal 2020-07-14 19:01:58 +01:00
openshift-uninstall.yaml This patch splits openshift-uninstall from the openshift-provision directory 2020-07-13 13:41:58 +01:00
README.md This patch splits openshift-uninstall from the openshift-provision directory 2020-07-13 13:41:58 +01:00

OpenShift Provisioning

The following task helps you to provision the Openshift cluster using the Installer Provided Infrastructure on the desired cloud platform. Supported cloud platforms are :-

  • AWS
  • GCP

Guide to provision a cluster on AWS can be found here and for GCP can be found here

OpenShift-Destroy

Install the Task

kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/master/task/openshift-uninstall/0.1/openshift-uninstall.yaml

Workspaces

  • install-dir: The PersistentVolume workspace which will contain all the files generated by the openshift-install which later can be used at the time of destroying the cluster.

Parameters

  • OPENSHIFT_INSTALLER_IMAGE: OpenShift installer base image for UPI installation (default: quay.io/openshift/origin-upi-installer:4.4)

Usage

Taking example of AWS :-

  1. Create the PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: install-dir
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  1. Create the secrets (taking an example of mouting AWS credentials and config)
apiVersion: v1
kind: Secret
metadata:
  name: openshift-install
type: Opaque
stringData:
  pull-secret: $(pull-secret)
  public-ssh-key: $(public-ssh-key)

The secrets for the respected cloud platform can be mounted as (taking aws as an example):-

apiVersion: v1
kind: Secret
metadata:
  name: aws-credentials
type: Opaque
stringData:
  credentials: |-
    [profile-name]
    aws_access_key_id     = $(access-key-id)
    aws_secret_access_key = $(secret-access-key)
    [default]
    aws_access_key_id     = $(access-key-id)
    aws_secret_access_key = $(secret-access-key)
  config: |-
    [profile profile-name]
    region = $(region)
    output = json
  1. Creating TaskRun for the OpenShift Create:
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: install-run
spec:
  taskRef:
    name: openshift-install
  params:
    - name: PLATFORM
      value: aws
    - name: CLUSTER_NAME
      value: test-cluster
    - name: BASE_DOMAIN
      value: devcluster.openshift.com
    - name: REPLICAS
      value: 3
    - name: REGION
      value: us-east-2
  workspaces:
    - name: install-dir
      persistentvolumeclaim:
        claimName: install-dir
    - name: secrets
      secret:
        secretName: aws-credentials

NOTE

  • To access the cluster created in other tasks we need to use the same Workspace and keep the workingDir: $(workspaces.workspaces-name.path) and to login into the cluster in the next Tekton Task do the following :-
    export KUBECONFIG=auth/kubeconfig
    
    and to get the URL for OpenShift webconsole do the following :-
    cat auth/webaccess
    
  • In order to destroy the cluster, it is mandatory to keep the volume which is used at the time of creating the cluster, else deletion of cluster will not be possible. This is because volume contains neccesary files that we get once we get the cluster created and these files are required during deletion of the cluster.