apiVersion: v1 kind: Template metadata: name: ansible-service-broker objects: - apiVersion: v1 kind: Service metadata: name: asb labels: app: ansible-service-broker service: asb spec: ports: - name: port-1338 port: 1338 targetPort: 1338 protocol: TCP selector: app: ansible-service-broker service: asb - apiVersion: v1 kind: Service metadata: name: etcd labels: app: ansible-service-broker service: etcd spec: ports: - name: etcd-advertise port: 2379 selector: app: ansible-service-broker service: etcd - apiVersion: v1 kind: ServiceAccount metadata: name: asb namespace: ansible-service-broker - apiVersion: v1 kind: ClusterRoleBinding metadata: name: asb roleRef: name: cluster-admin subjects: - kind: ServiceAccount name: asb namespace: ansible-service-broker - apiVersion: v1 kind: Route metadata: name: asb-1338 labels: app: ansible-service-broker service: asb spec: to: kind: Service name: asb port: targetPort: port-1338 - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: etcd namespace: ansible-service-broker spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi - apiVersion: extensions/v1beta1 kind: Deployment metadata: name: asb labels: app: ansible-service-broker service: asb spec: replicas: 1 selector: matchLabels: app: ansible-service-broker strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: ansible-service-broker service: asb spec: serviceAccount: asb containers: - image: ${BROKER_IMAGE} name: asb imagePullPolicy: IfNotPresent volumeMounts: - name: config-volume mountPath: /etc/ansible-service-broker ports: - containerPort: 1338 protocol: TCP env: - name: BROKER_CONFIG value: ${BROKER_CONFIG} resources: {} terminationMessagePath: /tmp/termination-log volumes: - name: config-volume configMap: name: broker-config items: - key: broker-config path: config.yaml - apiVersion: extensions/v1beta1 kind: Deployment metadata: name: etcd labels: app: ansible-service-broker service: etcd spec: replicas: 1 selector: matchLabels: app: ansible-service-broker service: etcd strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app: ansible-service-broker service: etcd spec: containers: - image: ${ETCD_IMAGE} name: etcd imagePullPolicy: IfNotPresent terminationMessagePath: /tmp/termination-log workingDir: /etcd args: - ${ETCD_PATH} - --data-dir=/data - --listen-client-urls=http://0.0.0.0:2379 - --advertise-client-urls=http://0.0.0.0:2379 ports: - containerPort: 2379 protocol: TCP env: - name: ETCDCTL_API value: "3" volumeMounts: - mountPath: /data name: etcd volumes: - name: etcd persistentVolumeClaim: claimName: etcd - apiVersion: v1 kind: ConfigMap metadata: name: broker-config namespace: ansible-service-broker labels: app: ansible-service-broker data: broker-config: | registry: name: ${REGISTRY_TYPE} url: ${REGISTRY_URL} user: ${DOCKERHUB_USER} pass: ${DOCKERHUB_PASS} org: ${DOCKERHUB_ORG} dao: etcd_host: etcd etcd_port: 2379 log: logfile: /var/log/ansible-service-broker/asb.log stdout: true level: debug color: true openshift: host: ${CLUSTER_AUTH_HOST} ca_file: ${CA_FILE} bearer_token_file: ${BEARER_TOKEN_FILE} image_pull_policy: ${IMAGE_PULL_POLICY} broker: dev_broker: ${DEV_BROKER} bootstrap_on_startup: ${BOOTSTRAP_ON_STARTUP} launch_apb_on_bind: ${LAUNCH_APB_ON_BIND} output_request: ${OUTPUT_REQUEST} recovery: ${RECOVERY} parameters: - description: Container Image to use for Ansible Service Broker in format of imagename:tag displayname: Ansible Service Broker Image name: BROKER_IMAGE value: ansible-service-broker:latest - description: Container Image to use for etcd in format of imagename:tag displayname: etcd Image name: ETCD_IMAGE value: quay.io/coreos/etcd:latest - description: Path of the etcd binary displayname: etcd path name: ETCD_PATH value: /usr/local/bin/etcd - description: Configuration filepath for Ansible Service Broker displayname: Ansible Service Broker Configuration File name: BROKER_CONFIG value: /etc/ansible-service-broker/config.yaml - description: Dockerhub user password displayname: Dockerhub user password name: DOCKERHUB_PASS value: changeme - description: Dockerhub user name displayname: Dockerhub user name name: DOCKERHUB_USER value: changeme - description: Dockerhub organization displayname: Dockerhub organization name: DOCKERHUB_ORG value: ansibleplaybookbundle - description: OpenShift User Password displayname: OpenShift User Password name: OPENSHIFT_PASS value: admin - description: OpenShift User Name displayname: OpenShift User Name name: OPENSHIFT_USER value: admin - description: OpenShift Target URL displayname: OpenShift Target URL name: OPENSHIFT_TARGET value: kubernetes.default - description: Registry Type displayname: Registry Type name: REGISTRY_TYPE value: dockerhub - description: Registry URL displayname: Registry URL name: REGISTRY_URL value: docker.io - description: Include Broker Development Endpoint displayname: Include Broker Development Endpoint name: DEV_BROKER value: "true" - description: Launch APB on bind displayname: Launch APB on bind name: LAUNCH_APB_ON_BIND value: "false" - description: Will automatically bootstrap the broker on startup displayname: Bootstrap On Startup name: BOOTSTRAP_ON_STARTUP value: "true" - description: Output broker requests to log displayname: Output broker requests to log name: OUTPUT_REQUEST value: "true" - description: Recover unfinshed jobs on restart displayname: Recovery name: RECOVERY value: "true" - description: APB ImagePullPolicy displayname: APB ImagePullPolicy name: IMAGE_PULL_POLICY value: "IfNotPresent" ############################################################ # NOTE: Default behavior for these are going to use the kubernetes # InClusterConfig. These are typically overridden for running # the broker outside of a cluster. Under normal circumstances, # you probably want to leave these blank. ############################################################ - description: Service Account CAFile Path displayname: Service Account CAFile Path name: CA_FILE value: "" - description: Service Account Bearer Token File displayname: Service Account Bearer Token File name: BEARER_TOKEN_FILE value: "" - description: Cluster Authentication Host displayname: Cluster Authentication Host name: CLUSTER_AUTH_HOST value: "" ############################################################