Coder Social home page Coder Social logo

memcached's Introduction

Kubestack, The Open Source Gitops Framework

Kubestack CLI

CLI for the Kubestack GitOps Framework

Status GitHub Issues GitHub Pull Requests

GitHub Repo stars Twitter Follow

Introduction

kbst is an all-in-one CLI to scaffold your Infrastructure as Code repository and deploy your entire platform stack locally for faster iteration.

This CLI is part of the Kubestack Gitops framework for managing Kubernetes services based on Terraform and Kustomize.

kbst improves the GitOps developer experience by making a number of common tasks easier.

The CLI never makes any changes to any cloud environment. All changes are exclusively to the local environment and working directory.

Features

  • Scaffolds an Infrastructure as Code (IaC) repository ready to deploy to your target cloud environment
  • Provisions a local environment mirroring your cloud infrastructure using Kubernetes in Docker (KinD)
  • Watches for changes in configuration files and re-deploys parts of infrastructure to immediately reflact updates
  • Provides Docker container including all tooling for interacting manually your cloud environment as needed

Installing kbst

Linux

# Download the latest release
curl -LO "https://github.com/kbst/kbst/releases/download/$(curl -s https://www.kubestack.com/cli-latest.txt)/kbst_linux_amd64.zip"

# Extract the binary into your PATH e.g. /usr/local/bin
sudo unzip -d /usr/local/bin/ kbst_linux_amd64.zip kbst

# Verify the binary works
kbst --version

MacOS

# Download the latest release
curl -LO "https://github.com/kbst/kbst/releases/download/$(curl -s https://www.kubestack.com/cli-latest.txt)/kbst_darwin_amd64.zip"

# Extract the binary into your PATH e.g. /usr/local/bin
sudo unzip -d /usr/local/bin/ kbst_darwin_amd64.zip kbst

# Verify the binary works
kbst --version

Windows

Windows instructions require WSL2 and Docker Desktop for Windows with the WSL2 backend.

# Download the latest release
curl -LO "https://github.com/kbst/kbst/releases/download/$(curl -s https://www.kubestack.com/cli-latest.txt)/kbst_linux_amd64.zip"

# Extract the binary into your PATH e.g. /usr/local/bin
sudo unzip -d /usr/local/bin/ kbst_linux_amd64.zip kbst

# Verify the binary works
kbst --version

Build from Source

# Clone the repository
git clone https://github.com/cctechwiz-forks/kbst.git

# Enter repository directory
cd kbst

# Install binary (requires you $GOPATH/bin to be on your system $PATH)
make install

Using the kbst CLI

kbst has four commands:

  • help - Help about any command
  • local - Start a localhost development environment
  • manifest - Add, update, and remove services from the catalog
  • repository - Create and change Kubestack repositories

kbst local has two sub-commands:

  • apply - Watch and apply changes to the localhost development environment
  • destroy - Destroy the localhost development environment

kbst manifest has three sub-commands:

  • install - Install and vendor a manifest from the catalog
  • remove - Remove a vendored manifest from all environments
  • update - Update vendored manifests from the catalog

kbst repository only has a single sub-command:

  • init - Scaffold a new repository

Getting Started with Kubestack

For the easiest way to get started, visit the official Kubestack quickstart. This tutorial will help you get started with the Kubestack GitOps framework. It is divided into three steps.

  1. Develop Locally
    • Scaffold your repository and tweak your config in a local development environment that simulates your actual cloud configuration using Kubernetes in Docker (KinD).
  2. Provision Infrastructure
    • Set-up cloud prerequisites and bootstrap Kubestack's environment and clusters on your cloud provider for the first time.
  3. Set-up Automation
    • Integrate CI/CD to automate changes following Kubestack's GitOps workflow.

Getting Help

Official Documentation
Refer to the official documentation for a deeper dive into how to use and configure Kubetack.

Community Help
If you have any questions while following the tutorial, join the #kubestack channel on the Kubernetes community. To create an account request an invitation.

Professional Services
For organizations interested in accelerating their GitOps journey, professional services are available.

Contributing

Contributions to the Kubestack framework are welcome and encouraged. Before contributing, please read the Contributing and Code of Conduct Guidelines.

One super simple way to contribute to the success of this project is to give it a star.

GitHub Repo stars

Kubestack Repositories

  • kbst/terraform-kubestack
    • Terraform GitOps Framework - Everything you need to build reliable automation for AKS, EKS and GKE Kubernetes clusters in one free and open-source framework.
  • kbst/kbst (this repository)
    • Kubestack Framework CLI - All-in-one CLI to scaffold your Infrastructure as Code repository and deploy your entire platform stack locally for faster iteration.
  • kbst/terraform-provider-kustomization
    • Kustomize Terraform Provider - A Kubestack maintained Terraform provider for Kustomize, available in the Terraform registry.
  • kbst/catalog
    • Catalog of cluster services as Kustomize bases - Continuously tested and updated Kubernetes services, installed and customizable using native Terraform syntax.

memcached's People

Contributors

pst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

zaboumoudriq

memcached's Issues

Operator cannot work on kubernetes ver 1.8

On K8S documentation i found next info:

ThirdPartyResource is deprecated as of Kubernetes 1.7 and has been removed in version 1.8 in accordance with the deprecation policy for beta features.

So, when you try start on k8s 1.8 you get error
error validating data: unknown object type schema.GroupVersionKind{Group:"extensions", Version:"v1beta1", Kind:"ThirdPartyResource"};

I take raw configuration and make changes how provides in documentation of K8S (https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/)

Operator was started, but this all. Nothing Memcache cluster started on default namespace
In operator pod i found errors

2017-11-13 18:16:00,173 ERROR PeriodicCheck (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'X-Content-Type-Options': 'nosniff', 'Date': 'Mon, 13 Nov 2017 18:16:00 GMT', 'Content-Length': '19', 'Content-Type': 'text/plain; charset=utf-8'})
HTTP response body: 404 page not found

Traceback (most recent call last):
  File "/opt/memcached_operator/memcached_operator/periodical.py", line 61, in check_existing
    cluster_list = memcached_tpr_api.list_memcached_for_all_namespaces()
  File "/opt/memcached_operator/memcached_operator/memcached_tpr_v1alpha1_api.py", line 109, in list_memcached_for_all_namespaces
    collection_formats=collection_formats)
  File "/root/.local/share/virtualenvs/memcached_operator-9z7oKIBd/lib/python3.5/site-packages/kubernetes/client/api_client.py", line 328, in call_api
    _return_http_data_only, collection_formats, _preload_content, _request_timeout)
  File "/root/.local/share/virtualenvs/memcached_operator-9z7oKIBd/lib/python3.5/site-packages/kubernetes/client/api_client.py", line 152, in __call_api
    _request_timeout=_request_timeout)
  File "/root/.local/share/virtualenvs/memcached_operator-9z7oKIBd/lib/python3.5/site-packages/kubernetes/client/api_client.py", line 351, in request
    headers=headers)
  File "/root/.local/share/virtualenvs/memcached_operator-9z7oKIBd/lib/python3.5/site-packages/kubernetes/client/rest.py", line 233, in GET
    query_params=query_params)
  File "/root/.local/share/virtualenvs/memcached_operator-9z7oKIBd/lib/python3.5/site-packages/kubernetes/client/rest.py", line 224, in request
    raise ApiException(http_resp=r)
kubernetes.client.rest.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'X-Content-Type-Options': 'nosniff', 'Date': 'Mon, 13 Nov 2017 18:16:00 GMT', 'Content-Length': '19', 'Content-Type': 'text/plain; charset=utf-8'})
HTTP response body: 404 page not found

Need more serious editing than just the deploy configuration

Used configuration

apiVersion: v1
kind: List
items:
- apiVersion: apiextensions.k8s.io/v1beta1
  kind: CustomResourceDefinition
  description: Managed Memcached clusters
  metadata:
    name: memcached.operator.kubestack.com
  spec:
    scope: Namespaced
    group: operator.kubestack.com
    version: v1
    names:
      kind: memcached
      plural: memcached
      singular: memcached

- apiVersion: v1
  kind: Namespace
  metadata:
    name: kubestack

- apiVersion: v1
  kind: ServiceAccount
  metadata:
    name: memcached-operator
    namespace: kubestack

- apiVersion: rbac.authorization.k8s.io/v1beta1
  kind: ClusterRole
  metadata:
    name: memcached-operator
  rules:
  - apiGroups:
    - operator.kubestack.com
    resources:
    - memcacheds
    verbs:
    - list
    - get
    - watch
  - apiGroups:
    - extensions
    resources:
    - thirdpartyresources
    verbs:
    - list
    - get
    - watch
  - apiGroups:
    - extensions
    resources:
    - deployments
    verbs:
    - list
    - create
    - get
    - patch
    - delete
  - apiGroups:
    - extensions
    resources:
    - replicasets
    verbs:
    - list
    - get
    - delete
  - apiGroups:
    - ''
    resources:
    - services
    verbs:
    - list
    - create
    - get
    - patch
    - delete
  - apiGroups:
    - ''
    resources:
    - configmaps
    verbs:
    - list
    - create
    - get
    - patch
    - delete
  - apiGroups:
    - ''
    resources:
    - pods
    verbs:
    - list

- apiVersion: rbac.authorization.k8s.io/v1beta1
  kind: ClusterRoleBinding
  metadata:
    name: memcached-operator
  roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: memcached-operator
  subjects:
  - kind: ServiceAccount
    name: memcached-operator
    namespace: kubestack

- apiVersion: extensions/v1beta1
  kind: Deployment
  metadata:
    labels:
      operator: memcached.operator.kubestack.com
      heritage: kubestack.com
    name: memcached-operator
    namespace: kubestack
  spec:
    replicas: 1
    selector:
      matchLabels:
        operator: memcached.operator.kubestack.com
    template:
      metadata:
        labels:
          operator: memcached.operator.kubestack.com
          heritage: kubestack.com
      spec:
        containers:
        - image: kubestack/memcached:v0.1.0
          name: memcached-operator
          resources:
            limits:
              cpu: 200m
              memory: 100Mi
            requests:
              cpu: 100m
              memory: 50Mi
        serviceAccountName: memcached-operator

- apiVersion: operator.kubestack.com/v1
  kind: memcached
  metadata:
    name: memcached
    namespace: default
  spec:
    mcrouter:
      replicas: 1
      memcached_limit_cpu: 100m
      memcached_limit_memory: 128Mi
    memcached:
      replicas: 2
      memcached_limit_cpu: 100m
      memcached_limit_memory: 128Mi

No License file

I see no license file so not sure if one can use this repo (or even look at it). The mcrouter_exporter has a MIT (modified?) license but this one is missing any license file so thus it appears it is not open sourced. Please add the proper license file.

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.