Code Monkey home page Code Monkey logo

core-aws-launcher's Introduction

Overview

This repository contains the resources to launch CloudBees Core on EKS using CloudFormation.

Get Started

Requirements:

  • Active AWS subscription for CloudBees Core. Subscribe here!

  • Ensure you have IAM permissions to

    • Create a Role
    • Create a VPC
    • Create an EC2 instance

    You may also specify a role during the CloudFormation configuration.

    CloudFormation IAM

Create the EKS Cluster and Deploy CloudBees Core

  1. Click on the Launch button below to go to your CloudFormation console and create the stack. This will create a new EKS cluster and deploy CloudBees Core into the cluster.

Launch CloudBees Core Stack

  1. Click Next to go to the CloudFormation Details section to enter your input values.
  2. Enter the following:
  • Stack name (required) - This is the CloudFormation stack name and also the namespace name for CloudBees Core to be used below.
  • BootstrapArguments (optional) - See files/bootstrap.sh in https://github.com/awslabs/amazon-eks-ami
  • ClusterName (required) - This is the name of the new EKS cluster.
  • EKSRoleARN (required) - This is the IAM role that EKS will use to access other AWS services. It must have AmazonEKSClusterPolicy and AmazonEKSServicePolicy.
  • KeyName (required) - This is the key pair to use for SSH.
  • NodeAutoScalingGroupMaxSize, NodeAutoScalingGroupMinSize (required) - This is the EC2 node autoscaling range.
  • NodeGroupName (required) - Name of the EC2 node group.
  • NodeVolumeSize (required) - The volume size to use for the nodes.
  1. Click Next on the next steps and follow through to create the stack.
  2. Monitor the status of the stack as the resources are created.
  3. Go to the EKS Console and wait for the EKS cluster to be created. This will take several minutes.
  4. Go to the EC2 console and ensure that your EKS worker nodes are ready (running and checks complete).

EC2 Console

Connect to the EKS Cluster via the EC2 Controller Node

  1. When completed and the EKS cluster shows Active, go to the EC2 console to get the public IP of the EC2 controller node.
  2. SSH to the controller node using the key pair that you specified.

ssh -i <key.pem> ec2-user@<controller-node-ip>

  1. Set the kubeconfig.

export KUBECONFIG=/home/ec2-user/.kube/config

  1. Set your kubernetes context.

sudo aws eks update-kubeconfig --name <eks-cluster-name> --region <region> --kubeconfig $KUBECONFIG

  1. Execute the following to get the list of namespaces.

kubectl get namespaces

You should see something like this.

NAME               STATUS    AGE
cloudbees-core-1   Active    2m
default            Active    8m
ingress-nginx      Active    2m
kube-public        Active    8m
kube-system        Active    8m
  1. Get the URL for CloudBees Core.

kubectl -n ingress-nginx get svc ingress-nginx -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'

  1. Get the initial admin password.

kubectl exec -n <cloudbees namespace> cjoc-0 -- cat /var/jenkins_home/secrets/initialAdminPassword

  1. Enter the CloudBees Core URL into your browser.
  2. You will be presented with the CloudBees Core setup wizard. The first step is to enter the initial admin password. Enter it from above.
  3. Complete the next steps of the setup wizard to install plugins and create your first user. You may request a trial license or enter a commercial license.

Next Steps

Create a Team and Connect a Repo

Follow these steps to create a team and connect your repo.

HTTPS Setup

Follow these steps to configure CloudBees Core for HTTPS.

DNS Setup

Follow these steps to configure DNS for CloudBees Core

Licensing

Request a license by sending an email to [email protected] or [email protected].

CloudBees Support

CloudBees Support

Open Source Jenkins Dedicated Support

Jenkins Support

Additional Documentation

Troubleshooting

View the CloudFormation Stack Events

View the events in CloudFormation for your stack and look for failed events.

View the bootstrap.sh Output for Help

The bootstrap.sh script creates the EKS cluster and deploys CloudBees Core. The output of the script can provide help for troubleshooting issues.

From the EC2 Console

From the EC2 console, select the EC2 controller node. Access the context menu and select Instance Settings -> Get System Log.

EC2 System Log

From the EC2 Controller Node

Access /var/log/cloud-init-output.log on the EC2 controller node instance. See above for how to SSH into the EC2 controller node.

core-aws-launcher's People

Contributors

jefferyfry avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.